Jack unter Opensuse 10.3

Ich bin kein Linux-Audiofreak und habe von Audioservern, Jack und Konsorten keine Ahnung. Normalerweise reicht es mir, wenn an meinem Arbeitsplatz "amarok" (ein tolles Programm!) im Zusammenspiel mit Alsa oder Oss meine Musikdateien in Töne verwandelt. Ich habe eine Audigy 2 Soundcard unter Linux; an der hängt ein 7.1 Lautsprechersystem (Upmix von 5.1 oder 6.1 Sound auf 7.1) und damit bin ich vollkommen zufrieden.

Heute allerdings musste ich Rosegarden für einen potentiellen Kunden für Tests unter Opensuse 10.3 installieren. Rosegarden benötigt den Jack - Echtzeit- Audioserver. Also habe ich Jack und einige zugehörige Tools wir JackEQ aus den SuSE-Repositories installiert. Dann wollte ich Jack einfach mal ausprobieren.

Erste Hürde: Wie startet man Jack?
Der naive Versuch, dies über die Auswahl "Jack Echtzeit-Audioserver" in der Soundsystem-Konfiguration im KDE-Kontrollzentrum zu machen, scheiterte. Der Soundserver wird zwar wieder gestartet, doch jede danach von einem normalen User gestartete Jack-Applikation meldet, dass Jack nicht läuft. Der Verdacht, dass Jack beim gewählten Vorgehen gar nicht gestartet, sondern eher vorausgesetzt wird, bestätigte sich nach einem Blick in die Prozesstabelle. Von "jack"-Prozessen keine Spur. Ein wenig Forschen im Internet führt einen dann zum manuellen Start mittels

jackd -v -d alsa -d hw:0

Das ging dann auch problemlos. Später - nach dem Überwinden einer weiteren Hürde - fand ich dann das schöne Tool "Qjackctl", das das Starten und Überwachen des Audio-Servers QT-basiert über eine gelungene graphische Oberfläche ermöglicht.

qjackctl_2

Ein Test des Soundservers ist möglich, indem man z.B. "amarok" startet und unter den Einstellungen für die Audio-Ausgabe "Jack" wählt. Das funktionierte auch schön, bis ich nach einer Weile kurzzeitige Aussetzer bemerkte, wenn man andere ressourcenlastige Applikationen mit hoher Priorität startete. (Dies resultiert in etwas kryptischen xrun-Meldungen). Ich spielte danach an Pufferparametern, Periodenparametern und Prioritätsparametern im Jack-Aufruf herum ( z.B. : -P 0 -p 512 -n 2 ). Nur mit begrenztem Erfolg. Es gab dennoch immer mal wieder einen kleinen Aussetzer. Für die Analyse hatte ich bisher keine Zeit. Da ich aber was von Echtzeit gelesen hatte, wollte ich nun Jack mit Echtzeit-Priorität starten.

Zweite Hürde: Jack mit Echtzeitpriorität?
Der (gem. man-Doku) erforderliche Aufruf

jackd -v -R -d alsa -d hw:0

scheitert mit einer Meldung des Systems, dass man dazu keine Berechtigungen hat. Gut so! Warum sollte ein beliebiger User das auch dürfen; das wäre ein immenses Sicherheitsrisiko. Jack als root zu starten ist aus dem gleichen Grund unsinnig. Das bringt einen auf den Gedanken, dass man wohl in den PAM-Dateien einen Einstellung vornehmen muss. Tatsächlich sind Einträge in der Datei /etc/security/limits.conf gefragt. Will man etwa genau einem User namens "ralph" die notwendigen Rechte geben, so sind folgende Einträge angebracht :

ralf - rtprio 99
ralf - memlock unlimited
ralf - nice -19

(Für Gruppen greife man statt "ralph" zu "@gruppenname". )

Der User Ralf darf dann tatsächlich nach einem neuen Login jackd -R ausführen. Und nun läuft der Sound auch völlig ruckelfrei und problemlos in fast jeder Belastungslage des Systems.

Dritte Hürde: JackEQ läuft nicht ohne vorgegebenen Suchpfad
Im nächsten Schritt möchte man gerne JackEQ und andere Programme aus dem Jack-Umfeld starten. Das misslingt zumindest im Fall von JackEQ jedoch. Startet man vom Terminal aus, so erhält man die Meldung, dass die Library dj_eq_1901.so nicht gefunden wird. Nach einer kurzen Recherche findet man, dass man das Paket xxxx installieren muss. Leider reicht das auch nicht, denn JackEQ vermutet die Bibliotheken zumindest auf einem 64Bit-System im falschen Verzeichnis. Eine Suche im Internet ergibt dann, dass man unter Opensuse tunlichst

export LADSPA_PATH="/usr/lib64/ladspa"

in eine der profile-Dateien für den Start der Shell einfügen sollte. Danach werden die Bibliotheken auch gefunden und JackEQ verrichtet seinen Dienst zusammen mit Jack.

Fazit
Jack in Ehren - aber an der Installationsfreundlichkeit lässt sich noch Einiges verbessern.

Tja, und was war eigentlich der Anlass für das Ganze? Ach ja, Rosegarden. Ein Test zeigt, dass auch dieses Programm läuft - zumindest im Prinzip. Auch hier meldet das Programm nämlich das Fehlen diverser benötigter Zusatzprogramme, die sich jedoch nachinstallieren lassen. Zu Rosegarden mehr an anderer Stelle.

Links
http://lau.linuxaudio.org/jack/
http://jackaudio.org/faq