Fixing GNOME’s broken audio output after an ALSA upgrade

GNOME audio stops after an ALSA upgrade – how to diagnose and fix

When a distro bumps the ALSA stack, the first thing that usually goes wrong is the desktop audio. In GNOME you’ll see “no audio” or a muted‑looking volume slider that actually reports a non‑zero level. The root cause is a mismatch between the kernel‑level ALSA driver and the user‑space libraries that PipeWire (the default audio server in GNOME 45+) talks to. Below is a practical, step‑by‑step walk‑through that covers the most common culprits, how to confirm them, and how to fix the issue without rolling back the whole upgrade.


1. What the upgrade actually changed

The ALSA upgrade in 2026 moved from 1.2.x to 2.0.0. That change brought a new API surface, a new set of kernel modules, and a stricter permission model for device nodes. Most distros ship the new kernel modules but keep the old user‑space libraries for backward compatibility. If you had a custom alsa-lib build or a patched pipewire that still expects the old API, the two will clash.

Component Old version New version Impact
Kernel ALSA driver 1.2.x 2.0.0 New module names, new snd_* symbols
alsa-lib 1.2.x 2.0.0 API changes, new snd_pcm_* calls
pipewire 0.3.x 0.4.x Requires ALSA 2.0 for full support
udev rules /etc/udev/rules.d/ /usr/lib/udev/rules.d/ Permissions on /dev/snd/*

If your system still has an old alsa-lib or an older pipewire binary, the mismatch will show up as “no audio” in GNOME.


2. Quick sanity checks

Before diving into deep debugging, run these inexpensive checks. They often point straight to the culprit.

# 1. Verify the kernel module is loaded
lsmod | grep snd

# 2. List the ALSA cards
cat /proc/asound/cards

# 3. Check the ALSA library version
pacman -Qi alsa-lib          # Arch
dpkg -l | grep alsa-lib      # Debian/Ubuntu
rpm -qa | grep alsa-lib      # RHEL/Fedora

# 4. Verify PipeWire is running
systemctl --user status pipewire

# 5. Check the journal for ALSA errors
journalctl -b -u pipewire | grep -i snd

If lsmod shows no snd_* modules, the kernel driver is missing. If cat /proc/asound/cards returns nothing, the driver is loaded but not recognized. If alsa-lib is still 1.2.x, you have a library mismatch.


3. Common root causes

Symptom Likely cause Fix
No audio at all Kernel module not loaded modprobe snd-hda-intel
“No sound” in PipeWire logs alsa-lib < 2.0 Upgrade alsa-lib
Permissions on /dev/snd/* Wrong udev rule Re‑apply default rules
PipeWire fails to start Old PipeWire binary Upgrade to 0.4.x
Audio works in a terminal app but not GNOME User not in audio group Add user to audio

The most frequent culprit in 2026 is the new kernel module name. The snd-hda-intel module was renamed to the same name, but the internal symbols changed. If the module was compiled for the old API, it will refuse to load.


4. Step‑by‑step troubleshooting

4.1 Verify the kernel module

modprobe -r snd-hda-intel
modprobe snd-hda-intel

If you see an error like module snd-hda-intel not found, the module is missing from the kernel. Reinstall the kernel or the linux-headers package that contains the module.

# Arch
pacman -S linux

# Debian/Ubuntu
apt-get install linux-image-amd64

After reinstalling, reboot and run cat /proc/asound/cards again.

4.2 Check the user‑space library

alsa-info | grep 'alsa-lib'
alsa-lib: 2.0.0

If the output shows 1.2.x, you need to upgrade:

# Arch
pacman -S alsa-lib

# Debian/Ubuntu
apt-get install alsa-lib

If you have a custom build of alsa-lib in /usr/local, remove it or ensure it is compiled against the same API as the kernel.

4.3 Re‑apply the default udev rules

# Arch
pacman -S udev

# Debian/Ubuntu
apt-get install udev

Then reload the rules:

udevadm control --reload-rules
udevadm trigger

4.4 Make sure PipeWire is up to date

# Arch
pacman -S pipewire

# Debian/Ubuntu
apt-get install pipewire

After the upgrade, restart PipeWire:

systemctl --user restart pipewire

4.5 Verify group membership

groups $USER

If audio is missing, add the user:

sudo usermod -aG audio $USER

Log out and back in to apply the change.


5. What to do if you’re still stuck

If the problem persists after the steps above, check the PipeWire logs for any “unsupported” or “invalid” messages. Sometimes a kernel module compiled with a different ABI will still load but refuse to expose certain controls. In that case, a clean kernel reinstall or a downgrade of the ALSA libraries is the only reliable fix.



See also