De SoundBlaster 16-32-64AWE-mini-HOWTO

Ramses v. Pinxteren <ram6@euronet.nl> Mei 1999

Deze HOWTO is voor die gebruikers die hun SoundBlaster onder Linux willen installeren.

1 Inleiding

Voor de andere luitjes die aan het zoeken zijn: Hier komt de oplossing die voor mij, en voor de luitjes van Suse werkt. Ik heb gehoord dat deze oplossing ook op rooie hoed en slackware werkt, maar dat heb ik zelf niet uit getest.

1.1 Disclaimer

Disclaimer: Zoals altijd mag iedereen deze howto gebruiken. Ik wil alleen wel geinformeerd worden als hij op een website geplaatst wordt. Ook zou het fijn zijn als men dan mijn naam daar bij zet. Dat is niet alleen auteursrechtelijk gezien zo, maar het is ook een aardige opsteker voor mijzelf. Genoeg bullsh*t, aan het werk mensen.

2 Instellingen

Start (Het is een open deur) met te kijken naar de instellingen onder Windows. Als je dat niet op je harde schijf hebt staan, is het alleen maar gemakkelijker, dan kan je zelf wat verzinnen ;-)

3 Plug and Play

Kijk eerst of het bestand /etc/isapnp.conf bestaat. Als dat zo is, back die dan ff up.

     # cp /etc/isapnp.conf /etc/isapnp.conf.bak

Voer pnpdump uit, en sluis de output naar /etc/isapnp.conf

     # /sbin/pnpdump > /etc/isapnp.conf

3.1 Wijzigen van isapnp.conf

Start je editor op (In mijn geval:)

     # pico /etc/isapnp.conf

Edit de file tot je zo iets over houdt:

/etc/isapnp.conf

# $Id: SB64AWE-mini-HOWTO-NL.sgml,v 1.2 2003/02/08 20:41:48 bokkie Exp $
# This is free software, see the sources for details.
# This software has NO WARRANTY, use at your OWN RISK
#
# For details of this file format, see isapnp.conf(5)
#
# For latest information on isapnp and pnpdump see:
# http://www.roestock.demon.co.uk/isapnptools/
#
# Compiler flags: -DREALTIME -DNEEDSETSCHEDULER -DABORT_ONRESERR
#
# Trying port address 0203
# Trying port address 020b
# Board 1 has serial identifier 6f 0f fb b8 b7 e4 00 8c 0e
# (DEBUG)
(READPORT 0x020b)
(ISOLATE PRESERVE)
(IDENTIFY *)
(VERBOSITY 2)
(CONFLICT (IO FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # or WARNING
# Card 1: (serial identifier 6f 0f fb b8 b7 e4 00 8c 0e)
# Vendor Id CTL00e4, Serial Number 268155063, checksum 0x6F.
# Version 1.0, Vendor version 1.0
# ANSI string -->Creative SB AWE64  PnP<--
# Vendor defined tag:  73 02 45 20
#
# Logical device id CTL0045
#     Device supports vendor reserved register @ 0x38
#
# Edit the entries below to uncomment out the configuration required.
# Note that only the first value of any range is given, this may be changed
if required
# Don't forget to uncomment the activate (ACT Y) when happy
(CONFIGURE CTL00e4/268155063 (LD 0
#     ANSI string -->Audio<--
# Multiple choice time, choose one only !
#     Start dependent functions: priority preferred
#       IRQ 5.
#             High true, edge sensitive interrupt (by default)
(INT 0 (IRQ 5 (MODE +E)))
#       First DMA channel 1.
#             8 bit DMA only
#             Logical device is not a bus master
#             DMA may execute in count by byte mode

#             DMA may not execute in count by word mode
#             DMA channel speed in compatible mode
(DMA 0 (CHANNEL 1))
#       Next DMA channel 5.
#             16 bit DMA only
#             Logical device is not a bus master
#             DMA may not execute in count by byte mode
#             DMA may execute in count by word mode
#             DMA channel speed in compatible mode
(DMA 1 (CHANNEL 5))
#       Logical device decodes 16 bit IO address lines
#             Minimum IO base address 0x0220
#             Maximum IO base address 0x0220
#             IO base alignment 1 bytes
#             Number of IO addresses required: 16
(IO 0 (BASE 0x0220))
#       Logical device decodes 16 bit IO address lines
#             Minimum IO base address 0x0330
#             Maximum IO base address 0x0330
#             IO base alignment 1 bytes
#             Number of IO addresses required: 2
(IO 1 (BASE 0x0330))
#       Logical device decodes 16 bit IO address lines
#             Minimum IO base address 0x0388
#             Maximum IO base address 0x0388
#             IO base alignment 1 bytes
#             Number of IO addresses required: 4
(IO 2 (BASE 0x0388))
#     End dependent functions
 (NAME "CTL00e4/268155063[0]{Audio               }")
(ACT Y)
))
#
# Logical device id CTL7002
#     Device supports vendor reserved register @ 0x38
#
# Edit the entries below to uncomment out the configuration required.
# Note that only the first value of any range is given, this may be changed
if required
# Don't forget to uncomment the activate (ACT Y) when happy
(CONFIGURE CTL00e4/268155063 (LD 1
#     Compatible device id PNPb02f
#     ANSI string -->Game<--
# Multiple choice time, choose one only !
#     Start dependent functions: priority preferred
#       Logical device decodes 16 bit IO address lines

#             Minimum IO base address 0x0200
#             Maximum IO base address 0x0200
#             IO base alignment 1 bytes
#             Number of IO addresses required: 8
(IO 0 (BASE 0x0200))
#     End dependent functions
 (NAME "CTL00e4/268155063[1]{Game                }")
(ACT Y)
))
#
# Logical device id CTL0022
#     Device supports vendor reserved register @ 0x38
#
# Edit the entries below to uncomment out the configuration required.
# Note that only the first value of any range is given, this may be changed
if required
# Don't forget to uncomment the activate (ACT Y) when happy
(CONFIGURE CTL00e4/268155063 (LD 2
#     ANSI string -->WaveTable<--
# Multiple choice time, choose one only !
#     Start dependent functions: priority preferred
#       Logical device decodes 16 bit IO address lines
#             Minimum IO base address 0x0620
#             Maximum IO base address 0x0620
#             IO base alignment 1 bytes
#             Number of IO addresses required: 4
(IO 0 (BASE 0x0620))
(IO 1 (BASE 0x0a20))
(IO 2 (BASE 0x0e20))
 (NAME "CTL00e4/268155063[2]{WaveTable           }")
(ACT Y)
))
# End tag... Checksum 0x00 (OK)
# Returns all cards to the "Wait for Key" state
(WAITFORKEY)
----------EOF

4 De kernel

Ga daarna naar je kernel directory

     # cd /usr/src/linux

en bouw een kernel

     # make menuconfig

Ga naar Sound en activeer die als module. Let op als je het niet als een module doet, dan werkt het niet. Je kernel wordt namelijk voor isapnp ingeladen, en dan zou hij niet weten op welke plek die soundblaster hangt.

Een screendumpje:

<M> Sound card support
    Old configuration script (For: SM Wave, PSS & Audiotrix Pro ) -->
[ ] ProAudioSpectrum 16 support
[*] Sound Blaster (SB, SBPro, SB16, clones) support
[*] Generic OPL2/OPL# FM synthesizer support
<Knip! alles leeg laten tot:>
[*] /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 DMA (_REQUIRES_for SB16, Jazz16, SMW) 5, 6, ...
(330) MPU401 I/O base of SB 16, jazz16 and ESS1688 Check from manual ...
(5)   SB MPU401 IRQ (Jazz16, SM Wave and ES1688) Use -1 with sb16
(65535) Audio DMA buffer size 4096, 16384, 32768 or 65536
[*] additional low level drivers
[ ] ACI mixer (microPCM12)
[*] AWE32 synth

5 Laatste stappen

Vervolgens saven en exitten en compilen

     # make dep clean zImage modules modules_install >/dev/null

(Dit genereert een wat vriendelijkere output. Het geeft ook aan welke dingen allemaal nog gehacked kunnen worden en wat niet.)

vervolgens de kernel installeren in Lilo, en rebooten (Ik neem aan dat jullie dat zelf wel weten..)

Als hij opgestart is, kan je even kijken met DMESG of er geen fouten in je isapnp.conf zitten

     # dmesg

Is dit allemaal oke, dan kan je de module sound installeren:

     # modprobe sound

Nu moet de kaart al werken. Kijk voor de lol es ff naar je /var/log/messages of daar iets in staat dat lijkt op:

Mar 26 20:00:48 jupiter kernel: AWE32-0.4.2c (RAM512K)

6 Status

Nu ben je er bijna al zeker van dat hij werkt. Je kan nu nog kijken naar /dev/sndstat wat de status is van je huisvlijt.

6.1 sndstat

/dev/sndstat
Sound Driver:3.5.4-960630 (Fri Mar 26 19:52:28 CET 1999 root,
Linux apollo-hrn0183 2.0.36 #1 Fri Mar 26 12:11:40 CET 1999 i686 unknown)
Kernel: Linux apollo-hrn0183 2.0.36 #4 Fri Mar 26 19:53:03 CET 1999 i686
Config options: 0
Installed drivers:
Type 1: OPL-2/OPL-3 FM
Type 2: Sound Blaster
Type 7: SB MPU-401
Card config:
Sound Blaster at 0x220 irq 5 drq 1,5
SB MPU-401 at 0x330 irq 5
OPL-2/OPL-3 FM at 0x388 drq 0
Audio devices:
0: Sound Blaster 16 (4.16)
Synth devices:
0: Yamaha OPL-3
1: AWE32-0.4.2c (RAM512k)
Midi devices:
0: Sound Blaster 16
Timers:
0: System clock
Mixers:
0: Sound Blaster
1: AWE32 Equalizer
------EOF

7 Einde

Nu kan je je cd-tjes in je wisselaar gooien, of je x11ampje opstarten, en genieten.

Het was mij een genoegen.

Ramses v. Pinxteren