![]() |
Sound Blaster AWE 32 and 64
From mikea@norfolk.nf
Installing sound correctly in Linux is best described as 'tricky'. These steps work! No ifs no maybes. If sound fails for you afterwards, you have not fully read these steps and cut some corners. Pay careful attention to what is said, do NOT skip ahead because "you've done that before". You haven't. You've done it in the wrong order
|
At the completion of theses
steps, you will have a garanteed sound system working
each time, every time, with no disconcerting failures.
Read Carefully.
These notes apply equally to an SBAWE32 both contain, a raw audio
device, |
| The SB AWE 64 has
additional Wave Guide synthesis. The 32 additional voices
are software generated and output via the raw wave devices. It is not supported under linux and so both types of card are handled the same way. |
UART401 and OPL3 are assumed to have default values. The modules when loaded will assume this. If this is not the case simply assign further paramaters under step FOUR to these devices
STEP ZERO:
AWE32/64 is ISAPNP. You *must* go through the isapnp step by step before wasting your time in here. It cannot be stressed strongly enough, the isapnp will clear up many mysteries to you about what paramaters to assign to which. Do not attempt these steps until isapnp is sorted out.
The awe64 does not supply pnpdump with all values required. /etc/isapnp.conf must be altered to add the following addresses with an example below
"(CONFIGURE CTL044/1132685 (LD 2 (IO 0 (BASE 0x0620)) (IO 1
(BASE 0x0A20))
(IO 2 (BASE 0x0E20)) (ACT Y)
))"
Gameport (0x200) and StereoEnhance are not required to be configured.
write down the following paramaters based on /etc/isapnp.conf
io=0x220
irq=9
dma=3
dma16=7
these values are MY values for MY installation. Yours will differ. You will use these in step 3.
If you have not already done so, in a root console type
isapnp /etc/isapnp.conf
isapnp is intelligent, if you retype isapnp at some future date, there is a possibility it will 'fail'. This is because the code inside isapnp sniffs at existing, active ports and interrupts. If the isapnp.conf file contains resources that isapnp knows are active it will complain. It does not know what an active IRQ 7 is used for, only that the kernel reports it as being 'in use'. Typicically, if you run isapnp to get sound up and running, and then, sound does actually run, then interrupts from that get 'reserved'. Hence, re-typing isapnp will fail.
Do not go past step zero until isapnp is 'ok', you are otherwise wasting your time. You *have* been warned.
STEP ONE: Compiling
Ordinarily you can safely skip this step.
Kernel distributions normally come shipped with all modules compiled. In the unlikely event that this is not the case, OR, you have recompiled your kernel, these are the settings you require in "make xconfig" for soundblaster - awe modules.
Sound Blaster (SB, SBPro, SB16, clones) support
(CONFIG_SB)
Generic OPL2/OPL3 FM synthesizer support
(CONFIG_ADLIB)
/dev/dsp and /dev/audio support (CONFIG_AUDIO)
MIDI interface support (CONFIG_MIDI)
FM synthesizer (YM3812/OPL-3) support (CONFIG_YM3812)
lowlevel sound driver support
AWE32 support (CONFIG_AWE32_SYNTH)
The choice of using M (modularised) or 'Y' (monolithic)
kernels is up to you.
See recompiling for an SxS on this
subject. For modularised kernels it does not matter
if you compile additional sound components apart from the
above. They simply wont be used.
STEP TWO AWESFX
This program does NOT come with your distro, the use of the
AWE channels is therefore restricted. If you are
dual booting you will experience sound sometimes working,
sometimes not. Because the rom tables are not loaded.
Obtain a copy of synthgm.sbk in the following way.
If you have a windoze drive
cp /mnt/dos/windows/system/synthgm.sbk
/usr/bin/
or
http://members.xoom.com/yar/synthgm.sbk.gz
grab the entire for awesfx program.
http://members.tripod.de/iwai/awedrv.html#Driver
follow instructions so that sfxload ends up in /usr/bin
insert the following into /etc/modules.conf
post-install awe_wave /usr/bin/sfxload /usr/bin/synthgm.sbk
Step THREE sound module order.
USE COAS.
The coas-kernel-load is broken in this regard, but, you must use it's facilities. This is *foolproof*
1) coas-kernel-load-view-sound
remove ALL SOUND MODULES except soundcore and soundlow
if they are not there, install
them.
exit
2) in a root console type the following magic.
modprobe sb io=0x220 irq=9 dma=3 dma16=7
If you get failures here, you have got it wrong. do NOT go
past this step until you can succesfully modprobe. Don't
despair
the only failure you can have is the resource paramaters are
wrong, check and double check step zero.
It is essential that modprobe works for a bug in coas to be 'got round'.
3) coas-kernel-load-view-sound(again!)
two new modules will now be there
soundcore
soundlow
sound
sb
UNLOAD sb
(yes, unload it)
it will ask if you want it at boot time, answer NO (we need to
re-initailise this thing by removing it completely)
load it again ! with correct paramaters (as above)
install the remaining modules:
uart401
awe32
uart6850
mpu401
opl3
exit
-----------
Although not necessary, you can check that all modules are correct for the next boot
/etc/modules/<version>/default must contain
soundlow
soundcore
sound
opl13
mpu401
uart401
sb
awe_wave
delete all references to other sound modules and cards (if present)
<version> is tricky to explain
without making this SxS large, type "uname -r" to discover
which <version> will be looked at
at boot time. For a full explanation
(rembember you are just checking here) see modprobe
/etc/modules/options/sb
io=0x220 irq=5 dma=1 dma16=5 mpu_io=0x330
STEP FOUR: provide paramaters to /etc/modules.conf
Due to a bug in the boot scripts (a timing race), you should additonally enter values in /etc/modules.conf
alias sound sb
options sb io=0x220 irq=5 dma=1 dma16=5
mpu_io=0x330
post-install awe_wave /usr/bin/sfxload
/usr/bin/synthgm.sbk
The mpu and opl3 (midi) addresses are set to default of 0x330 and 0x388 respectively.
*remember, these are my paramaters, yours will differ.
TESTING FOR SOUND
cat /dev/sndstat
OSS/Free:3.8s2++-971130
Load type: Driver loaded as a module
Kernel: Linux mikea.nf 2.2.5 #1 Sat Apr 3 21:49:22 MST 1999
i586
Config options: 0
Installed drivers:
Card config:
Audio devices:
0: Sound Blaster 16 (4.16) (DUPLEX)
Synth devices:
0: AWE32-0.4.3 (RAM512k)
1: Yamaha OPL3
Midi devices:
0: Sound Blaster 16
1: AWE Midi Emu
Timers:
0: System clock
Mixers:
0: Sound Blaster
---------
locate *.au
cat *.au > /dev/audio
cat *.au > /dev/dsp
-------