Linux Soundblaster AWE64 PnP HOWTO Donald V LaDieu (nega@vt.edu) und Frank Böhm (fraboehm@gmx.de) v0.2 27. Januar 1997 Dieses mini-HOWTO erklärt die Installation der Soundblaster AWE 64 PnP Karte unter Linux. 1. Einleitung 1.1. Copyright Dieses Dokument ist urheberrechtlich geschützt. Das Copyright für die englische AWE64 mini-HOWTO, auf der dieses Dokument teilweise basiert, liegt bei Donald V LaDieu (nega@vt.edu). Das Copyright für die deutsche Version liegt bei Frank Böhm (fraboehm@gmx.de). Das Dokument darf gemäß der GNU General Public License verbreitet werden. Insbesondere bedeutet dieses, daß der Text sowohl über elektronische wie auch physikalische Medien ohne die Zahlung von Lizenzgebühren verbreitet werden darf, solange dieser Copyright Hinweis nicht entfernt wird. Eine kommerzielle Verbreitung ist erlaubt und ausdrücklich erwünscht. Bei einer Publikation in Papierform ist das Deutsche Linux HOWTO Projekt hierüber zu zu informieren. 1.2. Neue Versionen dieses Dokuments Für die englische Version scheint keine Fortsetzung geplant zu sein. Eine deutsche Neuauflage wird es nur geben, wenn der Bedarf besteht. Als dieses Dokument geschrieben wurde, war aktuell: · kernel 2.0.33 · isapnptools 1.13 · awedrv-0.4.2d 2. Installation 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. 2.1. PnP Kofiguration 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: · die Server der Distributionen · http://www.roestock.demon.co.uk/isapnptools/ Alles installiert? Dokumentation gelesen? Hier kommt der Schnelleinstieg. · bash$ pnpdump > /tmp/isapnp.conf Erzeugt ein Textfile, in dem alle erkannten PnP-Karten mit ihren Installationsmöglichkeiten aufgeführt sind. Die Datei ist zu diesem Zeitpunkt noch sinnlos, da alle Werte auskommentiert sind und LD 2 nicht von alleine vollständig erkannt wird. · $EDITOR /tmp/isapnp.conf Mit dem Lieblingseditor seiner Wahl müssen hier die richtigen Werte aktiviert werden; es reicht das # 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. 2.2. Kernel 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 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 Ker­ nel 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. :-))