March 18, 2022

Fedora 35 -- sound not working

I just upgraded via DNF from Fedora 34 to Fedora 35, and sound is not working. This is a chronic and unfortunate aspect of linux, maybe the achilles heel. I have lost count of how many times sound has stopped working and all the things I have done and tried along the way. Here we go again.

This is actually a know and documented issue with the F35 upgrade:

They say the likely cause is a new thing called "pipewire" not running. I just rebooted my system and try the first thing they suggest and get:
su
systemctl --user status wireplumber.service
Failed to connect to bus: Operation not permitted (consider using --machine=@.host --user to connect to bus of other user)
This is my mistake, I should run this as a regular user, and when I do I get:
systemctl --user status wireplumber.service
● wireplumber.service - Multimedia Service Session Manager
     Loaded: loaded (/usr/lib/systemd/user/wireplumber.service; enabled; vendor...
     Active: active (running) since Fri 2022-03-18 23:53:20 MST; 13min ago
   Main PID: 2402 (wireplumber)
     CGroup: /user.slice/user-1004.slice/user@1004.service/session.slice/wirepl...
             └─2402 /usr/bin/wireplumber
So, this looks OK. I do the next thing on the list:
systemctl --user status session.slice
● session.slice - User Core Session Slice
     Loaded: loaded (/usr/lib/systemd/user/session.slice; static)
     Active: active since Fri 2022-03-18 23:53:20 MST; 15min ago
       Docs: man:systemd.special(7)
     CGroup: /user.slice/user-1004.slice/user@1004.service/session.slice
             ├─pipewire.service
             │ └─2401 /usr/bin/pipewire
             ├─pulseaudio.service
             │ └─2555 /usr/bin/pulseaudio --daemonize=no --log-target=journal
             ├─wireplumber.service
             │ └─2402 /usr/bin/wireplumber
             ├─xdg-desktop-portal.service
             │ └─2328 /usr/libexec/xdg-desktop-portal
             └─xdg-document-portal.service
               ├─2338 /usr/libexec/xdg-document-portal
               └─2348 fusermount -o rw,nosuid,nodev,fsname=portal,auto_unmount,...

They say this is a problem (running pulseaudio alongside of pipewire and wireplumber). The recommendation is:
su
dnf swap --allowerasing pulseaudio pipewire-pulseaudio
This installs pipewire-pulseaudio and removes pulseaudio. No sound yet, but maybe we need to log in/out, restart my browser, etc. etc. I decide to cut to the chase and reboot. No sound.

They say as a "last resort" to switch back to pulseaudio, but to remove wireplumber and pipewire.

su
dnf erase wireplumber
dnf erase pipewire-pulseaudio
dnf install pulseaudio
This takes lots of stuff with it. It takes pipewire (which is good), but also gnome-shell, gdm, xmodmap, and 27 other dependent packages. Adios. No sound yet, let's try another reboot.
Nope, that doesn't do anything good either.
Just for the record, I now see:
systemctl --user status session.slice
● session.slice - User Core Session Slice
     Loaded: loaded (/usr/lib/systemd/user/session.slice; static)
     Active: active since Sat 2022-03-19 00:28:26 MST; 2min 29s ago
       Docs: man:systemd.special(7)
     CGroup: /user.slice/user-1004.slice/user@1004.service/session.slice
             ├─pulseaudio.service
             │ └─2474 /usr/bin/pulseaudio --daemonize=no --log-target=journal
             ├─xdg-desktop-portal.service
             │ └─2280 /usr/libexec/xdg-desktop-portal
             └─xdg-document-portal.service
               ├─2290 /usr/libexec/xdg-document-portal
               └─2300 fusermount -o rw,nosuid,nodev,fsname=portal,auto_unmount,subtype=portal -- /run/user/1004/doc
So, pulseaudio is running, but is lost at sea.

Another linux sound train wreck.

What to do next?

I am tempted to switch again to the new pipewire/plumber rubbish since it seems to be the new official game, and wait for some update to set everything straight. Why not?
su
dnf erase pulseaudio
dnf install wireplumber
dnf install pipewire
exit
systemctl --user enable --now wireplumber
Note that the final command created a couple of symlinks. And voila!! Sound works now. Bravo!
Have any comments? Questions? Drop me a line!

Adventures in Computing / tom@mmto.org