There are two ways to use the ALSA-sound-modules. I personally prefer using the manual method, meaning that I insert the driver at startup. The ALSA-drivers were designed as loadable/unloadable modules - for instance they do not reset the mixer after loading - so you can easily use the kerneld approach.
Please do read the section Backwards Compatibility. You need it to have sound support ``the old way''.
Note: If you have a PnP audio-card, you first need to set it to the right (or at least some known) IO/IRQ/DMA. See the Plug-and-Play-HOWTO. Did you configure your Plug-and-Play-soundcard? Ok, then read on please. The main part is: do a "modprobe snd-card-<soundcard>". This should do the trick. Please note that not all distributions do include /sbin in your path. If you get a "bash: modprobe: command not found", this will most likely mean that modprobe is not in your path. Try ``/sbin/modprobe snd-card-sb16'', or try to find the modprobe utility elsewhere.
The most important difficulty is with the Crystal chipsets, for these the ALSA-drivers are not auto probing. More recent information may be acquired from the INSTALL file in the driver-directory. Two examples, then a list: Gravis UltraSound (GUS) and compatibles:
For all 16-bit Soundblaster-cards (SoundBlaster 16 (PnP), SoundBlaster AWE 32 (PnP), SoundBlaster AWE 64 (PnP):
/sbin/modprobe snd-card-gusclassic
However, if you have a 0.3.0-pre4 package, the GUS Classic driver is called ``snd-gusclassic'' and the SoundBlaster 16 module is called ``snd-sb16'' (so, without the ``card'' part).
/sbin/modprobe snd-card-sb16
Please note that ALSA versions before 0.4.x sometimes had different names. You need to leave out the ``card'' part for those drivers. This is indicated by an asterisk (*).
modprobe snd-card-gusextreme
modprobe snd-card-gusmax
ESS AudioDrive ES-1688 and ES-688 soundcards
modprobe snd-card-audiodrive1688
ESS AudioDrive ES-18xx based soundcards
modprobe snd-card-audiodrive18xx
Gravis UltraSound PnP, Dynasonic 3-D/Pro, STB Sound Rage 32, ExpertColor MED3201 and other soundcards based on AMD InterWave™ chip.
modprobe snd-card-interwave
UltraSound 32-Pro (soundcard from STB used by Compaq) and other soundcards based on AMD InterWave (tm) chip with TEA6330T circuit for extended control of bass, treble and master volume
modprobe snd-card-interwave-stb
8-bit Soundblaster cards (SoundBlaster 1.0, SoundBlaster 2.0, SoundBlaster Pro)
modprobe snd-card-sb8
16-bit SoundBlaster cards (SoundBlaster 16 (PnP), SoundBlaster AWE 32 (PnP), SoundBlaster AWE 64 (PnP). Please note: this module does not support the SoundBlaster VibraX16 soundcard.
modprobe snd-card-sb16
modprobe snd-mozart
Various sound cards that use the OPTi 82C9xx chipset, like Audio 16 Pro EPC-SOUN9301 (82C930 based), ExpertColor MED-3931 v2.0 (82C931 based), ExpertMedia Sound 16 MED-1600 (82C928 based - AD1848), Mozart S601206-G (OPTI601 based - CS4231) and Sound Player S-928
modprobe snd-card-opti9xx
modprobe snd-card-ad1848
Just "modprobe snd-opl3sa" will not work, this driver does not do autoprobing. See below.
S3 SonicVibes PCI soundcards. (PINE Schubert 32 PCI)
modprobe snd-card-sonicvibes
Ensoniq AudioPCI ES1370/1371 PCI soundcards. (SoundBlaster PCI 64)
modprobe snd-card-audiopci
Just ``modprobe snd-card-cs4231'' will not work, no auto-probing. See below.
All soundcards based on CS4232/CS4232A chips. Just "modprobe snd-card-cs4232" will not work, no auto-probing. See below.
All soundcards based on CS4235/CS4236/CS4236B/CS4237B/CS4238B/CS4239 chips. Just "modprobe snd-card-cs4236" will not work, no auto-probing. See below.
modprobe snd-card-cs461x
ESS Solo-1, 128iPCI card (es1938, ESS-SOLO-1). Jonas Lofwander sent me a link to a document that will help you installing this card - which is, basically, nothing more than modprobe snd-card-esssolo1
... but http://dice.shopcenter.nu/alsa/ can be of help. If you have an IBM Thinkpad 1412 you can also refer to http://www.geocities.com/SiliconValley/Peaks/3649/1412.html, thanks to Kumar Sankaran.
Best Union Miss Melody 4DWave PCI, HIS 4DWave PCI, Warpspeed ONSpeed 4DWave PCI, AzTech PCI 64-Q3D, Addonics SV 750, CHIC True Sound 4Dwave, Shark Predator4D-PCI, Jaton SonicWave 4D.
modprobe snd-card-trident
These are PCI cards based on the FM801 chip.
modprobe snd-card-fm801
(*) For ALSA version 0.3.0-pre4, you need to leave out the ``card-'' part in most (not all!) of the drivernames. So ``snd-card-sb16'' becomes ``snd-sb16'', however, ``snd-card-cs4232'' remains ``snd-card-cs4232'' (modprobe snd-cs4232 will do something, but it will not produce any sound!)
(**) In older ALSA versions this driver was called ``snd-card-trid4wave'' and ``snd-trid4wave''.
If you have a non-autoprobing driver, you need to supply additional info at startup to have the driver work. More information can be found in the file INSTALL in the driver directory.
According to the INSTALL file you need to supply all the information for this driver. If you initialized the card with the isapnp-tools, you can probably get info from the /etc/isapnp.conf file for the following values:
You would do a "modprobe snd-card-opl3sa snd_port=0xNNN snd_wss_port=0x530 snd_midi_port=-1 snd_fm_port=0x388 snd_irq=5 snd_dma1=0 snd_dma1_size=NN snd_dma2=1 snd_dma2_size=NN" to load this driver (without midi-support. I am still convinced that midi-support is the thing you need when you have synthesizers and stuff and want to connect them to your Linux box. Never needed Midi-support even to play midi-files.)
snd_port - control port # for OPL3-SA chip snd_wss_port - WSS port # for OPL3-SA chip (0x530,0xe80,0xf40,0x604) snd_midi_port - port # for MPU-401 UART (0x300,0x330), -1 = disable snd_fm_port - FM port # for OPL3-SA chip (0x388), -1 = disable snd_irq - IRQ # for OPL3-SA chip (5,7,9,10) snd_dma1 - first DMA # for Yamaha OPL3-SA chip (0,1,3) snd_dma1_size - max first DMA size in kB (4-64kB) snd_dma2 - second DMA # for Yamaha OPL3-SA chip (0,1,3), -1 = disable snd_dma2_size - max second DMA size in kB (4-64kB)
Note that the "NN" values need to be supplied, only I do not know what would be reasonable values. I do not know if the dma size option is really required.
If you happen to have an IBM Thinkpad with this chipset, then http://www.cirs.org/patrick/index.html might be of help.
If you use the driver from 0.3.0-pre4, then leave out the ``card-'' part in the name.
According to the INSTALL file you need to supply the main port for this card. Note that with the driver for 3235/6/7/8/9 cards, the one below, I ended up supplying all information (except DMA-size), otherwise the driver did not work. So you may as well use the whole command line to insert the driver. If you initialized the card with the isapnp-tools, you can probably get info from the /etc/isapnp.conf file for the following values:
You would do a "modprobe snd-card-cs4231 snd_port=0x534 snd_mpu_port=-1 snd_irq=5 snd_dma1=0 snd_dma1_size=NN snd_dma2=1 snd_dma2_size=NN" to load the driver for a "standard configured" soundcard. (Without midi-support, see the note at Yamaha OPL-3). If you used different values in /etc/isapnp.conf, then you would use the values here also (Note: it can be wise to use your brains anyway ;)
snd_port - port # for CS4232 chip (PnP setup - 0x534) snd_mpu_port - port # for MPU-401 UART (PnP setup - 0x300), -1 = disable snd_irq - IRQ # for CS4232 chip (5,7,9,11,12,15) snd_mpu_irq - IRQ # for MPU-401 UART (9,11,12,15) snd_dma1 - first DMA # for CS4232 chip (0,1,3) snd_dma1_size - max first DMA size in kB (4-64kB) snd_dma2 - second DMA # for Yamaha CS4232 chip (0,1,3), -1 = disable snd_dma2_size - max second DMA size in kB (4-64kB)
Note that the "NN" values need to be supplied, only I do not know what would be reasonable values. I do not know if the dma size option is really required.
According to the INSTALL file you need to supply the main port for this card. Note that with the driver for 3235/6/7/8/9 cards, the one below, I ended up supplying all information (except DMA-size), otherwise the driver did not work. So you may as well use the whole command line to insert the driver. If you initialized the card with the isapnp-tools, you can probably get info from the /etc/isapnp.conf file for the following values:
You would do a "modprobe snd-card-cs4232 snd_port=0x534 snd_cport=0x120 snd_mpu_port=-1 snd_fm_port=0x388 snd_jport=-1 snd_irq=5 snd_dma1=0 snd_dma1_size=NN snd_dma2=1 snd_dma2_size=NN" to load the driver for a "standard configured" soundcard. (Without midi-support, see the note at Yamaha OPL-3, and no joystick support). If you used different values in /etc/isapnp.conf, then you would use the values here also (Note: it can be wise to use your brains anyway ;)
snd_port - port # for CS4232 chip (PnP setup - 0x534) snd_cport - control port # for CS4232 chip (PnP setup - 0x120) snd_mpu_port - port # for MPU-401 UART (PnP setup - 0x300), -1 = disable snd_fm_port - FM port # for CS4232 chip (PnP setup - 0x388), -1 = disable snd_jport - joystick port for CS4232 chip (PnP setup - 0x200), -1 = disable snd_irq - IRQ # for CS4232 chip (5,7,9,11,12,15) snd_mpu_irq - IRQ # for MPU-401 UART (9,11,12,15) snd_dma1 - first DMA # for CS4232 chip (0,1,3) snd_dma1_size - max first DMA size in kB (4-64kB) snd_dma2 - second DMA # for Yamaha CS4232 chip (0,1,3), -1 = disable snd_dma2_size - max second DMA size in kB (4-64kB)
Note that the "NN" values need to be supplied, only I do not know what would be reasonable values. I do not know if the dma size option is really required.
According to the INSTALL file you need to supply the main port and control ports for this card. Note that with a CS4237B card, I ended up supplying all information (except DMA-size), otherwise the driver did not work. So you may as well use the whole command line to insert the driver, and not only supply snd_port and snd_cport. If you initialized the card with the isapnp-tools, you can probably get info from the /etc/isapnp.conf file for the following values:
You would do a "modprobe snd-card-cs4236 snd_port=0x534 snd_cport=0x120 snd_mpu_port=-1 snd_fm_port=0x388 snd_jport=-1 snd_irq=5 snd_dma1=0 snd_dma1_size=NN snd_dma2=1 snd_dma2_size=NN" to load the driver. (Without midi-support, see the note at Yamaha OPL-3, and no joystick support). Notes:
snd_port - port # for CS4232 chip (PnP setup - 0x534) snd_cport - control port # for CS4232 chip (PnP setup - 0x120) snd_mpu_port - port # for MPU-401 UART (PnP setup - 0x300), -1 = disable snd_fm_port - FM port # for CS4232 chip (PnP setup - 0x388), -1 = disable snd_jport - joystick port for CS4232 chip (PnP setup - 0x200), -1 = disable snd_irq - IRQ # for CS4232 chip (5,7,9,11,12,15) snd_mpu_irq - IRQ # for MPU-401 UART (9,11,12,15) snd_dma1 - first DMA # for CS4232 chip (0,1,3) snd_dma1_size - max first DMA size in kB (4-64kB) snd_dma2 - second DMA # for Yamaha CS4232 chip (0,1,3), -1 = disable snd_dma2_size - max second DMA size in kB (4-64kB)
kerneld
is a daemon that inserts modules on request, and unloads them once they are not in use anymore. Since I have no experience with kerneld, I do not know if the information below is accurate. The info comes from the INSTALL file in the ALSA-drivers package. Excellent information about kerneld can be found in the kerneld-mini-HOWTO.
Follow these steps:
Example if you want use more soundcards in one machine (configuration below is for Sound Blaster 16 and Gravis UltraSound Classic):
alias char-major-14 snd alias snd-minor-oss-0 snd-interwave alias snd-minor-oss-3 snd-pcm1-oss alias snd-minor-oss-4 snd-pcm1-oss alias snd-minor-oss-5 snd-pcm1-oss alias snd-minor-oss-12 snd-pcm1-oss alias snd-card-0 snd-interwave options snd snd_major=14 snd_cards_limit=1 options snd-interwave snd_index=1 snd_id="guspnp" snd_port=0x220 snd_irq=5 snd_dma1=5 snd_dma2=6
Example if two Gravis UltraSound Classic soundcards are present in system:
alias char-major-14 snd alias snd-minor-oss-0 snd-mixer alias snd-minor-oss-3 snd-pcm1-oss alias snd-minor-oss-4 snd-pcm1-oss alias snd-minor-oss-5 snd-pcm1-oss alias snd-minor-oss-12 snd-pcm1-oss alias snd-card-0 snd-sb16 alias snd-card-1 snd-gusclassic options snd snd_major=14 snd_cards_limit=2 options snd-sb16 snd_index=1 snd_port=0x220 snd_irq=5 snd_dma8=1 snd_dma16=5 options snd-gusclassic snd_index=2 snd_irq=11 snd_dma1=6 snd_dma2=7
alias char-major-14 snd alias snd-minor-oss-0 snd-mixer alias snd-minor-oss-3 snd-pcm1-oss alias snd-minor-oss-4 snd-pcm1-oss alias snd-minor-oss-5 snd-pcm1-oss alias snd-minor-oss-12 snd-pcm1-oss alias snd-card-0 snd-gusclassic alias snd-card-1 snd-gusclassic options snd snd_major=14 snd_cards_limit=2 options snd-gusclassic snd_index=1,2 snd_port=0x220,0x260 snd_irq=5,11 snd_dma1=5,6 snd_dma2=7,3
If you want to preserve OSS/Free or OSS/Linux compatibility, you need to insert one more driver: the snd-pcm1-oss driver for OSS-compatibility. Issue a
This will give you /dev/audio and /dev/dsp-support, just as the OSS/Free (kernel) drivers and OSS/Linux (the $25 ones) do. Note that this is only an emulation.
modprobe snd-pcm1-oss