Next Previous Contents

6. Tips and Troubleshooting

Please take a look at the FAQ file in the sound driver directory. This section is still under construction.

6.1 Troubleshooting: activation of the driver

Please check the following items.

Linux kernel sourcetree

If your Alsa drivers do not compile correctly, and tell you things about ``version.h'' or other header-files that cannot be found, this can mean that you do not have the kernel header files. Take a look at the kernel-HOWTO, unpack a recent kernel in /usr/src and issue a make config.

OSS/Linux compatibility

If you want to use sound exactly as you did before (i.e. use the /dev/pcmX devices), then you need the ``OSS compatibility driver''. Do a modprobe snd-pcm1-oss. (See the end of the section about loading the driver). Please note: snd-pcm1-oss is not equal to snd-pcm1, you _need_ snd-pcm1-oss for old-fashioned sound support.

Sound card compatibility

Are you 100% sure that your sound card IS supported? Do check it again. Sometimes an X123 is not exactly an X123b and you might be waisting time. On the other hand, even a supported card can give you troubles - it took me two hours to figure out the installation of a CS4237B, which was, after all, just a fine example of RTFM.

OSS/Lite or kernel-driver

You might have a kernel with sound support compiled in, or the OSS/Lite (kernel) sound driver could be loaded (check with cat /proc/modules). Remove the driver, or recompile the kernel (have a look at the Kernel-HOWTO).

I will say this again, since it is the cause of many troubles: you should NOT have sound support compiled into the kernel, and you should NOT have a ``sound.o'' module active. (The Alsa ``snd.o'' is OK, though).

Check the PnP setup

Are you sure that your card is active? Take another look at the PnP-HOWTO, and check if you activated your sound card correctly.

Are your parameters right?

Check, doublecheck your sound card parameters. And please note: 534 is not 543, nor is 0x534 the same as 534.

Also, some sound cards must be loaded by a different name than might be expected. Take a break, a beer or whatever, and look again at your ``modprobe'' command. For example, the Crystal 4232 driver should be inserted by modprobe snd-card-cs4232, not ``snd-cs4231'', and the SoundBlaster PCI 64 should be loaded with ``snd-audiopci'', not snd-es1370. (It's all in the docs, and even though I wrote the HOWTO, I once spent an evening trying to persuade snd-cs4231 to make sound).

Try using ``insmod''

It can always be useful to start with "insmod" instead of kerneld. Maybe you actually see the error on screen.

Read the INSTALL file.

A lot of information can be found in the INSTALL file in the drivers directory. If your driver won't work, check if there is additional information available.

Debug messages

As a last resort, you can rebuild the driver and tell it to send debug information to /var/log/messages. Go to the driver-directory with cd /usr/src/alsa-driver-.... and type:

./configure --with-debug=detect; make clean; make

Remove the driver (as far as it is active, see below for a general remove statement). Then use the "modprobe" statement you used before to insert the newly compiled driver. Look in /var/log/messages if there are any messages.

If all else fails...

If these messages doesn't help you, send a message to the Alsa developers mailing list, alsa-devel@alsa.jcu.cz. Include the following information:

6.2 Bug reports

If you found a bug, the Alsa developers would like to know the following things (at minimum)

  1. driver + kernel version: 'cat /proc/asound/version'
  2. soundcard info
  3. all messages from /var/log/messages which should be relevant to ALSA driver
  4. problem description

6.3 Tip: playing CD's

If you use kmod/kerneld and the Alsa drivers to play CD's, then kmod/kerneld probably do not load the drivers as expected. This is due to the fact that a command line CD player only tells the CD player to start playing, without using any of the devices that tell kmod/kerneld that there is sound to occur. Using modprobe may be your only solution to this problem.

6.4 Tip: new kernel? New modules!

After you upgrade your kernel, you probably need to recompile the Alsa drivers. If they are still in the original /usr/src directory, then please do not forget to issue a make clean before you do the ./configure, make, make install thing.

Oh, and then there is this anomaly in kernel numbering: a ``2.2.0ac1'' kernel that is ``not a number'' - says the configure script. I think this was resolved in newer scripts, otherwise you should maybe change the kernel version in the source.

6.5 Tip: KDE and Alsa drivers

Suppose you have KDE up and running, but you cannot get system sounds to work, like for opening windows, changing desktops, etc. Sound works in general. If your cd player and mp3 player and mixer all do work, then it's probably just "kwmsound" that's lacking.

So: make sure "kwmsound" is in your startscript ($KDEDIR/bin/startkde)

6.6 Tip: use the Alsa devices

If you had sound support in your Linux before, then your applications will probably all point to /dev/pcm0, /dev/audio and /dev/mixer. This is fine, if you use OSS compatibility with the snd-pcm1-oss module. It might be better, however, to use the real Alsa devices, those found in /dev/snd/.

6.7 Tip: removing all modules

Removing 10+ modules one by one is not the way to go. Luckily, all modules start with the "snd-" prefix, so a little command line programming will do. You can easily remove Alsa sound by issuing a command like:

cat /proc/modules|gawk '/^snd-/{print $1}|xargs -i rmmod {}

Please note: if some module is dependent on another module, you cannot just remove the "higher" one. This means that you might need to issue a second removal statement. (I never encountered this situation though, it seems that you can remove the Alsa modules in the order they appear in /proc/modules).


Next Previous Contents