ALSA setup instructions for Mandrake 9.0:

ALSA driver modules (0.9rc2) are available by default in Mandrake 9.0, and the Turn-key installer installs all necessary add-ons (libalsa2-dev, alsa-utils), so getting sound from ALSA should be easy, if it has not already been done for you automatically. This guide is for basic configuration. Advanced users should consult the ALSA documentation for more detailed information.

Here are the steps to verify and/or setup ALSA in Mandrake 9.0:

Note: If you are not using the Turn-key package, install the ALSA utilities ("urpmi alsa-utils") and devlopment libraries ("urpmi libalsa2-devel"). The utils RPM includes useful mixers and play/record tools, and the development libs will ensure that apps which build against ALSA will work properly. Both packages are on the Mandrake 9.0 CD's, but are also available on the various mirror sites around the net.

1. The file "/etc/modules.conf" contains instructions to load your system's driver modules at boot time. Sound modules can be configured here. Here is my complete modules.conf for an example system with an RME Hammerfall sound card installed.


# /etc/modules.conf

probeall scsi_hostadapter aic7xxx ide-scsi
alias eth0 eepro100
# alias sound-slot-0 rme96xx
alias sound-slot-0 snd-rme9652
above snd-rme9652 snd-pcm-oss


Notice that there is one line commented out (an "#" precedes it), "# alias sound-slot-0 rme96xx". This line was configured by Mandrake during install, but refers to the older Open Sound System (OSS) driver (rme96xx), and is therefore not desirable. In many cases, this is how Mandrake will configure sound on its own, with the OSS drivers loaded by default.

The two lines below this one were added by me. They refer to the ALSA module for this card which can be discovered on the alsa-project.org's "soundcard matrix". Some modules are under development, but most already offer greater functionality than their OSS counterparts, especially with respect to 'pro-audio' tools for Linux where ALSA drivers are more or less essential.

Once you have found the module for your card, you should model your modules.conf after the one above, replacing "snd-rme9652" with the module name for your card in both places where it occurs. There are also additional "options" available for each card, enabling features specific to your hardware, but this basic configuration will get you up and running. See the "Details" page for you card linked from the ALSA soundcard matrix.

2. Restart ALSA by doing "service alsa restart" as root. You may also need to manually remove the OSS module(s) if it remains loaded (conflicting with the ALSA module). You can do this manually as well with "/sbin/rmmod <<OSS_module_name>". Restart ALSA once more if you needed to do this.

Doing "/sbin/lsmod" to list and verify that the ALSA modules have loaded. In the case of our example system with the Hammerfall, it lists the sound modules:


snd-seq-oss 26176 0 (unused)
snd-seq-midi-event 3208 0 [snd-seq-oss]
snd-seq 33264 2 [snd-seq-oss snd-seq-midi-event]
snd-seq-device 3836 0 [snd-seq-oss snd-seq]
snd-pcm-oss 36932 0
snd-mixer-oss 9016 0 [snd-pcm-oss]
snd-rme9652 15980 0
snd-pcm 55808 0 [snd-pcm-oss snd-rme9652]
snd-timer 9964 0 [snd-seq snd-pcm]
snd-hammerfall-mem 1920 2 [snd-rme9652]
snd 24804 0 [snd-seq-oss snd-seq-midi-event snd-seq snd-seq-device snd-pcm-oss snd-mixer-oss snd-rme9652 snd-pcm snd-timer]
soundcore 3780 0 [snd]

If the modules still fail to load automatically, you can also load them manually with "/sbin/modprobe <modules_name>", in this case "/sbin/modprobe snd-rme9652", then "/sbin/modprobe snd-pcm-oss" to load OSS emulation. The "modprobe" utility should take care of loading any dependent modules (such as snd-pcm, snd-timer, etc) automatically.

3. Create a ".asoundrc" file, and place it in your home directory (as well as the directory of any other users who will be accessing the sound devices on your system). The most basic configuration appears as below, again configured for the RME Hammefall card.


# .asoundrc for RME Hammerfall card
pcm.rme9652 {
type hw
card 0
}
ctl.rme9652 {
type hw
card 0
}


The "pcm.<name>" and "ctl.<name>" must match. This is the ALSA device name you will use when accessing this card with apps like JACK/Ardour.

Note: For multiple cards, you can add another "pcm" and "ctl" block, changing the "card 0" to "card 1", and assigning an appropriate name. There are numerous other advanced options available, so consult the ALSA docs.

So, for example, running JACK with this card and .asoundrc requires:


kevine@orpheus ~$ jackd -R -a -d alsa -d rme9652 -r 44100
jackd 0.40.0
Copyright 2001-2002 Paul Davis and others.
jackd comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details

loading driver ..
creating alsa driver ... rme9652|1024|2|44100|swmon


The "-a" flag refers to "ASIO", and is optional, as are others such as "-H" for harware monitoring. See the JACK documentation for more information.

4. Finally, unmute and bring up the levels for your devices with any mixer. The "alsamixer" is a useful utility, but there are many others available. I like and use gnome-alsamixer (which install in Turn-key) and gamix, but any mixer should do fine.

You should have sound and be ready to make music. Let me know if you have any problems. I can by no means gaurantee that it will be this easy for your particular card, but many have already reported good results.

I would also recommend joining the alsa-user list. There are a lot of knowledgable people who can help you with the specifics for you card.