Inhalt

6. Antworten auf häufig gestellte Fragen (FAQ)

Dieser Abschnitt beantwortet die meisten der häufig im Usenet gestellten Fragen.

6.1 Was bedeuten die verschiedenen Sound-Devicedateien?

Diese sind die "Standard"-Dateinamen, einige Linuxdistributionen könnten leicht abweichende Namen verwenden.

/dev/audio

normalerweise eine Link auf /dev/audio0

/dev/audio0

Sun Workstation-kompatibles Audiodevice (nur eine lückenhafte Implementierung, unterstützt nicht das ioctl-Interface von Sun, nur u-law-Codierung)

/dev/audio1

zweites Audiodevice (wenn von der Soundkarte unterstützt)

/dev/dsp

normalerweise ein Link auf /dev/dsp0

/dev/dsp0

erstes digitales Sampling-Device

/dev/dsp1

zweites digitales Sampling-Device

/dev/mixer

Soundmixer

/dev/mixer1

Zweiter Soundmixer

/dev/music

Schnittstelle zum Sequencer auf hoher Stufe

/dev/patmgr0

Patch Manager

/dev/patmgr1

Patch Manager

/dev/sequencer

MIDI, FM und GUS-Zugriff auf unterer Stufe

/dev/sequencer2

normalerweise eine Link auf /dev/music

/dev/midi00

erster reiner MIDI-Port

/dev/midi01

zweiter reiner MIDI-Port

/dev/midi02

dritter reiner MIDI-Port

/dev/midi03

vierter reiner MIDI-Port

/dev/sndstat

liefert den Status des Soundtreibers

Der PC-Lautsprecher-Treiber verwendet die folgenden Devices:

/dev/pcaudio

äquivalent zu /dev/audio

/dev/pcsp

äquivalent zu /dev/dsp

/dev/pcmixer

äquivalent zu /dev/mixer

6.2 Wie kann man ein Soundsample abspielen?

Sun Workstation (.au) Sounddateien können abgespielt werden, indem sie an das /dev/audio-Device geschickt werden. Reine Samples können an /dev/dsp geschickt werden. Ein Programm wie play erleichtert das Abspielen, da es die meisten Dateitypen korrekt erkennt und die Soundkarte auf die richtige Samplingrate etc. einstellt.

6.3 Wie kann ich ein Soundsample aufnehmen?

/dev/audio oder /dev/dsp liefern gesamplete Daten, die in eine Datei umgeleitet werden können. Ein Programm wie vrec erleichtert die Kontrolle der Samplingrate, Dauer, etc. Evtl. benötigt man auch ein Mixerprogramm, um den entsprechende Eingang zu wählen.

6.4 Kann man mehr als eine Soundkarte haben?

Bis zu zwei Soundkarten werden unterstützt. Es ist möglich, eine Gravis Ultrasound oder MPU-401 mit einer SoundBlaster, SoundBlaster Pro, SoundBlaster 16 oder ProAudioSpectrum 16 zu verwenden. Man kann nicht gleichzeitig eine ProAudioSpectrum und einen SoundBlaster verwendet (die PAS16 besitzt einen SoundBlaster-Emulation). Es ist auch nicht möglich, mehr als eine Karte des gleichen Typs zu verwenden -- zum Beispiel ist eine GUS+GUS-Kombination nicht möglich.

Man kann die Konfiguration der Soundkarte zur Bootzeit ändern, indem man mit Hilfe eines Bootladers wie LILO Kommandozeilenoptionen verwendet. Details hierzu stehen in Readme.linux.

6.5 Fehler: "No such file or directory" für Sounddevices

Die Soundtreiber-Devicedateien müssen erstellt werden. Siehe den Abschnitt über die Erstellung der Devicedateien. Wenn die Dateien existieren, könnten die major und minor Devicenummern falsch sein (einige ältere CD-ROM-Distributionen von Linux könnten nicht die richtigen Devicedateien erstellen).

6.6 Fehler: "No such device" für Sounddevices

Es wurde nicht mit einem Kernel gebootet, der die Soundtreiber enthält oder die I/O-Adresse stimmt nicht mit der Hardware überein. Man sollte überprüfen, ob der neu compilierte Kernel verwendet wird und ob die Eingaben bei der Konfiguration mit der Hardwareeinstellung übereinstimmen.

6.7 Fehler: "No space left on device" für Sounddevices

Dies kann passieren, wenn man versucht, Daten auf /dev/audio oder /dev/dsp aufzunehmen, ohne die notwendigen Devicedateien zu erzeugen. Das Sounddevice ist jetzt eine normale Datei und hat die Diskpartition gefüllt. Man muß das im Abschnitt Erstellen der Devicedateien beschriebene Script ausführen.

6.8 Fehler: "Device busy" für Sounddevices

Nur ein Prozeß gleichzeitig kann ein Sounddevice öffnen. Sehr wahrscheinlich verwendet ein anderer Prozeß das entsprechende Device. Dieser kann mit dem Befehl fuser ermittelt werden:

% fuser -v /dev/dsp
/dev/dsp:             USER       PID ACCESS COMMAND
                      tranter    265 f....  tracker

In diesem Beispiel zeigt fuser, daß Prozeß 256 das Device geöffnet hat. Man kann das Sounddevice erst ansprechen, wenn dieser Prozeß beendet ist oder gekillt wurde.

6.9 Es gibt immer noch Fehler "device busy"!

Laut Brian Gough können SoundBlaster-Karten mit DMA-Kanal 1 einen Konflikt mit dem QIC-02 Bandtreiber, der ebenfalls DMA 1 benutzt, verursachen. Das erzeugt einen "device busy"-Fehler. Wer FTape verwendet, könnte dieses Treiber aktiviert haben. Laut FTape-HOWTO ist der QIC-02-Treiber nicht wichtig für FTape, nur der QIC-117-Treiber wird benötigt. Eine Neukonfiguration des Kernels, so daß der QIC-117-, aber nicht der QIC-02-Treiber verwendet wird, erlaubt es, gleichzeitig FTape und der Soundtreiber zu benutzen.

(Die folgende Erklärung stammt von Harald Albrecht (albrecht@igpm.rwth-aachen.de):

Einige Soundkarten unterstützen den DMA-Kanal 0. Das Konfigurationsprogramm des Soundtreibers erlaubt dies und der Kernel compiliert einwandfrei, aber ein Zugriff auf das Sounddevice erzeugt einen "device busy"-Fehler.

Der Grund dafür besteht darin, daß der Linuxkernel den DMA-Kanal 0 für den DRAM-Refresh reserviert. Das ist für moderne 386/486er Boards unwichtig, sie verwenden ihre eigene Refreshlogik. Man kann es korrigieren, indem man diese Zeile in der Datei /usr/src/linux/kernel/dma.c ändert:

static volatile unsigned int dma_chan_busy[MAX_DMA_CHANNELS] = {
                1, 0, 0, 0, 1, 0, 0, 0
};

Wenn man die erste 1 durch eine 0 ersetzt, aktiviert das den DMA-Kanal 0. Man darf das auf keinen Fall mit DMA-Kanal 4 machen, dieser wird cascadiert, das wird nicht funktionieren! Der Code sollte jetzt so aussehen:

static volatile unsigned int dma_chan_busy[MAX_DMA_CHANNELS] = {
                0, 0, 0, 0, 1, 0, 0, 0
};

Nun noch neu compilieren und mit dem neuen Kernel booten.

6.10 Digitalisierte Sounddateien werden nur teilweise abgespielt

Das Symptom sieht üblicherweise so aus, daß ein Soundsample für etwa eine Sekunde abgespielt wird und dann komplett aufhört oder einen Fehler wegen "missing IRQ" oder "DMA timeout" ausgibt. Wahrscheinlich sind die IRQ- oder DMA-Einstellungen falsch. Man sollte überprüfen, ob die Kernelkonfiguration mit der Einstellung der Jumper auf der Soundkarte übereinstimmt und keine Konflikte mit anderen Karten verursacht.

Ein anderes Symptom sind Soundsamples, die in eine Endlosschleife geraten. Das wird normalerweise durch einen IRQ-Konflikt ausgelöst.

6.11 Es gibt Unterbrechungen beim Abspielen von MOD-Dateien

Das Abspielen von MOD-Dateien verbraucht viel CPU-Leistung. Es könnten zu viele Prozesse laufen oder der Computer könnte zu langsam sein, um in Echtzeit abzuspielen. Die Möglichkeiten sind:

Wenn man eine Gravis UltraSound-Karte verwendet, sollte man einen der MOD-Abspieler für die GUS (z.B. gmod) verwenden.

6.12 Compilefehler beim Compilieren von Soundanwendungen

Die Soundtreiber Version 1.0c und früher verwendeten einen anderes und inkompatibles ioctl()-Schema. Man benötigt neueren Sourcecode oder muß die nötigen Anpassungen für den neuen Soundtreiber selber vornehmen. Details befinden sich in der Readme-Datei des Soundtreibers.

Außerdem sollte man die neuesten Versionen von soundcard.h und ultrasound.h für die Compilierung der Anwendung verwenden. Siehe auch die Installationsanleitung am Anfang dieses Textes.

6.13 SEGV beim Aufruf von Soundprogrammen, die früher funktionierten

Das ist wahrscheinlich das gleiche Problem wie in der vorherigen Frage beschrieben.

6.14 Welche bekannten Bugs oder Einschränkungen gibt es im Soundtreiber?

Dies steht in den Dateien Readme und CHANGELOG, die den Soundtreiber-Sourcen beiliegen.

6.15 Wo sind die ioctls() etc. des Soundtreibers dokumentiert?

Diese sind teilweise in der Hacker's Guide to VoxWare dokumentiert, die es momentan in Entwurfsform gibt. Die aktuellste Version ist Entwurf (draft) 2 und ist unter nic.funet.fi:/pub/OS/Linux/ALPHA/sound zu finden. Hinweis: Das Directory ist "versteckt" und taucht nicht in Directory-Listings auf. Wenn man aber mit "cd" in das Directory wechselt und dann den FTP-Befehl "dir" verwendet, sind die Dateien da.

Zum Zeitpunkt des Schreibens wurde neue Dokumentation auf der Webseite von 4Front Technologies bereitgestellt.

Eine andere Informationsquelle ist die Linux Multimedia Guide, im Abschnitt Referenzen beschrieben.

6.16 Welche CPU-Ressourcen werden benötigt, um ohne Pausen abzuspielen oder aufzunehmen?

Es gibt keine leichte Antwort auf diese Frage, denn sie hängt von folgendem ab:

Generell gesagt sollte jeder 386er ausreichen, um Samples oder FM-Synthese auf einer 8bit-Soundkarte abzuspielen.

Das Abspielen von MOD-Dateien erfordert hingegen beachtliche CPU-Ressourcen. Experimente haben ergeben, daß das Abspielen bei 44kHz mehr als 40% der Geschwindigkeit eines 486/50 verbraucht und ein 386/25 kaum mehr als 22 kHz abspielen kann (diese Werte gelten für eine 8bit-Soundkarte wie die SoundBlaster). Eine Karte wie die Gravix UltraSound kann mehr Funktionen in der eigenen Hardware ausführen und braucht deshalb weniger CPU-Ressourcen.

Diese Aussagen setzen voraus, daß der Computer keine anderen CPU-intensiven Aufgaben erledigt.

Die Konvertierung von Sounddateien oder das Hinzufügen von Effekten mit einer Utility wie Sox ist wesentlich schneller, wenn man einen mathematischen Coprozessor verwendet. Der Kerneltreiber selber verwendet aber keine Fließkommaoperationen.

6.17 Probleme mit einer PAS16 und einem Adaptec 1542 SCSI Hostadapter

(Die folgende Erklärung stammt von seeker@indirect.com)

Linux erkennt den 1542 nur auf der Adresse 330 (Standard) oder 334 und die PAS erlaubt die MPU-401-Emulation nur auf 330. Auch wenn man durch Software MPU-401 abschaltet, wird immer noch etwas mit dem 1542 einen Konflikt verursachen, wenn dieser auf seiner Standardadresse steht. Das Verschieben des 1542 auf 334 macht jeden glücklich.

Außerdem benutzen der 1542 und die PAS16 16-bit-DMA. Wenn man also eine Datei mit 16bit 44kHz in Stereo samplet und sie auf ein SCSI- Laufwerk schreibt, das am 1542 hängt, wird das Probleme geben. Die DMAs überschneiden sich und es gibt nicht genug Zeit für einen RAM- Refresh, so daß man den gefürchteten ``PARITY ERROR - SYSTEM HALTED''- Fehler bekommt und nicht weiß warum. Es wird dadurch verschlimmert, daß einige Hersteller von QIC-117-Bandlaufwerken empfehlen, die Bus on/off-Zeiten so einzustellen, daß der 1542 noch länger als normal an ist. Man sollte sich das Programm SCSISEL.EXE aus der Box von Adaptec oder einigen Stellen im Internet besorgen und solange entweder die BUS ON-Zeiten erhöhen oder die BUS OFF-Zeiten senken, bis das Problem behoben ist und sie dann noch einen Tick weiter verändern. SCSISEL ändert die EEPROM-Einstellungen, so daß es permanenter ist als eine Änderung in der DOS-Treiberzeile in der CONFIG.SYS und damit auch funktioniert, wenn man direkt Linux bootet. Nächstes Problem gelöst.

Letztes Problem - die älteren Symphony Chipsätze haben das Timing der I/O-Zyklen drastisch reduziert, um den Buszugriff zu beschleunigen. Keine der zahlreichen Karten, die der Autor getestet hat, hatte irgendein Problem mit dem gesenkten Timing außer der PAS16. In der Box von Media Vision liegt ein Programm namens SYMPFIX.EXE, das das Problem beheben soll, indem ein Diagnosebit im Buscontroller von Symphony geändert wird, aber es ist nicht garantiert. Man muß evtl.:

Young Microsystems rüstet die Boards, die sie importieren, für etwa $30 (US) auf; andere Händler könnten das auch machen, wenn man herausfindet, wer das Motherboard hergestellt oder importiert hat (viel Glück). Das Problem liegt in dem von ProAudio verwendeten Interfacechip; niemand kauft eine Soundkarte für $120 und steckt sie in einen 6MHz AT. Die meisten werden sie in 25-40MHz 386/486er Rechnern verwenden, deshalb sollte sie mindestens 12MHz Bustakt vertragen, wenn die Chips richtig konstruiert sind.

Das erste Problem hängt vom Chipsatz auf dem Motherboard ab, von der Busgeschwindigkeit und anderen BIOS-Einstellungen und von der Mondphase. Das zweite Problem hängt von der Einstellung der Refreshoption (hidden oder synchronous), der DMA-Rate des 1542 und (möglicherweise) der I/O-Rate des Busses ab. Das dritte kann festgestellt werden, indem man Media Vision anruft und danach fragt, welche Art Symphonychip mit ihrem langsamen Design inkompatibel ist. Aber Vorsicht: 3 von 4 Technikern, mit denen der Autor sprach, hatten Hirnschäden. Man sollte sehr vorsichtig sein, ihnen irgendetwas zu glauben, was sie über fremde Hardware sagen, da sie ihre eigene noch nicht mal besonders gut kennen.

6.18 Ist es möglich, Samples gleichzeitig zu lesen und zu schreiben?

Wegen Hardwarebegrenzungen ist das bei den meisten Soundkarten nicht möglich. Einige neuere Karten unterstützen es. Siehe den Abschnitt über "birektionalen Modus" in der Hacker's Guide to Voxware für weitere Informationen.

6.19 Mein SB16 ist auf IRQ 2 eingestellt, aber configure erlaubt diesen Wert nicht.

Auf 286er und höher ist der IRQ 2 auf den zweiten Interruptcontroller cascadiert. Er ist gleichbedeutend mit IRQ 9.

6.20 Werden die SoundBlaster AWE32 oder SoundBlaster 16 ASP unterstützt?

Diese Karten besitzen spezielle Chips (ASP und Emu), die zusätzliche Fähigkeiten wie Wavetable-Synthese liefern. Aber Creative Labs ist nicht bereit, Informationen über ihre Programmierung freizugeben. Solange sie ihre Politik nicht ändern, kann es unter Linux keine Unterstützung für diese spezielle Hardware geben. Die Karten werden aber als normale SoundBlaster 16-Karten unterstützt.

Die Gravis UltraSound hat ähnliche Fähigkeiten wie die AWE32 und wird von Linux unterstützt. Karten, die auf anderen DSPs, wie dem Analog Devices ADSP-21xx, basieren, könnten in Zukunft unterstützt werden.

6.21 Wenn ich Linux benutze und danach DOS boote, bekomme ich Fehler und/oder einige Anwendungen laufen nicht richtig.

Das passiert nach einem Softboot zu DOS. Manchmal verweist die Fehlermeldung fälschlicherweise auf einen Fehler in der CONFIG.SYS.

Die meisten der aktuellen Soundkarten haben durch Software kontrollierbare IRQ- und DMA-Einstellungen. Wenn man unter Linux und DOS verschiedene Einstellungen benutzt, kann das Probleme bereiten. Einige Soundkarten akzeptieren neue Parameter nur nach einem kompletten Reset (d.h. entweder die Stromversorgung ausschalten oder den Resetknopf verwenden).

Die schnelle Lösung dieses Problems besteht also darin, statt eines Softboots (z.B. Strg-Alt-Entf) einen kompletten Reset zu verwenden.

Die korrekte Lösung liegt darin, die gleichen IRQ- und DMA-Einstellungen unter DOS und Linux zu verwenden (oder kein DOS zu verwenden :-).

6.22 Probleme, DOOM unter Linux laufen zu lassen

Anwender der Linuxversion von DOOM von ID Software könnten an diesen Hinweisen interessiert sein.

Für eine korrekte Soundausgabe braucht man Version 2.90 oder später; sie unterstützt den Echtzeit "DOOM mode".

Die Soundsamples sind 16-bit. Wer eine 8bit-Soundkarte verwendet, kann trotzdem Sound bekommen, wenn er eines der zahlreichen Programme aus metalab.unc.edu:/pub/Linux/games/doom verwendet.

Wenn die Geschwindigkeit von DOOM zu gering ist, kann sie verbessert werden, wenn man den Sound ausschaltet (indem man die Datei sndserver umbenennt).

Standardmäßig unterstützt DOOM keine Musik (wie in der DOS-Version). Das Programm musserver fügt Musik zu DOOM unter Linux hinzu. Es befindet sich unter pandora.st.hmc.edu:/pub/linux/musserver.tgz.

(Letzte Meldung: Es sieht so aus, als ob Sound mit DOOM unter 2.0.x- Kernels nicht mehr funktioniert, es liefert einen Fehler wegen /dev/sequencer.)

6.23 Wie kann ich das Rauschen der Soundkarte reduzieren?

Um Rauschen zu reduzieren, sollte man abgeschirmte Kabel von guter Qualität nehmen und die Soundkarte in verschiedenen Steckplätzen testen. Wenn die Soundkarte eine Lautstärkenkontrolle hat, sollte man verschiedene Einstellungen testen (Maximum ist vielleicht die Beste).

Mit einem Mixerprogramm kann man sichergehen, daß unerwünschte Eingänge (z.B. Mikrofon) auf Lautstärke 0 gestellt sind.

Einige Soundkarten sind schlecht abgeschirmt und geerdet und deshalb für Rauschen sehr empfänglich.

Außerdem hat der Autor herausgefunden, daß auf seinem System die Kommandozeilenoption no-hlt das Rauschen verringert. Diese Option sagt dem Kernel, daß er nicht die halt-Anweisung verwenden soll, wenn er die idle-process-Schleife durchläuft. Man kann das manuell beim Booten testen oder es mittels des Befehls append = "no-htl" in der LILO-Konfigurationsdatei verwenden.

6.24 Ich kann Sounds abspielen, aber nicht aufnehmen.

Wenn man Sound abspielen, aber nicht aufnehmen kann, sollte man Folgendes ausprobieren:

6.25 Meine "kompatible" Soundkarte funktioniert nur, wenn ich sie zuerst unter DOS initialisiere.

Einige Klone sind nicht 100% registerkompatibel mit dem Original; sie haben manchmal zusätzliche Schaltkreise wie Mixer. Man kann sie evtl. unter Linux verwenden, wenn man sie zuerst unter DOS initialisiert und dann Linux softbootet (d.h. Strg-Alt-Entf).

Ein Anwender hat auch berichtet, daß er bessere Ergebnisse hatte, wenn er LOADLIN anstatt LILO verwendete, um Linux zu booten, nachdem er seine Soundkarte unter DOS initialisiert hatte (es war eine Diamond Soundkarte).

Sie können zuverlässig funktionieren oder nicht. Die wahre Lösung ist, vom Hersteller zu erfahren, wo die Unterschiede liegen und zum Soundtreiber die Unterstützung hinzuzufügen. Das wurde z.B. für die Sound Galaxy NX Pro gemacht.

6.26 Meine 16bit-SoundBlaster-kompatible Soundkarte funktioniert unter Linux nur im 8bit-Modus.

16bit-Soundkarten, die als SoundBlaster-kompatibel beschrieben werden, sind in Wirklichkeit nur mit der 8bit SoundBlaster Pro kompatibel. Sie haben üblicherweise einen 16bit-Modus, der nicht kompatibel mit der SoundBlaster 16 ist und auch nicht mit dem Linux Soundtreiber.

Wenn die Karte als kompatibel mit dem Microsoft Windows Sound System aufgeführt wird, könnte sie im 16bit-Modus laufen, wenn man die Unterstützung für das WSS im Linux Soundtreiber aktiviert. Außerdem muß man wahrscheinlich den DOS-Initialisierungstrick benutzen.

6.27 Wo finde ich Soundanwendungen für Linux?

Hier sind einige gute Archivserver für Linux-spezifische Soundanwendungen:

6.28 Kann der Soundtreiber als ladbares Modul compiliert werden?

Mit neueren Kernels wird der Soundtreiber als ladbares Modul unterstützt.

Für Details siehe die Dateien /usr/src/linux/drivers/sound/Readme.modules und /usr/src/linux/Documentation/modules.txt (oder /usr/src/linux/README).

6.29 Kann ich eine Soundkarte verwenden, um den Piep der Systemkonsole zu ersetzen?

Man probiere das Programm oplbeep von metalab.unc.edu:/pub/Linux/apps/sound/oplbeep-alpha.tar.gz.

Eine andere Variante ist das Programm beep von metalab.unc.edu:/pub/Linux/kernel/patches/misc/modreq_beep.tgz.

Im Paket modutils liegt in Beispielsprogramm und ein Kernelpatch, mit denen man ein externes Programm aufrufen kann, um Geräusche zu erzeugen, wenn das vom Kernel gefordert wird.

Alternativ kann man bei einigen Soundkarten den Ausgang für den PC-Lautsprecher mit der Soundkarte verbinden, so daß alle Geräusche aus den Lautsprechern der Soundkarte kommen.

6.30 Was ist VoxWare?

Die Soundtreiber des Kernels unterstützen mehrere Intel-basierende, Unix-kompatible Betriebssysteme und sind getrennt vom Linuxkernel erhältlich. Bis Februar 1996 hat der Autor die Software VoxWare genannt. Unglücklicherweise wurde dieser Name von VoxWare Incorporated registriert und kann nicht verwendet werden. Am 29. März 1996 hat Hannu Savolainen erklärt, daß der neue Name Unix Sound System (USS) Lite ist.

Das Unix Sound System (USS) ist ein kommerziell erhältlicher Kernel- Soundtreiber für mehrere Unixsysteme, vertrieben von 4Front Technologies. Eine freie Version, bekannt als USS/Lite wird weiterhin kostenlos für Linuxsysteme erhältlich sein.

Weitere Informationen findet man auf der Webseite von 4Front Technologies http://www.4front-tech.com/.

6.31 Werden Plug&Play Soundkarten unterstützt?

Volle Plug&Play (PnP) Unterstützung wird es voraussichtlich in Linux Version 2.1 geben. In der Zwischenzeit gibt es einige Workarounds, um PnP-Soundkarten unter Linux zum Arbeiten zu bringen.

Wenn man ein neueres Pentiumsystem mit PnP-BIOS hat, sollte dieses die Karten konfigurieren. Der Linux Soundtreiber muß die gleiche I/O-Adresse, IRQ- und DMA-Parameter verwenden wie das BIOS.

Es gibt ein Paket mit PnP-Tools für Linux, mit dem man die Karte einstellen kann. Es befindet sich bei http://www.redhat.com/pnp.

Wenn man die Karten unter Windows95 verwendet, kann man den Hardwaremanager verwenden, um die Karte einzustellen und dann Linux mittels des LOADLIN-Programms starten. Win95 und Linux müssen die gleichen Karteneinstellungen verwenden.

Wenn man die Karte unter DOS verwendet, kann man das icu-Utility verwenden, das mit SB16 PnP geliefert wird, um die Karte unter DOS zu konfigurieren und dann Linux mit LOADLIN starten. Wiederum müssen DOS und Linux die gleichen Karteneinstellungen verwenden.

Der kommerzielle USS/Linux Soundtreiber unterstützt die SB16 PnP. Man kann diesen Treiber von 4Front Technologies kaufen.

6.32 Sox/Play/VPlay meldet "invalid block size 1024"

Eine Änderung des Soundtreibers in der Version 1.3.67 sorgte dafür, daß einige Programme, die (fälschlicherweise) überprüften, ob das Ergebnis von SNDCTL_DSP_GETBLKSIZE ioctl größer als 4096 war, nicht mehr funktionieren. Man sollte eine neuere Version des Programms besorgen oder es selber anpassen. Für das Programm Sox hat folgender Patch funktioniert:

--- sbdsp.c.orig        Thu Feb 22 22:46:00 1996
+++ sbdsp.c     Thu Feb 22 22:51:18 1996
@@ -176,7 +176,7 @@
        }
 
        ioctl (dspfd, SNDCTL_DSP_GETBLKSIZE, &abuf_size);
-       if (abuf_size < 4096 || abuf_size > 65536) {
+       if (abuf_size < 1) {
                if (abuf_size == -1)
                perror (dspname);
                else

6.33 Warum benutzt der Soundtreiber sein eigenes Konfigurationsprogramm?

Der Soundtreiber unterstützt viele unterschiedliche Konfigurationsparameter. Das Programm configure des Soundtreibers prüft viele Abhängigkeiten zwischen den Parametern. Die Werkzeuge, die zur Konfiguration des Kernels verwendet werden, unterstützen diesen Funktionalität nicht.

Allerdings erlauben es die späteren 1.3.x-Kernel optional, das Standard-Konfigurationsprogramm des Kernels für den Soundtreiber zu verwenden. Siehe die Anmerkungen in CHANGELOG. Das ist noch experimentell und es können damit einige Optionen nicht eingestellt werden.

6.34 Die Mixereinstellungen werden gelöscht, wenn das Soundtreiber-Modul geladen wird

Man kann den Soundtreiber als ladbares Modul compilieren und kerneld verwenden, um es automatisch zu laden und zu entfernen. Das kann ein Problem geben - wenn das Modul neu geladen wird, werden die Mixereinstellungen auf Standardwerte zurückgesetzt. Bei einigen Soundkarten sind diese zu laut (z.B. SB16) oder zu leise. Markus Gutschke (gutschk@uni-muenster.de) fand diese Lösung. Man setze so eine Zeile in die Datei /etc/conf.modules:

options sound dma_buffsize=65536 && /usr/bin/setmixer igain 0 ogain 0 vol 75

Dadurch wird das Mixerprogramm (hier setmixer) aufgerufen, sobald der Soundtreiber geladen wird. Der Parameter dma_buffsize ist ohne Bedeutung, aber der Befehl option benötigt eine Kommandozeilenoption. Man kann die Zeile auf die passenden Einstellungen für Mixerprogramm und Verstärkung anpassen.

Wenn man den Soundtreiber in den Kernel compiliert hat und die Lautstärke beim Booten einstellen will, kann man einen Aufruf des Mixerprogramms in eine Startdatei wie /etc/rc.d/rc.local setzen.

6.35 Nur root kann Sound aufnehmen

Standardmäßig erstellt daß Script aus Readme.linux die Sounddevices so, daß sie nur von root gelesen werden können. Das schließt ein potentielles Sicherheitsloch. In einer Netzwerkumgebung könnte sich ein Benutzer über das Netzwerk in einen Linux-PC mit Soundkarte und Mikrofon einloggen und lauschen. Wenn man sich darüber keine Sorgen machen muß, kann man die Permissions verändern.

Bei der Standardeinstellung können Anwender immer noch Sounddateien abspielen. Das ist kein Sicherheitsrisiko, könnte aber belästigend sein.


Inhalt