This is an old revision of the document!
NOTE: on my systems, my default card is 1 and default device is 0 so I will use 1,0 through out this page
Sound Problems on Slackware
Investigate the problem
1) See which kernel modules are loaded:
lsmod | grep snd
Use this information along with your motherboard sound chipset to verify that the correct sound drivers are loading.
2) See which sound devices are detected by alsa:
aplay -l
Most likely, alsa is loading the correct modules but setting the wrong sound device as default.
3) Test sound devices to see which one(s) work:
alsamixer 0 <F6> <select a card(s)> <adjust volumes and make sure they aren't muted> <ESC> aplay -D plughw:0,0 test.wav (WHERE 0,0 is card/slot 0, device 0 and test.wav is a sound file e.g. /usr/share/sounds/alsa/Noise.wav) aplay -D plughw:0,1 test.wav aplay -D plughw:1,0 test.wav aplay -D plughw:1,1 test.wav
PROBLEM: alsa is setting the wrong device as the default sound; you can force the correct default as follows:
FIX: Create /etc/asound.conf and add an entry for the working card/slot and device:
defaults.pcm.card 1 defaults.pcm.device 0 defaults.ctl.card 1
-or-
pcm.!default { type hw card 1 device 0 } ctl.!default { type hw card 1 }
OR, if you just want the changes for a single user create ~/.asoundrc in the user's home directory and put the above in it…
PROBLEM: Volume is low even with all controls at max.
FIX: Enable the alsa pre-amp.
1) Edit/Create /etc/asound.conf and add
pcm.!default { type plug slave.pcm "softvol" } pcm.softvol { type softvol slave { pcm "dmix:1,0" } control { name "Pre-Amp" card 1 } min_dB -5.0 max_dB 20.0 resolution 6 }
WHERE: “dmix:1,0” is card 1 and device 0
2) Reboot
3) After you reboot a PREAMP control is supposed to appear in your mixer controls but, it doesn't due to a quirk. To get it to appear, open and close a media player (mplayer, dragon player or etc.). After you do this, it should appear in the mixer (you may have to SELECT CONTROLS to see it). When you reboot, it will disappear again until you open a media player. To make it 'stick', set your alsa volumes to where you want and run “alsactl store”. The PREAMP controls should appear normally after that.
PROBLEM: No equalizer.
FIX: Enable the equalizer [N.B. the alsaequal plugin may have to be obtained separately].
Output from the EQ can either go direct to the audio device or to the mixer. For the device use the following:
1) Edit/Create /etc/asound.conf and add
ctl.equal { type equal; } pcm.plugequal { type equal; slave.pcm "plughw:1,0"; } pcm.!default { type plug; slave.pcm plugequal; }
WHERE: “plughw:1,0” is card 1 and device 0 - modify this for a different card or device [default is 0,0]
Should you wish to play more than one source simultaneously and stream to the mixer, use the below:
ctl.equal { type equal; } pcm.plugequal { type equal; slave.pcm "plug:dmix"; } pcm.!default { type plug; slave.pcm plugequal; }
To access the equalizer, run “alsamixer -D equal”
Sources
AlienBOB's webpages and ALOT of Googling.