I have one question. I modified the command given from wiki because I thought that start
would only start it on the current session but it won’t on next reboot. So it stays that way without needing to enable it explicitly?
start
indeed only starts the given unit (service, socket, timer etc) in the current session.
enable
makes the unit auto-start when the dependencies and conditions are met. Often this is explained as “make the unit auto-start on boot/login”, but that’s an over-simplification.
In this case though, we used another command, preset
. preset
makes the unit enabled/disabled according to a preset policy (which can be defined by distros, Fedora uses socket-activation for pipewire, but other distros might not).
Basically this:
systemctl --user preset pipewire-pulse.{socket,service}
is the same as this on Fedora:
systemctl --user enable pipewire-pulse.socket
systemctl --user disable pipewire-pulse.service
You can see the preset policies in /usr/lib/systemd/system-preset
and /usr/lib/systemd/user-preset
.
I’ve been seeing this occasionally on Fedora 38. What seems to have fixed it was running both commands:
sudo dnf swap --allowerasing pipewire-pulseaudio pulseaudio
# reboot, still no audio devices
sudo dnf install --allowerasing pipewire-pulseaudio
# reboot, audio devices are there!
Maybe “toggling” between the pulseaudio and back to pipewire did the trick. Time will tell if this actually fixed the issue permanently.
This issue seems to come back no matter what I do. It’s actually been getting worse for me in the last couple of weeks.
I still don’t know what the problem is, but it seems like running pw-mon
refreshes some internal state and things work as expected.