OSS

Aus wiki.archlinux.de
Version vom 11. Juni 2009, 06:52 Uhr von Pierre (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

OSS ist das Open Sound System, die Lösung die vor Alsa standardmäßig benutzt wurde. Jedoch wurde, wegen einiger Gründe, wie zum Beispiel die Änderung der Lizenz von OSS, und eine vergleichsweise schlechte API, Alsa entwickelt.

Seit kurzem gibt es jedoch OSS Version 4, welche für den privaten Gebrauch kostenlos ist, und lediglich alle 6 Monate neu installiert werden muss, gleichzeitig Alsa jedoch in nichts nachstehen sollte. Diese Version besitzt auch eine Alsa-Emulation, die es ermöglicht, wie der Name schon sagt, Alsa zu emulieren, und so auch Applikationen zu hören die Alsa als Ausgabe benutzen!

Vor/Nachteile

Vorteile:

  • Transparentes Soundmixing im Kernel (vmix) mit der Möglichkeit bis zu 32 virtuelle Geräte zu "betreiben" (nicht wie alsa über alsa-lib, dass im Userland mischt)
  • Möglichkeit die Lautstärke jeder Anwendung einzeln anzupassen
  • Bessere Soundqualität bei einigen onboard-Sound-Lösungen

Nachteile:

  • Kein Hardware-Mixing

Installation

Ein Paket für i686 befindet sich im AUR: OSS-Linux

Dieses bauen wir, dann installieren wir das Paket.

Konfiguration

Wir öffnen die /etc/rc.conf und fügen unter MODULES=() ein Ausrufezeichen vor soundcore ein!

Dies geschieht, damit alsa beim booten nicht geladen wird. Als nächstes fügen wir oss-linux zu DAEMONS=() hinzu. Dies natürlich vor jede Soundanwendung wie z.B. mpd. Am besten auch ohne Background-Start. Die Gründe liegen auf der Hand, denn OSS linkt beim starten mit einem frischen Kernel erstmal die Module.

Um das vmix, also das virtuelle Zusammenmischen des Sounds, zu "modifizieren" öffnen wir /etc/modprobe.d/modprobe.conf und fügen

  options vmix vmix_instances=1 vmix1_numoutputs=16 vmix1_numloops=0

ein.

Das Ganze würde natürlich auch mit

  echo "options vmix vmix_instances=1 vmix1_numoutputs=16 vmix1_numloops=0" >> /etc/modprobe.d/modprobe.conf 

funktionieren, ist aber doch sehr lang.

Hinweis: Sollte man OSS wieder deaktivieren und Alsa nutzen wollen, unbedingt obige Zeile wieder aus der /etc/modprobe.d/modprobe.conf herauskommentieren oder löschen. Es kann sonst zu Instabilitäten kommen.


Abschluss der Installation

Neustarten und OSS (normalerweise) genießen. Man sollte jetzt natürlich noch seine Programme auf OSS einstellen. Meistens reicht es, zum Beispiel wie bei Gaim, Gajim oder aMSN von aplay (so hatte ich es für alsa eingestellt) auf ossplay zu stellen.

Mitgelieferte Applikationen

Die meiner Meinung nach wichtigsten werden hervorgehoben!

  • ossmix : Konsolenmixer (ossmix für den Hardware-Master, ossmix -d1 für den ersten virtuellen Master. Mehr sagt die man-Page dazu.)
  • ossxmix : GTK Mixer
  • ossctl : OSS Control (auch GTK), womit man einige Einstellungen an OSS vornehmen kann. (Nützlich bei mehreren Soundkarten, wobei ich es eigentlich bisher noch nicht gebraucht habe) [nur root]
  • savemixer : Mixereinstellungen speichern
  • ossplay : Konsolen-Abspielprogramm (quasi aplay für oss)
  • ossrecord : Das selbe wie ossplay, nur zum Aufnehmen.
  • ossdetect: Automatisches Erfassen der Soundkarten (braucht man normalerweise nicht, wird von oss-linux rc.d-Script erledigt)
  • ossinfo : Konsolenprogramm zum anzeigen der OSS Einstellungen und anderer Informationen (wie cat /dev/sndstat)
  • osslic : Zeigt die OSS-Lizenz

Dann ist da noch ossupdate was man aber nicht braucht, bzw. nicht benutzen sollte! Es dient zum Updaten von OSS, das machen wir aber am besten über das bauen des Paketes.

Tipps und Tricks

Multimedia-Tasten der Tastatur benutzen

Um die Multimedia-Tasten der Tastatur zu benutzen benötigt man meistens Keytouch, ein Programm, das recht einfach die Sonderfunktionen einer Tastatur zur Verfügung stellt, bzw. diese sich konfigurieren lassen.

Nun braucht man ein kleines Shellscript, das die Befehle recht einfach zur Verfügung stellt.

Meins (MacWolf) sieht so aus: Muss eventuell noch etwas angepasst werden. Bei mir ist 255 das Maximum an "Lautstärke". Und output.vol ist mein Regler. Überprüft mit "ossmix | grep output.vol" ob dieser bei euch auch verfügbar ist, ansonsten passt das Script an.

 #!/bin/sh
 # MacWolf  
  
 VOL=`ossmix pcm | sed 's/[^0-9]*\([0-9]\+\)/\1/' | awk -F : '{print $1}'`
 
 if [ "$1" == "-" ] 
 then
       if [ "$VOL" != "0" ] 
       then
               VOLNEW=`expr $VOL - 5` 
       else
               echo "Sound ist schon aus!" 
       fi
 
 elif [ "$1" == "0" ]
 then
       VOLCAT=$(cat $HOME/.volume)
  
       if [ -z "$VOLCAT" ]
       then
               VOLGET=`ossmix pcm | sed 's/[^0-9]*\([0-9]\+\)/\1/'` 
               echo $VOLGET > $HOME/.volume 
               ossmix pcm 0 > /dev/null 
       else 
               ossmix pcm $VOLCAT > /dev/null
               > $HOME/.volume 
       fi
 
 elif [ "$VOL" == "100" ]
       then
               echo "Soundlimit erreicht!"
       else
               VOLNEW=`expr $VOL + 5`
 fi
 
 if [ "$VOLNEW" != "" ]
 then
       ossmix pcm $VOLNEW > /dev/null
 fi

Dieses Script wird nun als "vol_control" unter /usr/bin gespeichert und mit chmod +x ausführbar gemacht. Nun muss nur noch eine ~/.volume erstellt werden, in die das Script für "Mute" braucht.

 touch ~/.volume

Fertig.

Mit

  vol_control -

lässt sich die Lautstärke um 5 hinunterregeln. Es sei denn sie ist schon 0, also aus.

Mit

  vol_control 0

lässt sich die Lautstärke "ausschalten" (Mute).

Mit

 vol_control

lässt sich die Laustärke hochregeln. Es sei denn er ist schon beim Maximum.

Links