First I had to open and edit /etc/modprobe.d/alsa-base.conf and add
options snd-hda-intel model=auto
blacklist snd_soc_avs
to the bottom of the file and reboot. Then
Run commands as your normal user (no sudo)
Make sure you’re not using sudo:
systemctl --user status pipewire.service
You’ll see that it's masked.
Unmask the Service
Try unmasking the pipewire.service unit:
systemctl --user unmask pipewire.service
If this doesn’t give an error, follow it with:
systemctl --user daemon-reload
Remove Any Local Masking Symlinks
If systemctl --user unmask pipewire.service reports that the unit doesn’t exist or doesn’t remove the mask, there could be a local symlink masking it in your user’s systemd config directory. Check for a symlink to /dev/null:
ls -l ~/.config/systemd/user/pipewire.service
If you see a symlink pointing to /dev/null, remove it:
rm ~/.config/systemd/user/pipewire.service
systemctl --user daemon-reload
Check if the PipeWire Unit Files Are Present
Confirm that pipewire.service and related unit files exist in the system directories:
ls /usr/lib/systemd/user/pipewire.service
If the file doesn’t exist, reinstall PipeWire:
sudo apt update
sudo apt install --reinstall pipewire pipewire-pulse wireplumber
systemctl --user daemon-reload
Enable and Start PipeWire and WirePlumber (Without sudo)
Now enable and start the units:
systemctl --user enable pipewire.socket
systemctl --user enable wireplumber.service
systemctl --user start pipewire.socket
systemctl --user start wireplumber.service
Check their statuses:
systemctl --user status pipewire.service
systemctl --user status pipewire.socket
systemctl --user status wireplumber.service
Log Out / Reboot If Needed
If the service is still masked or not starting, log out and log back in, or reboot:
sudo reboot
After restarting, run:
systemctl --user status pipewire.socket
systemctl --user status pipewire.service
systemctl --user status wireplumber.service