Skip to content

Instantly share code, notes, and snippets.

@st3r4g
Last active March 28, 2022 21:51
Show Gist options
  • Save st3r4g/6c681a28b0403b3b02636f510ff68039 to your computer and use it in GitHub Desktop.
Save st3r4g/6c681a28b0403b3b02636f510ff68039 to your computer and use it in GitHub Desktop.
Info moved to the official docs: https://docs.voidlinux.org/config/media/pipewire.html
== Troubleshooting ==
- Be sure to have XDG_RUNTIME_DIR setup correctly
- Check that no pulseaudio process is running (`pgrep pulseaudio`)
== System pipewire ==
#!/bin/sh
mkdir -p /run/pipewire
umask 000
PIPEWIRE_RUNTIME_DIR=/run/pipewire pipewire
#!/bin/execlineb -P
foreground { mkdir -p /run/pipewire }
fdmove -c 2 1
s6-env PIPEWIRE_RUNTIME_DIR=/run/pipewire execline-umask 000 pipewire
== System pipewire-pulse
#!/bin/sh
mkdir -p /run/pulse
umask 000
PULSE_RUNTIME_PATH=/run pipewire-pulse
#!/bin/execlineb -P
foreground { mkdir -p /run/pulse }
fdmove -c 2 1
s6-env PULSE_RUNTIME_PATH=/run execline-umask 000 pipewire-pulse
@toluschr
Copy link

toluschr commented Dec 2, 2020

It works! After following https://wiki.gentoo.org/wiki/Pipewire, pipewire didn't detect my devices. Installing libspa-alsa fixed it.
And it works so well, that other than my settings not randomly changing anymore, I can't even tell that I'm using pipewire.

Finally, my system is fully Lennard Poettering-free! ❤️

@negativeExponent
Copy link

i cannot seem to get this working. pactl info still shows pulseaudio on Server name instead of pulseaudio (pipewire-somethng)

@st3r4g
Copy link
Author

st3r4g commented Jan 21, 2021

It may be that you have some running application that tries to restart pulseaudio. pgrep pulseaudio will list running pulseaudio instances. So, after pulseaudio --kill, use pgrep pulseaudio to see if some application restarted it. If this is the case, either stop all applications requesting pulseaudio, or disable autospawn in /etc/pulse/client.conf

@negativeExponent
Copy link

seems to be working now after reinstalling void...
im on bpswm using xnit.
did pulseaudio-releated step above and place "pipewire &" in .xinitrc before bspwm. its the same thing i did before...

1611227681_2021_01_21_19:14:41

@kkga
Copy link

kkga commented Jan 23, 2021

[E][000001705.850547][bluez-monitor.c:453 sm_bluez5_monitor_start()] can't load api.bluez5.enum.dbus: No such file or directory

I think, installing libspa-bluetooth removed this error for me.

Still can't figure out why bluetooth audio is not working with pipewire-pulse though. I can connect a bluetooth headset, and an output device is displayed correctly in pavucontrol. However, there's just no sound if it's activated.

If I switch to an actual pulseaudio server instead, it works fine.

@st3r4g
Copy link
Author

st3r4g commented Jan 24, 2021

I think, installing libspa-bluetooth removed this error for me.

But it shouldn't throw an error, it should be optional I think. There was a similar error in absence of libspa-jack that was fixed.

@st3r4g
Copy link
Author

st3r4g commented Jan 24, 2021

Still can't figure out why bluetooth audio is not working with pipewire-pulse though. I can connect a bluetooth headset, and an output device is displayed correctly in pavucontrol. However, there's just no sound if it's activated.

Maybe void-linux/void-packages#28145 helps?

@paper42
Copy link

paper42 commented Jan 24, 2021

libspa-bluetooth removed the error even before I made the PR. The PR affects only libspa-bluetooth.

@st3r4g
Copy link
Author

st3r4g commented Jan 24, 2021

No I mean: maybe the missing codecs are the reason his bluetooth audio doesn't work?

@paper42
Copy link

paper42 commented Jan 24, 2021

It shouldn't be the problem, SBC codec was in pipewire before and SBC is supported by everything. Maybe try disabling the Built-in Audio in pavucontrol under Configuration? @kkga

@kkga
Copy link

kkga commented Jan 25, 2021

Maybe try disabling the Built-in Audio in pavucontrol under Configuration? @kkga

Thanks for the tip. Switching audio profiles back and force between HSP and then back to A2DP makes it work 👍
Have to do this every time I connect the headset or toggle mute though, but it works. Seems to be an issue of pipewire-pulse, because regular pulseaudio works without these workarounds.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment