Bevor die Karte läuft, müssen zwei Hürden genommen werden: PnP und Kernel. Der schnellste Weg besteht darin, die Karte unter Dos zu initialisieren und mit Loadlin Linux zu starten. Für Linux muß dann ein Kernel/Modul benutzt werden, der/das Sound mit einer Soundblaster Karte unterstützt.
Da die Karte nur über PnP eingestellt werden kann, muß diese Hürde als erstes genommen werden. Es gibt mehrere Wege, um hier zum Ziel zu kommen.
In den meisten Fällen wird die Karte nicht nur unter Linux benutzt. Die mitgelieferten Treiber können die Karte für DOS und Windows initialisieren. Die Auswahl der richtigen Werte ist unter Umständen nicht ganz trivial. Die meisten Schwierigkeiten entstehen mit PnP, weil es theoretisch möglich ist, unter jedem Betriebssystem andere Einstellungen zu verwenden, und leider passiert häufig genau das. Ich schlage vor, in jedem Betriebssystem die gleichen Werte manuell zuzuweisen und zwar in der Reihenfolge Windows, Dos und Linux. Die quasi Standardwerte
IRQ5; DMA1,5; I/O 220,330,388
haben sich bewährt. Sie werden von fast jedem Programm als erstes vorgeschlagen. Unter Windows automatische Zuweisung deaktivieren und neue Werte einstellen. Erst wenn hier keine Konflikte mehr auftauchen, weitergehen. Windows beenden und Dos Modus starten (keine Dos-Box!). Unter Dos mit CTCM und CTCU die gleichen Werte einstellen. Aufgrund einer Eigenheit der SB Karte müssen die von Creative mitgelieferten Tools benutzt werden. Nach einem Soft-Reboot mit Ctrl-Alt-Del oder Loadlin kann die Karte auch unter Linux mit den gleichen Werten benutzt werden. Für einen schnellen Test, um zu sehen, ob der Karte unter Linux Töne zu entlocken sind, ausreichend.
Die elegantere Methode besteht darin die Karte mit den isapnptools direkt unter Linux zu initialisieren. Die isapnptools sind bei den meisten Distributionen bereits enthalten und müssen nur noch installiert werden. URLs für Updates sind:
http://www.roestock.demon.co.uk/isapnptools/
Alles installiert? Dokumentation gelesen? Hier kommt der Schnelleinstieg.
bash$ pnpdump > /tmp/isapnp.conf
$EDITOR /tmp/isapnp.conf
#
zu entfernen.
Die Standardwerte sind immer als erstes aufgeführt. Bei LD 2 müssen noch die
beiden Einträge (IO 1 (BASE 0x0a20)) (IO 2 (BASE 0x0e20))
ergänzt werden,
wenn später die WaveTable benutzt werden soll. Am Ende einer Auswahl muß das
#
vor (ACT Y)
entfernt werden.
bash$ isapnp /tmp/isapnp.conf
Meine eigene Konfiguration nach dem Entfernen der meisten Kommentare sieht so aus. Die Werte dürfen nicht mit Cut&Paste übernommen werden, sondern müssen individuell angepaßt sein.
# (DEBUG)
(READPORT 0x020b)
(ISOLATE)
(IDENTIFY *)
# Card
1: (serial identifier 39 1b cd b7 ee c5 00 8c 0e)
# ANSI string -->Creative
SB AWE64 PnP<--
(CONFIGURE CTL00c5/466466798 (LD 0
# ANSI string
-->Audio<--
(INT 0 (IRQ 5 (MODE +E)))
(DMA 0 (CHANNEL 1)) (DMA 1 (CHANNEL
5))
(IO 0 (BASE 0x0220)) (IO 1 (BASE 0x0330)) (IO 2 (BASE 0x0388))
(ACT
Y)
))
(CONFIGURE CTL00c5/466466798 (LD 1
# ANSI string -->Game<--
(IO 0 (BASE 0x0200))
(ACT Y)
))
(CONFIGURE CTL00c5/466466798 (LD 2
#
ANSI string -->WaveTable<--
(IO 0 (BASE 0x0620)) (IO 1 (BASE 0x0a20))
(IO 2 (BASE 0x0e20))
(ACT Y)
))
# Returns all cards to the "Wait
for Key" state
(WAITFORKEY)
In diesem Beispiel ist die SB die einzige PnP-Karte im System, Leute die mehrere PnP-Karten benutzen, sollten ja keine Schwierigkeiten mehr mit den isapnptools haben. Nachdem die Karte mit
isapnp /tmp/isapnp.conf
ohne Fehler initialisiert
wird, kann die Datei nach /etc
verschoben werden. Bei den Distributionen,
bei denen
die isapnptools enthalten sind, ist normalerweise eine Möglichkeit vorgesehen,
sie beim Booten automatisch zu aktivieren. SuSE 5.0 automatisch, wenn
/etc/isapnp.conf
vorhanden ist. Bei DLD 5.3 PnP mit dldadmin aktivieren.
Der Kernel (getestet ab 2.0.29) unterstützt die Soundausgabe mit einer
SB in 8 und 16-Bit Aufnahme und Wiedergabe und einen Mixer. Nur für besseren
Midi-Sound über den WaveTable muß der Kernel gepatcht werden. Der Kernel muß
mit den gleichen Werte wie in der /etc/isapnp.conf
kompiliert werden, meine
Konfiguration ist:
cd /usr/src/linux
make menuconfig
<M> Sound card support
[*] Sound
Blaster (SB, SBPro, SB16, clones) support
[*] Generic OPL2/OPL3 FM synthesizer
support
[*] /dev/dsp and /dev/audio support
[*] MIDI interface support
[*]
FM synthesizer (YM3812/OPL-3) support
(220) I/O base for SB Check from manual
of the card
(5) Sound Blaster IRQ Check from manual of the card
(1) Sound
Blaster DMA 0, 1 or 3
(5) Sound Blaster 16 bit DMA (_REQUIRED_for SB16, Jazz16,
SMW) 5, 6 or
(330) MPU401 I/O base of SB16, Jazz 16 and ES1688 Check from manual
of
(-1) SB MPU401 IRQ (Jazz16, SM Wave and ES1688) Use -1 with SB16
(65536)
Audio DMA buffer size 4096, 16384, 32768 or 65536
make dep; make clean; make
zlilo; make modules; make modules_install;
Nachdem ein neuer Kernel generiert wurde, kann mit
cat /dev/sndstat
getestet werden, ob überhaupt und welche Komponenten erkannt wurden. Treten
bis hier keine Schwierigkeiten auf, kommt die Krönung, der Kernel kann gepatcht
werden, um den WaveTable zu benutzen. Der Patch ist von Takashi Iwai und für
die Soundblaster AWE 32 geschrieben.
http://bahamut.mm.t.u-tokyo.ac.jp/~iwai/awedrv/#Latest
Paket installieren, Dokumentation lesen, in das Verzeichnis von awedrv
wecheln, als root ./install.sh
aufrufen, Fragen beantworten. Jetzt ist es an
der Zeit, einen neuen Kernel/Modul zu generieren. Danach tauchen im Soundmenü
zwei neue Einträge auf.
Nach dem Kernelpatch
[*] Additional low level drivers
[*] AWE32 synth
Herzlich Willkommen, der neue Kernel unterstützt jetzt auch den WaveTable.
Mit dem Paket awesfx
müssen Soundbänke geladen werden und mit
awemidi
kann
endlich der Midi-Sound genossen werden. Man beachte die Reihenfolge, erst Soundbank
initialisieren, dann Midis spielen. :-)
Es lohnt sich auf jeden Fall, die HP von Takashi Iwai zu besuchen, um weiterführende Links zu finden. Sollten noch Fragen zur Installation da sein, oder wollt Ihr Euch nur nett unterhalten, könnt Ihr mir auch eine e-mail schicken. Es gibt auch noch ein Leben nach dem Computer. :-))