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
- When systemd‑resolved ignores /etc/hosts entries for local subdomains
- How to Fix Permission‑Denied Errors When Mounting Host Paths in Rootless Podman Containers
- When Ubuntu’s `apt dist-upgrade` Removes Your Custom Kernel Module – A Practical Pinning Fix
- When initramfs drops into emergency mode after a kernel upgrade: how to recover the root partition on Ubuntu 24.04
- Granting Group Write Access on a Shared /srv/web Directory Using ACLs Without Changing File Ownership