I am using a pair of bluetooth headphones and recently upgraded Fedora. The audio quality of the headphones is abysmal, so while checking what was going on in the sound menu, I noticed that the ALSA option has disappeared (what I used before), and I am stuck with HSP/HFP (which runs in mono and sounds horrible). I used the same headphones yesterday with Alsa too, with no problems at all.
I have been trying to figure out what is going on. Running pipewire gets me this:
$ pipewire
[E][03189.417226] mod.protocol-native | [module-protocol-: 606 lock_socket()] server 0x563c95d3b200: unable to lock lockfile '/run/user/1000/pipewire-0.lock': Resource temporarily unavailable (maybe another daemon is running)
[E][03189.417811] pw.conf | [ conf.c: 412 load_module()] 0x563c95d209a0: could not load mandatory module "libpipewire-module-protocol-native": Resource temporarily unavailable
[E][03189.418168] default | [ pipewire.c: 123 main()] failed to create context: Resource temporarily unavailable
I tried to run a systemctl --user restart pipewire.service too, with no luck.
Would you have idea on how to fix this? Thanks in advance for your help
$ systemctl --user status pipewire-media-session
Unit pipewire-media-session.service could not be found.
dnf swap does nothing as a consequence, but I can’t find it on the repos either
$ sudo dnf swap wireplumber pipewire-media-session
Last metadata expiration check: 0:02:54 ago on Sun 31 Oct 2021 22:12:55 GMT.
No match for argument: wireplumber
No packages marked for removal.
No match for argument: pipewire-media-session
Error: Unable to find a match: pipewire-media-session
$ sudo dnf install wireplumber
Last metadata expiration check: 0:04:10 ago on Sun 31 Oct 2021 22:12:55 GMT.
No match for argument: wireplumber
Error: Unable to find a match: wireplumber
Edit:
$ sudo dnf install pipewire-media-session
Last metadata expiration check: 0:03:02 ago on Mon 01 Nov 2021 10:31:50 GMT.
No match for argument: pipewire-media-session
Error: Unable to find a match: pipewire-media-session
So I would assume there is some kind of conflict going on with bluez. That said, that doesn’t really explain why there isn’t a service I can activate at all.
I saw here that it could have been caused by some configs carrying over from Arch (I did move some dotfiles from my past Manjaro install), but I can’t really find anything beyond a pipewire folder in ~/.config
So I am bringing this up again as I recently updated to F35 with wireplumber and the problem oddly persists.
This time I am met with
$ journalctl -xe | grep wireplumber
Dec 19 14:55:59 fedora wireplumber[2893]: trying to set invalid profile 1, codec 0, 00000011 00000010
Dec 19 14:56:06 fedora wireplumber[2066]: stopped by signal: Terminated
Dec 19 14:56:06 fedora wireplumber[2066]: disconnected from pipewire
I went to check for possible upgrades and after upgrading ALSA, I now have
journalctl -xe | grep wireplumber
Dec 19 15:08:27 fedora wireplumber[2077]: stopped by signal: Terminated
Dec 19 15:08:27 fedora wireplumber[2077]: disconnected from pipewire
Dec 19 15:09:56 fedora wireplumber[2898]: Failed to register battery provider. Error: org.freedesktop.DBus.Error.UnknownMethod
Dec 19 15:09:56 fedora wireplumber[2898]: BlueZ Battery Provider is not available, won't retry to register it. Make sure you are running BlueZ 5.56+ with experimental features to use Battery Provider.
I then added the flag --experimental in ExecStart on /lib/systemd/system/bluetooth.service, then rebooted, with still no success and just getting this in journalctl:
$ journalctl -xe | grep wireplumber
Dec 19 15:18:13 fedora wireplumber[2048]: stopped by signal: Terminated
Dec 19 15:18:13 fedora wireplumber[2048]: disconnected from pipewire
The sound keeps working via the internal device, just not with ALSA
But I suggest, you could test it by creating new user, and see if everything work normal. If by creating new user everything is normal, then you could find or delete any dot file leftover from previous distro Setting.
Regarding the bluez issue: sorry, I should’ve specified that adding the --experimental flag did solve that specific problem (that I guess was unrelated to the one I am having right now)
Maybe you could try to check file configuration in /usr/share/wireplumber/main.lua.d/50-alsa-config.lua, then find the following line:
-- Apply properties on the matched object.
apply_properties = {
-- Use ALSA-Card-Profile devices. They use UCM or the profile
-- configuration to configure the device and mixer settings.
["api.alsa.use-acp"] = true,
There are reported issue with wireplumber 0.4.2 and it should be already fixed since F35 already on wireplumber 0.4.5.
But if you read on comment from George Kiagiadakis, there are two solution and the one that pushed to upstream (update) are Environment=GIO_USE_VFS=local.
If you already with newest wireplumber version and the problem persist, maybe you could use the second solution Environment=GVFS_DISABLE_FUSE=1 and place it in sudo nano /usr/lib/systemd/user/wireplumber.service and change part Environment. Save and run sudo systemctl restart --user wireplumber.
Yesterday I tested it again and suddenly ALSA worked upon reboot, but now it isn’t anymore for some reason. Very weird.
I tried to apply the 2nd solution in the meantime, but I get this when restarting systemctl:
$ sudo systemctl restart --user wireplumber
Failed to connect to bus: $DBUS_SESSION_BUS_ADDRESS and $XDG_RUNTIME_DIR not defined (consider using --machine=<user>@.host --user to connect to bus of other user)
$ systemctl restart --user wireplumber
Warning: The unit file, source configuration file or drop-ins of wireplumber.service changed on disk. Run 'systemctl --user daemon-reload' to reload units.
Then I tried with
$ systemctl restart wireplumber
Failed to restart wireplumber.service: Unit wireplumber.service not found.