Welcome to the Slackware Documentation Project

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

the alsaequal plugin is not part of Slackware. You can build it from source using slackbuilds.org

Output can either be from the audio device or 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 and does not have to be entered)

Should you wish to play from more than one application simultaneously via the mixer (dmix), 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.


In Other Languages
Translations of this page?:
QR Code
QR Code howtos:hardware:sound_problems_on_slackware (generated for current page)