Skip to main content
Topic solved
This topic has been marked as solved and requires no further attention.
Topic: Pipewire (-pulse) config broken after recent update (Read 2156 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Pipewire (-pulse) config broken after recent update

On a fresh install about a month ago I was able to get audio working with pipewire/pipewire-pulse/wireplumber (my criteria for "working" was that I could hear audio and my F86 mute and vol +/- keys all worked).  Setup is using OpenRC and sway wm (Wayland) on 4th gen X1 carbon.

I initially got thing working with this thread https://forum.artixlinux.org/index.php/topic,2160.0.html

Steps I took:
  • Installed following packages: alsa-card-profiles, gst-plugin-pipewire, lib32-gst-plugin-pipewire, lib32-pipewire, lib32-pipewire-jack, libpipewire02, pipewire, pipewire-alsa, pipewire-jack, pipewire-jack-dropin, pipewire-pulse, wireplumber
  • Added to bottom of /etc/pipewire/pipewire.conf:
    "/usr/bin/pipewire-pulse" = { "#args" = "-a tcp:4713" }
  • Added the following to .config/sway/config:
    exec pipewire
    exec pipewire-pulse
    exec wireplumber

This successfully gave me audio and working F86 buttons after the window manager started, until a system update last week.  The system starts with mute enabled as it did previously, but it will not un-mute.  Running pactl set-sink-mute @DEFAULT_SINK@ toggle directly in the terminal yields: Failed to get sink information: No such entity

Commenting out the exec lines in the sway config file and starting the programs manually in alacritty (i.e. /usr/bin/pipewire &) had the following results -
  • pipewire: seems to start with no issues or unusual output
  • pipewire-pulse:  output is:
    [E][00066.900024] mod.protocol-pulse | [     dbus-name.c:   71 dbus_request_name()] Failed to acquire org.pulseaudio.Server: org.freedesktop.DBus.Error.AccessDenied: Connection ":1.15" is not allowed to own the service "org.pulseaudio.Server" due to security policies in the configuration file

    (despite the above, pactl info still produces the following):

    Server String: /run/user/1000/pulse/native
    Library Protocol Version: 35
    Server Protocol Version: 35
    Is Local: yes
    Client Index: 31
    Tile Size: 65472
    User Name: rusty
    Host Name: x1
    Server Name: PulseAudio (on PipeWire 0.3.43)
    Server Version: 15.0.0
    Default Sample Specification: float32le 2ch 48000Hz
    Default Channel Map: front-left,front-right
    Default Sink: @DEFAULT_SINK@
    Default Source: @DEFAULT_SOURCE@
    Cookie: c8b3:5da3
  • wireplumber: output is: C 11:45:16.407460               GLib (null):(null):(null): Failed to set scheduler settings: Operation not permitted

I am hoping someone can recommend further troubleshooting steps or a potential solution to restore audio output + basic controls.  I have been searching myself but coming up short.  Thanks in advance for any input!



Re: Pipewire (-pulse) config broken after recent update

Reply #3
Thanks for the replies!

Rolling back wireplumber directly didn't work, but then I remembered system snapshots. I had set up timeshift just in time - my oldest/original snapshot was the only one that brought audio back. I was then able to add wireplumber to the ignore list and upgrade the rest of the system, without losing audio.

Also prior to rolling back, I did check but pulseaudio was not running.

Thanks again!

Re: Pipewire (-pulse) config broken after recent update

Reply #4
Ok, it wasn't wireplumber.

As I was working through other installations that got rolled back with the snapshot restore I found the real issue, which was a workaround I had put in place to get the Joplin flatpak to run in Wayland.

Out of the box, I got this error when trying to open Joplin:
 failed to connect to session bus: [org.freedesktop.dbus.error.notsupported] using x11 for dbus-daemon autolaunch was disabled at compile time, set your dbus_session_bus_address instead

Adding the below to /etc/environment allows Joplin to start, but breaks sound.
DBUS_SYSTEM_BUS_ADDRESS=unix:path=/run/dbus/system_bus_socket
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/dbus/system_bus_socket


Still going to keeps this mark solved, since the cause is narrowed down and my question scope is creeping, but posting the update for posterity.  Probably makes more sense to look for help on a Wayland board at this point, although it could lead back to the init system I suppose.

Re: Pipewire (-pulse) config broken after recent update

Reply #5
Interesting, looking here:
Code: [Select]
$ env |grep DBUS
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-asjkLMFbWr,guid=fc6b14943279656d5c9bd84f61e6048e

$ cat .dbus/session-bus/86960314c9136867b9d2e0b0611a631d-0
# This file allows processes on the machine with id 86960314c9136867b9d2e0b0611a631d using
# display :0 to find the D-Bus session bus with the below address.
# If the DBUS_SESSION_BUS_ADDRESS environment variable is set, it will
# be used rather than this file.
# See "man dbus-launch" for more details.
DBUS_SESSION_BUS_ADDRESS='unix:abstract=/tmp/dbus-asjkLMFbWr,guid=fc6b14943279656d5c9bd84f61e6048e'
DBUS_SESSION_BUS_PID=2265
DBUS_SESSION_BUS_WINDOWID=4194305

$ ls /tmp/dbus*
/tmp/dbus-LJrsUx3G2t
So perhaps those environment things not matching the name of the socket affect the latest wireplumber somehow?