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
- 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).
- 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.
- 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, trypulseaudio -k(kills PulseAudio, it will restart automatically). - Check the default output device. Install and use
pavucontrol(PulseAudio Volume Control) if not already installed:sudo apt install pavucontrol(Debian/Ubuntu) orsudo 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. - Check alsamixer. Run
alsamixerin 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). PressMto unmute a channel. PressEscto exit. - Inspect the kernel modules. Run
lspci -v | grep -A7 -i audioto see your audio hardware. For Intel HDA, the module is usuallysnd_hda_intel. Check if it’s loaded:lsmod | grep snd. If not, load it withsudo modprobe snd_hda_intel(replace with your module name). - Check alsa-info and logs. Run
dmesg | grep -i audioandjournalctl -xe | grep -i audioto 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. - 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. - 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. - 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. - 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.
- 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
pavucontrolfor 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_intelmodule conflicts with thesnd_hdmi_lpe_audiomodule. Blacklist the latter by creating a file/etc/modprobe.d/blacklist.confwithblacklist 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) oralsa-firmware. Install them and reboot. - Use a systemd service to force reload. Create a service that runs
alsactl restoreat 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(runcurl 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
- Gmail Gemini Privacy: Data Access & Limit Settings
- Fix Outlook Inbox Corruption with DISM in Windows
- How to Set Up Apple Pay on iPhone
- How to Choose a Refurbished iPhone With Years of Support
- Voice Dictation in Google Docs: How to Use It
- Turn Off Message Notifications on Mac