Wiki Table of Contents

Sound not working


On this page:


Tips and tricks

  • It is sometimes necessary after installation or upgrading to open a terminal, become root, and type:
alsactl store

Notes: alsactl is part of alsa-utils, which is not installed by default.

  • Try opening a terminal and becoming root, then typing:
dpkg-reconfigure alsa-base
  • Make sure sound is operating: right-click the speaker icon in the Notification Area and make sure the mixer is set up correctly. Open MX Tools > Sound card, and test the card you are using.
  • For snd-hda-intel systems try opening up your text editor as root and commenting out the first line (if that doesn’t work, try commenting out the second line instead if it is not already) in etc/modprobe.d/snd-hda-intel.conf.
  • In the second line of that same file, try adding your specific machine model, for instance:
Options snd-hda-intel model=lenovo

Or try putting in the name of your sound card, for instance

Options snd-hda-intel model=Realtek ALC888

You can get your card model by entering in a terminal:

inxi -A
  • Unless you have just upgraded kernel version–i.e. just done a major system upgrade, perhaps on a fresh install, in which case you should reboot to new kernel version before worrying about sound module–if you have lost sound, and it isn’t simply a volume level/mute issue, you should try as root:
alsa reload

instead of using alsaconfig, as it is most likely that the alsa modules have simply become unloaded rather than unconfigured.

  • If only root has sound, use MX User Manager to make sure that the regular user is included in the sound group.
  • If sound is not loud enough at 100%, install pasystray which sits in the Notification Area and allows you to go past 100%
  • If you are having problems with HDMI sound, follow these steps:
    • Right-click the sound icon in the panel > Open Mixer > Configuration
    • Click on the Profile pull-down menu and select one of the HDMI options that works for you.
    • Reverse the procedure when you are not using HDMI.
  • For automatic switching to HDMI when connected, consult this GitHub script.
  • If your sound seems to go up and down when changing sources, consult this solution.

Software Sound Mixing

Solution One

One of the biggest complaints heard about Linux’s sound system is its inability to play multiple sounds at once. The reason for this is the software expects your hardware to do the mixing for you. However, only expensive cards do this. If you put the file below into your home folder as the file .asoundrc it will tell the software to do the mixing. However, some applications are known to ignore this

To create the file, copy and paste this text into a terminal as normal user:

cat > ~/.asoundrc << "EOF"
pcm.my_card {
  type hw
  card 0
  # mmap_emulation true
}

pcm.dmixed {
  type dmix
  ipc_key 1024
  slave {
    pcm "my_card"
    # rate 48000
    # period_size 512
  }
}

pcm.dsnooped {
  type dsnoop
  ipc_key 2048
  slave {
    pcm "my_card"
    # rate 48000
    # period_size 128
  }
}

pcm.asymed {
  type asym
  playback.pcm "dmixed"
  capture.pcm "dsnooped"
}

pcm.pasymed {
  type plug
  slave.pcm "asymed"
}

pcm.dsp0 {
  type plug
  slave.pcm "asymed"
}

pcm.!default {
  type plug
  slave.pcm "asymed"
}
EOF

Solution Two

If the above file does not work, you can try configuration, which is known to work with Intel HDA on-board audio chips.

To create the file, copy and paste this text into a terminal as normal user:

cat > ~/.asoundrc << "EOF"
pcm.CARD_0 {
  type hw
  card 0
}

ctl.CARD_0 {
  type hw
  card 0
}
EOF

Duplicate output on multiple cards

If you have two sound cards, for example an USB sound device and an analog Intel card, here’s an example of .asoundrc file that will help you sending the output to both cards at the same time (modify the .asoundrc config file as needed for your hardware). You can find more details on ALSA project page].

To create the file, copy and paste this text into a termiunal as normal user:

cat > ~/.asoundrc << "EOF"
pcm.!default plug:both

ctl.!default {
  type hw
  card "Audio"
}

pcm.both {
  type route;
  slave.pcm {
    type multi;
    slaves.a.pcm "intel";
    slaves.b.pcm "usb";
    slaves.a.channels 2;
    slaves.b.channels 2;
    bindings.0.slave a;
    bindings.0.channel 0;
    bindings.1.slave a;
    bindings.1.channel 1;

    bindings.2.slave b;
    bindings.2.channel 0;
    bindings.3.slave b;
    bindings.3.channel 1;
  }

  ttable.0.0 1;
  ttable.1.1 1;

  ttable.0.2 1;
  ttable.1.3 1;
}

ctl.both {
  type hw;
  card "Audio";
}
pcm.usb {
  type dmix
  ipc_key 1024
  slave {
    pcm "hw:1"
    period_time 0
    period_size 2048
    buffer_size 65536
    buffer_time 0
    periods 128
    rate 48000
    channels 2
  }
  bindings {
   0 0
   1 1
  }
}

ctl.usb {
  type hw
  card "USB Audio"
}

pcm.intel {
  type dmix
  ipc_key 2048
  slave {
    pcm "hw:0"
    period_time 0
    period_size 2048
    buffer_size 65536
    buffer_time 0
    periods 128
    rate 48000
    channels 2
  }
  bindings {
    0 0
    1 1
  }
}

ctl.intel {
  type hw
  card "Intel Audio"
}
EOF

Leave a Comment

Do NOT follow this link or you will be banned from the site!