Musiker sind anspruchsvolle Linux-Anwender, denn Schwachpunkte im Kernel machen sich sofort als hässliche Störungen bei der Tonwiedergabe bemerkbar. Zusammen mit den Videoliebhabern sind die Linux-Sound-Anwender eine treibende Kraft bei der Weiterentwicklung von Echtzeiteigenschaften des Linux-Kernels. Bislang musste Linux besonders im Bereich der Latenzzeiten einige Kritik einstecken. "Sogar noch schlechter als Windows", spotteten die Musiker.
In der Tat: Vor allem mit dem alten Kernel 2.4 war das aussetzungsfreie Abspielen längerer Musikstücke oder der ruckelfreie Genuss einer DVD nur mit Kernel-Patches möglich. Der ambitionierte Musiker hatte die Wahl zwischen dem Low-Latency- und dem Preemption-Patch. Nur ein mit beiden Patches ausstaffierter Kernel brachte die Linux-Klangwelt halbwegs in Ordnung (siehe Kasten "Audio mit dem Kernel 2.4").
Das Preemption-Patch hat Linus Torvalds in Kernel 2.6 aufgenommen. Das bescherte zumindest dem Laien akzeptablen Musikgenuss - Profis jedoch klagten und patchten weiterhin. Erst seit Kernel 2.6.10 schlagen die Musiker versöhnlichere Töne an: Auf der 3. Internationalen Linux-Audio-Konferenz dieses Jahr in Karlsruhe stellte Fernando Pablo Lopez-Lezcano vom Center for Computer Research in Music and Acoustics (CCRMA) fest, dass Version 2.6.10 der erste Linux-Kernel ist, der sich auch ohne Patches einsetzen lässt [1].
Xruns stören
Doch falsch konfiguriert kann es auch mit einem geeigneten Kernel zu den gefürchteten Xruns kommen: Puffer-Über- oder Unterläufe, die entstehen, wenn die Applikation die Audiodaten nicht rechtzeitig von der Audiohardware abholt respektive wenn das Soundprogramm die Daten der Audiohardware nicht rechtzeitig übergibt (siehe Kasten "Echtzeitanforderungen ..."). Auch ein ungeschultes Ohr nimmt Over- oder Underruns als Aussetzer oder als Klicks wahr.
Wenn Sie selbst bei geringer Last unter Xruns leiden, sollten Sie vor allem folgende Maßnahmen beherzigen (siehe Abbildung 1): Verwenden Sie am besten einen aktuellen Linux-Kernel. Ist die Option »PREEMPTIBLE_KERNEL« eingeschaltet, verbessert dies das Echtzeitverhalten noch einmal signifikant (siehe Abbildung 2). Achten Sie also darauf, dass diese Option eingeschaltet ist (das ist wohl bei den meisten Distributionskernels der Fall). Sollte Ihre Audiohardware zudem per USB angeschlossen sein, sind die Punkte »Enforce USB bandwith allocation« und »Dynamic USB minor allocation« abzuwählen.
Festplatten mit DMA
Stellen Sie sicher, dass Plattenzugriffe über DMA durchgeführt werden. Das Programm »hdparm« gibt Aufschluss hierüber und schaltet bei Bedarf den DMA-Transfer ein:
# hdparm -d /dev/hdc
/dev/hdc:
using_dma = 0 (off)
# hdparm -d 1 /dev/hdc
/dev/hdc:
setting using_dma to 1 (on)
using_dma = 1 (on)
Vergessen Sie nicht auch bei DVD- oder CD-ROM-Laufwerken den DMA-Transfer zu aktivieren.
Eine dritte Maßnahme verringert darüber hinaus potenzielle Ruckler: Die Vergabe einer Echtzeitpriorität an die Rechenprozesse, die die Musik verarbeiten. Die Auswirkung dieser Maßnahme gibt für eine Applikation ohne Echtzeitpriorität die Abbildung 3 wieder; das Ergebnis bei eingeschalteter Echtzeitpriorität zeigt Abbildung 4.
Abbildung 1: Wenn Sie die grün unterlegten Maßnahmen beherzigen, laufen Audio-Applikationen störungsfrei. Die rot markierten Aktionen sollten Sie vermeiden.