sodcalculator

10 Tech How-To

How to Fix No Sound in Linux: Step-by-Step

Guide 10-18365 · Updated · Step by step

No sound on Linux is a common frustration, but it’s usually fixable with a few targeted steps. This guide walks you through checking the basics, adjusting system settings, and troubleshooting drivers and services until audio works again. You’ll need a user account with sudo privileges and access to a terminal.

What You’ll Need

  • A Linux desktop or laptop with the sound problem
  • An account with sudo (administrator) rights
  • Speakers or headphones connected and powered on
  • Internet connection (for installing packages if needed)

Step-by-Step

  1. Check physical connections and volume. Make sure speakers are plugged in, powered on, and not muted. Check the volume knob on external speakers and the volume icon in your system tray. In the sound settings, verify the correct output device is selected (e.g., HDMI vs. built-in speakers).
  2. Test with a known-good audio file. Play a song or video that you know works. If you get sound, the problem may be with a specific app. If not, continue.
  3. Restart the sound server. Open a terminal (Ctrl+Alt+T) and run one of these depending on your system:

    For PulseAudio: systemctl --user restart pulseaudio
    For PipeWire (most modern distros): systemctl --user restart pipewire pipewire-pulse
    If that fails, try pulseaudio -k (kills PulseAudio, it will restart automatically).
  4. Check the default output device. Install and use pavucontrol (PulseAudio Volume Control) if not already installed: sudo apt install pavucontrol (Debian/Ubuntu) or sudo dnf install pavucontrol (Fedora). Open it, go to the “Output Devices” tab, and ensure the correct device is set as default (green checkmark). Also check the “Playback” tab to see if the app is muted or routed to the wrong device.
  5. Check alsamixer. Run alsamixer in the terminal. Use the arrow keys to navigate. Look for channels like “Master” and “PCM” – they should not be at zero or have “MM” (muted). Press M to unmute a channel. Press Esc to exit.
  6. Inspect the kernel modules. Run lspci -v | grep -A7 -i audio to see your audio hardware. For Intel HDA, the module is usually snd_hda_intel. Check if it’s loaded: lsmod | grep snd. If not, load it with sudo modprobe snd_hda_intel (replace with your module name).
  7. Check alsa-info and logs. Run dmesg | grep -i audio and journalctl -xe | grep -i audio to look for errors. If you see something like “snd_hda_intel: probe of 0000:00:1f.3 failed with error -16”, it may be a conflict with another driver.
  8. Reinstall or update ALSA and PulseAudio/PipeWire. On Debian/Ubuntu: sudo apt update && sudo apt install --reinstall alsa-base pulseaudio. On Fedora: sudo dnf reinstall alsa-firmware pulseaudio. Reboot afterward.
  9. Add your user to the audio group. Run sudo usermod -a -G audio $USER, then log out and back in. This is often needed on older systems.
  10. Try a different sound server. If PulseAudio is broken, you can switch to PipeWire (or vice versa). Install PipeWire: sudo apt install pipewire pipewire-pulse, then reboot. Or remove PulseAudio and install ALSA-only if your desktop is minimal.
  11. Check for HDMI/DP issues. If you’re using HDMI, the monitor may be the output device. In pavucontrol, set the HDMI/DisplayPort device as the fallback. Also, make sure the monitor’s volume is not muted.
  12. Test with a live USB. As a last resort, boot from a live USB of another Linux distribution. If sound works there, the problem is likely software configuration on your install. If not, it’s a hardware issue.

Common Mistakes

  • Forgetting to unmute the correct channel in alsamixer – “MM” means muted.
  • Selecting the wrong output device in settings (e.g., HDMI when using analog speakers).
  • Not restarting the sound server after making changes – always restart PulseAudio/PipeWire or reboot.
  • Assuming the issue is software when a cable is loose or the speaker is off.
  • Editing configuration files without making a backup – always copy the original.

Tips

  • Use pavucontrol for a graphical view of all audio streams and devices – it’s more reliable than system settings for routing.
  • Keep your system updated – kernel and driver updates often fix audio bugs.
  • If you use a USB headset, try a different USB port (preferably directly on the motherboard).
  • For laptops, check if the audio jack is clean and fully inserted – dust can cause intermittent issues.
  • Bookmark the ALSA wiki and your distro’s forum for specific hardware quirks.

Troubleshooting

If the steps above don’t restore sound, try these additional checks:

  • Check if the sound card is detected. Run aplay -l. If it shows “no soundcards found”, the hardware isn’t detected – try the kernel module steps again, or check if the card is disabled in BIOS.
  • Inspect for driver conflicts. Sometimes the snd_hda_intel module conflicts with the snd_hdmi_lpe_audio module. Blacklist the latter by creating a file /etc/modprobe.d/blacklist.conf with blacklist snd_hdmi_lpe_audio.
  • Try a different kernel. If you recently upgraded and audio broke, boot an older kernel from the GRUB menu. If that works, the new kernel has a regression.
  • Check for firmware issues. Some cards need firmware packages like firmware-sof-signed (Intel) or alsa-firmware. Install them and reboot.
  • Use a systemd service to force reload. Create a service that runs alsactl restore at boot. This can fix saved mixer state issues.
  • If all else fails, seek help on your distro’s forum – include the output of alsa-info.sh (run curl https://www.alsa-project.org/alsa-info.sh | sh) to give experts the full picture.

Frequently Asked Questions

Why does my sound work after reboot but then stops?

This often happens when the sound server crashes or the mixer state is not saved. Try running alsactl store after you get sound working, and check if PulseAudio/PipeWire is crashing by looking at journalctl -xe | grep -i pulse.

I have no sound on HDMI, but speakers work. What can I do?

HDMI audio is a separate output. In pavucontrol, go to “Output Devices” and select the HDMI device as the fallback. Also, ensure your monitor is set to use the HDMI input that carries audio. Some monitors have a mute button on the OSD.

How do I reset all audio settings to default?

You can remove the user config files: rm -rf ~/.config/pulse and rm -rf ~/.config/pipewire, then reboot. This resets the sound server configuration.

My laptop has no sound after suspend/resume. How do I fix this?

This is a common bug. Try running systemctl --user restart pipewire pipewire-pulse after resume. To automate, create a systemd service that runs on resume. Alternatively, disable suspend and use hibernation instead.

Why is my sound crackling or stuttering?

This is often due to buffer underruns. In /etc/pulse/default.pa (or pipewire config), increase the buffer size. For PulseAudio, add load-module module-udev-detect tsched=0 and restart. Also, check CPU load – heavy system load can cause stutter.

Can I use both speakers and headphones at the same time?

Yes, with PulseAudio or PipeWire. Use pavucontrol to set the output sink to “Simultaneous output” (if available) or create a combined sink: pactl load-module module-combine-sink.

Related

General steps for current mainstream versions; menus can differ by device and version. See the disclaimer or report an error.

More in this bed

The whole Tech How-To bed →