You are not logged in.
After running into some issues with Ardour and the automatic pipewire-jack routing it uses, I decided to try fixing it by disabling my unused sound cards, as I'm using a Scarlett 2i2 as sound sink and source. I wrote the following config file:
~/.config/wireplumber/wireplumber.conf.d/10-alsa-disable.conf
monitor.alsa.rules = [
{
matches = [
{ device.name = "alsa_card.pci-0000_0b_00.1" }
]
actions = {
update-props = {
device.disabled = true
}
}
}
{
matches = [
{ device.name = "alsa_card.pci-0000_0e_00.4" }
]
actions = {
update-props = {
device.disabled = true
}
}
}
]Further information on the cards:
id 41, type PipeWire:Interface:Device/3
device.name = "alsa_card.pci-0000_0b_00.1"
device.description = "Navi 48 HDMI/DP Audio Controller"
device.nick = "HDA ATI HDMI"
id 44, type PipeWire:Interface:Device/3
device.name = "alsa_card.pci-0000_0e_00.4"
device.description = "Starship/Matisse HD Audio Controller"
device.nick = "HD-Audio Generic"After the first reboot with the config file created, whenever executing the command wireplumber, I get the following errors:
E 12:44:40.390010 wp-event-dispatche (null):(null):(null): wp_event_dispatcher_unregister_hook: assertion 'already_registered_dispatcher == self' failed
E 12:44:40.391373 wp-event-dispatche (null):(null):(null): wp_event_dispatcher_unregister_hook: assertion 'already_registered_dispatcher == self' failed
E 12:44:40.392342 wp-event-dispatche (null):(null):(null): wp_event_dispatcher_unregister_hook: assertion 'already_registered_dispatcher == self' failed
E 12:44:40.393285 wp-event-dispatche (null):(null):(null): wp_event_dispatcher_unregister_hook: assertion 'already_registered_dispatcher == self' failedFollowed by these warnings when interrupting with ^C:
W 12:44:41.636625 pw.core ../pipewire/src/pipewire/core.c:199:destroy_proxy: 0x5d43488fc160: leaked proxy 0x5d434897e9f0 id:10
W 12:44:41.637494 pw.core ../pipewire/src/pipewire/core.c:199:destroy_proxy: 0x5d43488fc160: leaked proxy 0x5d43489e5b20 id:28I get the following output using pw-cli:
>> ls 10
id 10, type PipeWire:Interface:Module/3
object.serial = "10"
module.name = "libpipewire-module-spa-node-factory"
>> ls 28
id 28, type PipeWire:Interace:Factory/3
object.serial = "28"
module.id = "22"
factory.name = "endpoint-link"
factory.type.name = "PipeWire:Interface:EndpointLink"
factory.type.version = "0"
>> ls 22
id 22, type PipeWire:Interface:Module/3
object.serial = "22"
module.name = "libpipewire-module-session-manager"I've never run into any issues using Pipewire before this. After trying a complete reinstall, even switching to the current LTS kernel, the issue still persists on a basically blank system. The pipewire systemd unit itself and pw-cli work fine.
$ systemctl --user status pipewireshows no errors while
$ systemctl --user status wireplumberthrows the same errors as the wireplumber command followed by
default: Failed to get percentage from Upower: org.freedesktop.DBus.Error.NameHasNoOwnerAfter switching to PulseAudio I had no issues with my audio and could even control the corresponding sound cards using alsamixer. That being said, I would highly prefer being able to use Pipewire again on this computer. Does anybody have any idea how to potentially fix this issue? Thanks in advance!
Last edited by ananaft (2025-11-16 15:22:04)
Offline
Wireplumber broken even after fresh install
I wrote the following config file
After trying a complete reinstall
Did you keep your $HOME?
Online
After the first reboot with the config file created, whenever executing the command wireplumber, I get the following errors:
E 12:44:40.390010 wp-event-dispatche (null):(null):(null): wp_event_dispatcher_unregister_hook: assertion 'already_registered_dispatcher == self' failed E 12:44:40.391373 wp-event-dispatche (null):(null):(null): wp_event_dispatcher_unregister_hook: assertion 'already_registered_dispatcher == self' failed E 12:44:40.392342 wp-event-dispatche (null):(null):(null): wp_event_dispatcher_unregister_hook: assertion 'already_registered_dispatcher == self' failed E 12:44:40.393285 wp-event-dispatche (null):(null):(null): wp_event_dispatcher_unregister_hook: assertion 'already_registered_dispatcher == self' failed
Regarding these errors specifically, I filed an issue upstream after the most recent wireplumber release:
• https://gitlab.freedesktop.org/pipewire … issues/862
It was quickly addressed and the fix will be in the next release.
Offline
Wireplumber broken even after fresh install
I wrote the following config file
After trying a complete reinstall
Did you keep your $HOME?
I've backed up my $HOME on a separate, currently unmounted drive. The reinstall is blank in the sense that I simply did the necessary steps for a working system and installed pipewire packages afterwards.
$ pacman -Q | grep wire
lib32-libpipewire 1:1.4.9-1
lib32-pipewire 1:1.4.9-1
libpipewire 1:1.4.9-1
libwireplumber 0.5.12-1
pipewire 1:1.4.9-1
pipewire-alsa 1:1.4.9-1
pipewire-audio 1:1.4.9-1
pipewire-jack 1:1.4.9-1
pipewire-pulse 1:1.4.9-1
wireplumber 0.5.12-1Potentially necessary ALSA packages should also be installed:
$ pacman -Q | grep alsa
alsa-card-profiles 1:1.4.9-1
alsa-firmware 1.2.4-4
alsa-lib 1.2.14-2
alsa-topology-conf 1.2.5.1-4
alsa-ucm-conf 1.2.14-2
alsa-utils 1.2.14-1
lib32-alsa-lib 1.2.14-2
pipewire-alsa 1:1.4.9-1ananaft wrote:After the first reboot with the config file created, whenever executing the command wireplumber, I get the following errors:
E 12:44:40.390010 wp-event-dispatche (null):(null):(null): wp_event_dispatcher_unregister_hook: assertion 'already_registered_dispatcher == self' failed E 12:44:40.391373 wp-event-dispatche (null):(null):(null): wp_event_dispatcher_unregister_hook: assertion 'already_registered_dispatcher == self' failed E 12:44:40.392342 wp-event-dispatche (null):(null):(null): wp_event_dispatcher_unregister_hook: assertion 'already_registered_dispatcher == self' failed E 12:44:40.393285 wp-event-dispatche (null):(null):(null): wp_event_dispatcher_unregister_hook: assertion 'already_registered_dispatcher == self' failedRegarding these errors specifically, I filed an issue upstream after the most recent wireplumber release:
• https://gitlab.freedesktop.org/pipewire … issues/862
It was quickly addressed and the fix will be in the next release.
After applying these changes to my source file located at /usr/share/wireplumber/scripts/device/automute-alsa-routes.lua, I now simply see the following errors/warnings in journalctl:
$ journalctl -b
Nov 13 20:20:34 binbows systemd[674]: Started PipeWire Multimedia Service.
Nov 13 20:20:34 binbows systemd[674]: Reached target Main User Target.
Nov 13 20:20:34 binbows systemd[674]: Started Multimedia Service Session Manager.
Nov 13 20:20:34 binbows systemd[674]: Startup finished in 134ms.
Nov 13 20:20:35 binbows wireplumber[686]: default: Failed to get percentage from UPower: org.freedesktop.DBus.Error.NameHasNoOwner
Nov 13 20:20:35 binbows wireplumber[686]: spa.bluez5: BlueZ system service is not available
Nov 13 20:20:35 binbows wireplumber[686]: wp-device: SPA handle 'api.libcamera.enum.manager' could not be loaded; is it installed?
Nov 13 20:20:35 binbows wireplumber[686]: s-monitors-libcamera: PipeWire's libcamera SPA plugin is missing or broken. Some camera types may not be supported.I figure these can all safely be ignored? wireplumber and wpctl simply freeze now when trying to run them. Could it be that disabling my sound cards through Wireplumber changed something at hardware level?
Offline
You're not supposed to run wireplumber yourself.
systemctl --user status wireplumber pipewireIf wpctl status "hangs"
strace -f -o /tmp/wpctl.strace wpctl status
cat /tmp/wpctl.strace | curl -F 'file=@-' 0x0.stOnline
You're not supposed to run wireplumber yourself.
systemctl --user status wireplumber pipewireIf wpctl status "hangs"
strace -f -o /tmp/wpctl.strace wpctl status cat /tmp/wpctl.strace | curl -F 'file=@-' 0x0.st
So after another reinstall, and applying the patch tekstryder mentioned, it finally works again. The issue after my first reinstall was probably that I would execute wireplumber without realizing that it would mess with the already running systemd unit. Thanks for the hint seth! That could have been obvious to me... ![]()
Thank you everyone for your time! Consider this closed!
Offline
\o/
Please always remember to mark resolved threads by editing your initial posts subject - so others will know that there's no task left, but maybe a solution to find.
Thanks.
Online