On 2020-12-21 3:31 a.m., Tom Hughes via devel wrote:
On 20/11/2020 16:26, Ben Cotton wrote:
== Summary == This change proposal is to route all audio from PulseAudio and JACK to the PipeWire Audio daemon by default.
So I tried this in F33 with the packages from updates-testing and I'm afraid to say it didn't end well...
Audio functionality should be like it was before with the Pulseaudio daemon. Some things to verify:
- patcl info should now list: Server Name: PulseAudio (on PipeWire 0.3.x)
As pactl was removed by the switch I couldn't test this.
pactl command is still present after replacing pulseaudio by pipewire-pulseaudio.
pactl info Server String: /run/user/1000/pulse/native Library Protocol Version: 34 Server Protocol Version: 34 Is Local: yes Client Index: 78 Tile Size: 65472 Server Name: PulseAudio (on PipeWire 0.3.18) Server Version: 14.0.0 Default Sample Specification: float32le 2ch 48000Hz Default Channel Map: front-left,front-right Default Sink: alsa_output.pci-0000:03:00.6.analog-stereo Default Source: alsa_input.pci-0000:03:00.6.analog-stereo Cookie: 5667:4fbd
- gnome-control-center: check the audio tab, check the volume sliders and do the audio channel test. Change the card profile, plug/unplug headphones and observe correct switch.
This worked initially, but see later.
- pavucontrol: check volumes in the input devices tabs and check the microphone volumes
Didn't test this.
Worked fine.
- firefox: check out a website with audio/video such as youtube and verify that audio works as usual. Check out a website with a video chat test page (bluejeans.com/111).
Didn't test this.
Works.
- rhythmbox: check if playback works as expected
This worked initially, but see later.
Works here.
- bluetooth devices, connect as usual and verify working behaviour with PipeWire. Check volume changes etc.
I was unable to get this to work.
Works with Galaxy Buds+ as highlighted below:
pactl info Server String: /run/user/1000/pulse/native Library Protocol Version: 34 Server Protocol Version: 34 Is Local: yes Client Index: 97 Tile Size: 65472 Server Name: PulseAudio (on PipeWire 0.3.18) Server Version: 14.0.0 Default Sample Specification: float32le 2ch 48000Hz Default Channel Map: front-left,front-right Default Sink: api.bluez5.a2dp.sink.Galaxy Buds+ (11C1) Default Source: alsa_input.pci-0000:03:00.6.analog-stereo Cookie: 4766:6514
The first problem is that bluetooth is not actually enabled by default so you have to edit /etc/pipewire/pipewire.conf and tell it to add "-e bluez5" when starting the session manager.
Which version of pipewire was used on your system? Pipewire 0.3.18 enabled a bluetooth headphone i.e. Galaxy Buds+ with issue related to resuming for the reopened lid of a laptop. Workaround is with the command for terminal "systemctl --user restart pipewire.service pipewire-pulse.service". See attached pipewire.conf with include bleuz5 enabled by default.
After that my headphones who show up as a device in pw-cli but not as a target I could send sound to.
An example with Galaxy Buds+:
id 84, type PipeWire:Interface:Node/3 factory.id = "7" client.id = "31" device.id = "83" node.description = "Galaxy Buds+ (11C1)" node.name = "api.bluez5.a2dp.sink.Galaxy Buds+ (11C1)" media.class = "Audio/Sink" id 85, type PipeWire:Interface:Port/3 object.path = "Galaxy Buds+ (11C1):playback_0" format.dsp = "32 bit float mono audio" node.id = "84" audio.channel = "FL" port.name = "playback_FL" port.direction = "in" port.physical = "true" port.terminal = "true" port.alias = "Galaxy Buds+ (11C1):playback_FL" id 86, type PipeWire:Interface:Port/3 object.path = "Galaxy Buds+ (11C1):monitor_0" format.dsp = "32 bit float mono audio" node.id = "84" audio.channel = "FL" port.name = "monitor_FL" port.direction = "out" port.alias = "Galaxy Buds+ (11C1):monitor_FL" id 87, type PipeWire:Interface:Port/3 object.path = "Galaxy Buds+ (11C1):playback_1" format.dsp = "32 bit float mono audio" node.id = "84" audio.channel = "FR" port.name = "playback_FR" port.direction = "in" port.physical = "true" port.terminal = "true" port.alias = "Galaxy Buds+ (11C1):playback_FR" id 88, type PipeWire:Interface:Port/3 object.path = "Galaxy Buds+ (11C1):monitor_1" format.dsp = "32 bit float mono audio" node.id = "84" audio.channel = "FR" port.name = "monitor_FR" port.direction = "out" port.alias = "Galaxy Buds+ (11C1):monitor_FR"
The final straw though was that fast user switching seems to completely break it. I assume that the daemon doesn't release the audio device when you switch to a different desktop to something because once I started a second session things got horribly confused and I wound up with one desktop where audio worked and one where it didn't work at all.
No issue on my desktop running Rawhide. Maybe some issues are user error like using old version of pipewire. Update your system and make sure pipewire version is 0.3.18 whose pipewire-pulseaudio properly handle dependencies. Should you see Steam from RPM Fusion being removed, grab the latest version from their Koji page which fixes the problem.