How to fix Debian/Slax Linux playing no sound on laptops

I encountered this issue while trying to boot a Slax Linux ( image on a laptop. I’ve read that this issue sometimes occurs on Debian as well, which is plausible since Slax is based off Debian now. I haven’t tested the fix on Debian yet, but it should work in theory since they’re related.

The issue in itself is the user not being able to play audio and encountering errors like these:

VLC fails to play audio
ALSA Basic Audio Test fails
speaker-test fails










There are multiple ways to fix this problem, some more simpler than the other. The crux of the matter is Linux detecting multiple audio devices and using one that’s not actually in use (example: using the missing HDMI audio output as default instead of the usuable analog). We fix it by changing the default audio card.

Method 1: setting the ALSA configuration file at /etc/asound.conf or ~/.asoundrc

ALSA stands for Advanced Linux Sound Architecture, the framework that connects the Linux kernel with sound card drivers. We need to configure ALSA so that it uses the correct sound card for audio playback.

The /etc/ directory is used to hold configuration files. Our ALSA config file needs to be named asound.conf. We need to find the id numbers of our connected sound cards and create the asound.conf configuration file to set our desired device as the default. From the ALSA project wiki [ and], we can see the ids of the connected sound cards with the command:

cat /proc/asound/cards

cat /proc/asound/cards

We can also list all sound cards with aplay -l

aplay -l

We can then use any text editor to make the asound.conf config file and put the following text in it:

pcm.!default {
type hw
card 1
ctl.!default {
type hw
card 1


defaults.pcm.card 1
defaults.ctl.card 1
Editing asound.conf

I’m using the id 1 to set the Intel PCH analog sound card as the default instead of the HDMI card which clearly doesn’t work since it’s not connected to an HDMI output. Replace 1 with the id of whichever card you want to use. Save the file and exit. The audio should start working now.

Alternatively, instead of making /etc/asound.conf you can create .asoundrc in your home directory instead. This is useful if only want to make changes for your own user and not system-wide (which is what happens with asound.conf).

Method 2: Using PulseAudio

PulseAudio is a sound server that works with ALSA and routes audio streams. It comes pre-installed with most Linux distributions and desktop environments. However, Slax itself doesn’t come with PulseAudio. We’ll need an internet connection to download PulseAudio on Slax. Use apt to install it:

apt-get install pulseaudio

[use sudo apt-get install pulseaudio if you’re not root/superuser]

Start the PulseAudio server with the command:

pulseaudio --start

Now, use the pactl command to set the correct sound card as the audio source for PulseAudio. The PulseAudio server system uses sinks to get and play audio from sound sources

pactl list short sinks       #list all sinks
pactl list short sources     #list all sources
pactl set-default-sink 0     #set default sink, replace 0 with your desired sink id
pactl set-default-source 1   #set default source, replace 1 with your desired source id
Match the correct sound sink to sound source with pactl

You can also alternatively use pacmd for an interactive shell to configure PulseAudio. The commands are essentially the same.

2 thoughts on “How to fix Debian/Slax Linux playing no sound on laptops

  1. I’m running Slax 9.11 and installed pulseaudio. Remember Slax boots as root. But it doesn’t run pulseaudio deamon on start, or it fails to run.
    trying to run pavucontrol only returns a “establishing connection to pulseaudio server” and nothing happens

    when running on terminal as root it says PA isn’t meant to be run as root
    but it also doesn’t start any daemon visible in task manager

    when doing pulseaudio –start as root it does start a daemon inside task man, but when executing pavucontrol it terminates pulseaudio’s daemon

    when running as non root user (anto) on terminal
    anto@slax:/root$ pulseaudio
    E: [pulseaudio] core-util.c: XDG_RUNTIME_DIR (/run/user/0) is not owned by us (uid 1001), but by uid 0! (This could e g happen if you try to connect to a non-root PulseAudio as a root user, over the native protocol. Don’t do that.)

    the last time i tried it said
    root@slax:~# pulseaudio
    W: [pulseaudio] main.c: This program is not intended to be run as root (unless –system is specified).
    W: [pulseaudio] pid.c: Stale PID file, overwriting.
    E: [alsa-sink-emu10k1] alsa-sink.c: ALSA woke us up to write new data to the device, but there was actually nothing to write.
    E: [alsa-sink-emu10k1] alsa-sink.c: Most likely this is a bug in the ALSA driver ‘snd_emu10k1’. Please report this issue to the ALSA developers.
    E: [alsa-sink-emu10k1] alsa-sink.c: We were woken up with POLLOUT set — however a subsequent snd_pcm_avail() returned 0 or another value < min_avail.

    but that was just one time
    snd-emu10k1 is the sound blaster live emu10k1 driver module of ALSA

  2. Also, i forgott to mention ALSA work fine for me, i have total control of audio device. Thing is i believe i need pulseaudio working because webex meeting web app doesn’t connect to my computer audio. I believe pulseaudio will fix that issue for me

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s