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