|
Content Cleanup Required |
Background
Many older devices are not probed (autodetected) by the 2.6 kernel to avoid hardware issues like crashes. You have to load the module yourself. Loading the correct module for your device will not cause your system to crash. Probing or loading the wrong one may. You may have to experiment. It is relatively easy to do. You need to tell the kernel to load the module. A module is a driver. I found this: http://www.icewalkers.com/Linux/Howto/BootPrompt-HOWTO-8.html I used the information to get my older sound card working.
Loading Module
For example, I opened my box and looked at the sound chip. It had ESS Audio Drive written on it (1899-45-68). I consulted the list and tried loading the ESS Audiodrive module by hand:
sudo modprobe snd-es18xx
To see if your card is working, run alsamixer. If you get sliders to move around, it is working.
alsamixer
That worked so, I added "snd-es18xx" to /etc/modules so that it would be loaded at boot time.
sudo nano /etc/modules
Ubuntu Dapper Drake will not load the the Crystal CS-4236 driver used in a Dell Optiplex GX1 (and others) by default. Adding the line
snd-cs4236
to the file /etc/modules and rebooting got this system working. Do read the documentation on sudo and nano, They are less intimidating than you might think.
I *think* you need to tell the kernel the sound settings in some circumstances (look in your bios for the values):
sudo modprobe opl3 port=0x220 irq=5 dma1=1
Another thing! Alsa sound is muted by default. Run alsamixer in the console to unmute your sound.
alsamixer
So, if you are unsure of the module, load it and run alsamixer. It will display the sound device it is using.
EXAMPLE SoundBlaster SB16 non PNP ISA card: 1. Add following line to the /etc/modules file. This will make the driver to load at boot time. snd-sb16 2. Add following line to the /etc/modprobe.d/alsa_local and /etc/modutils/alsa_local files. options snd-sb16 isapnp=0 port=0x220 irq=5 dma8=1 dma16=5 mpu_port=0x330 Note! Propably alsa_local files does not exist so create them first. Note! isapnp=0 will turn isapnp off so non pnp card can be found. Perhaps /etc/modutils/alsa_local is not needed but I did not test. You can test the driver and the options at alsa_local file without reboot: sudo modprobe snd-sb16 alsamixer
Here is the text from the above mentioned website:
8. The Sound Drivers
Note that there was a rewrite of a lot of the sound core and related drivers. The older stuff is generally called OSS' and the newer is called ALSA'. The intention is to drop the OSS stuff eventually. To avoid name conflict, the ALSA stuff generally has `snd-' as a prefix to all the boot parameters.
Note that each driver has its own individual boot argument (very old kernels used a shared sound=). Also, generally no defaults are set at compile time (i.e. you must supply a boot argument for older non-PNP ISA cards to be detected.) Your best source of information for your card is the files in linux/Documentation/sound/.
8.1 Individual Sound Device Driver Arguments
ALSA ISA drivers
snd-dummy= Dummy soundcard snd-mpu401= mpu401 UART snd-mtpav= MOTU Midi Timepiece snd-serial= Serial UART 16450/16550 MIDI snd-virmidi= Dummy soundcard for virtual rawmidi devices snd-ad1816a= ADI SoundPort AD1816A snd-ad1848= Generic driver for AD1848/AD1847/CS4248 snd-als100= Avance Logic ALS100 snd-azt2320= Aztech Systems AZT2320 (and 2316) snd-cmi8330= C-Media's CMI8330 snd-cs4231= Generic driver for CS4231 chips snd-cs4232= Generic driver for CS4232 chips snd-cs4236= Generic driver for CS4235/6/7/8/9 chips snd-dt019x= Diamond Technologies DT-019x snd-es1688= Generic ESS AudioDrive ESx688 snd-es18xx= Generic ESS AudioDrive ES18xx snd-gusclassic= Gus classic snd-gusextreme= Gus extreme snd-gusmax= Gus Max snd-interwave= Interwave snd-interwave-stb= Interwave snd-opl3sa2= Yamaha OPL3SA2 snd-opti93x= OPTi 82c93x based cards snd-opti92x-cs4231= OPTi 82c92x/CS4231 snd-opti92x-ad1848= OPTi 82c92x/AD1848 snd-es968= ESS AudioDrive ES968 snd-sb16= SoundBlaster 16 snd-sbawe= SoundBlaster 16 AWE snd-sb8= Old 8 bit SoundBlaster (1.0, 2.0, Pro) snd-sgalaxy= Sound galaxy snd-wavefront= Wavefront OSS drivers ad1848= AD1848 adlib= Adlib mad16= MAD16 pas2= ProAudioSpectrum PAS16 sb= SoundBlaster uart401= UART 401 (on card chip) uart6850= UART 6850 (on card chip) opl3= Yamaha OPL2/OPL3/OPL4 FM Synthesizer (on card chip) opl3sa= Yamaha OPL3-SA FM Synthesizer (on card chip) opl3sa2= Yamaha OPL3-SA2/SA3 FM Synthesizer (on card chip)
ALSA PCI Drivers
snd-ali5451= ALi PCI audio M5451 snd-als4000= Avance Logic ALS4000 snd-cmipci= C-Media CMI8338 and 8738 snd-cs4281= Cirrus Logic CS4281 snd-cs46xx= Cirrus Logic Sound Fusion CS46XX snd-emu10k1= EMU10K1 (SB Live!) snd-ens1370= Ensoniq ES1370 AudioPCI snd-ens1371= Ensoniq ES1371 AudioPCI snd-es1938= ESS Solo-1 (ES1938, ES1946, ES1969) snd-es1968= ESS Maestro 1/2/2E snd-fm801= ForteMedia FM801 snd-intel8x0= Intel ICH (i8x0) chipsets snd-maestro3= ESS Maestro3/Allegro (ES1988) snd-korg1212= Korg 1212 IO snd-rme32= RME Digi32, Digi32/8 and Digi32 PRO snd-nm256= NeoMagic 256AV and 256ZX snd-rme96= RME Digi96, Digi96/8 and Digi96/8 PRO/PAD/PST snd-rme9652= RME Digi9652 audio interface snd-hdsp= RME Hammerfall DSP snd-sonicvibes= S3 SonicVibes snd-trident= Trident 4DWave DX/NX & SiS SI7018 snd-via82xx= VIA South Bridge VT82C686A/B/C, VT8233A/C, VT8235 snd-ymfpci= Yamaha DS1/DS1E snd-ice1712= ICEnsemble ICE1712 (Envy24)
Notes
After trying all of the steps listed here, my ES-1869 solution was actually rather simple: I went into my BIOS and set the IRQ manually. I had to retry a few times before I figured out the Slot numbering schema, but once I locked the sound card's slot to IRQ 5, the card was detected and works like it should. This also fixed the sound card stuttering problem I had.