Common F34 bugs - Fedora Project Wiki Audio may not work after upgrade to Fedora 34 if pipewire was previously installed
link to this item - Bugzilla: #1931384
Some users have reported that pipewire (the default audio framework in Fedora 34) may not work properly on update from older versions due to a configuration file format incompatibility. If you had pipewire installed in Fedora 32 or 33, it may stop working on upgrade to Fedora 34. If this happens to you, we recommend moving all *.conf files out of /etc/pipewire and reinstalling pipewire with sudo dnf reinstall pipewire pipewire-pulseaudio. You will then need to re-apply any customizations you had made to the configuration files.
Have you rebooted after all this? For some reason, itβs still trying to run pipewire-media-session, so maybe even though the new service files are installed, theyβre not loaded into systemd (one has to sometimes run systemctl reload after system files are changed).
Also take a look at your service file maybe to make sure theyβre correct:
$ cat /usr/lib/systemd/user/pipewire.service
[Unit]
Description=Multimedia Service
# We require pipewire.socket to be active before starting the daemon, because
# while it is possible to use the service without the socket, it is not clear
# why it would be desirable.
#
# A user installing pipewire and doing `systemctl --user start pipewire`
# will not get the socket started, which might be confusing and problematic if
# the server is to be restarted later on, as the client autospawn feature
# might kick in. Also, a start of the socket unit will fail, adding to the
# confusion.
#
# After=pipewire.socket is not needed, as it is already implicit in the
# socket-service relationship, see systemd.socket(5).
Requires=pipewire.socket
[Service]
LockPersonality=yes
MemoryDenyWriteExecute=yes
NoNewPrivileges=yes
RestrictNamespaces=yes
SystemCallArchitectures=native
SystemCallFilter=@system-service
Type=simple
ExecStart=/usr/bin/pipewire
Restart=on-failure
Slice=session.slice
[Install]
Also=pipewire.socket
WantedBy=default.target
$ cat /usr/lib/systemd/user/wireplumber.service
[Unit]
Description=Multimedia Service Session Manager
After=pipewire.service
BindsTo=pipewire.service
Conflicts=pipewire-media-session.service
[Service]
LockPersonality=yes
MemoryDenyWriteExecute=yes
NoNewPrivileges=yes
RestrictNamespaces=yes
SystemCallArchitectures=native
SystemCallFilter=@system-service
Type=simple
ExecStart=/usr/bin/wireplumber
Restart=on-failure
Slice=session.slice
[Install]
WantedBy=pipewire.service
(Oh, also see what a new user shows, in case there are some config files that we need to delete after upgrades etc.?)
Edit:
just noticed that wireplumber.service conflicts with pipewire-media-session.service. So the two should not exist together etc.