Please take a look at the FAQ file in the sound driver directory. This section is still under construction.
Please check the following items.
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
.
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.
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.
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).
Are you sure that your card is active? Take another look at the PnP-HOWTO, and check if you activated your sound card correctly.
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).
It can always be useful to start with "insmod" instead of kerneld. Maybe you actually see the error on screen.
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.
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 these messages doesn't help you, send a message to the Alsa developers mailing list, alsa-devel@alsa.jcu.cz. Include the following information:
If you found a bug, the Alsa developers would like to know the following things (at minimum)
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.
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.
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)
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/.
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).