Fedora 35: Fixing PipeWire, WirePlumber missing sinks/targets

I needed to automatically switch to HDMI Audio once it was plugged in.
Unfortunately, PipeWire and WirePlumber can only detect one target.

$ pw-cat -p --list-targets
Available targets ("*" denotes default): 
*       39: description="Built-in Audio" prio=1000

$ wpctl status
PipeWire 'pipewire-0' [0.3.38, user@fedora, cookie:2305481597]
 └─ Clients:
        .........................
Audio
 ├─ Devices:
 │      38. Built-in Audio                      [alsa:pcm]
 │  
 ├─ Sinks:
 │  *   39. Built-in Audio                      [vol: 1.00]
 │  
 ├─ Sink endpoints:
 │  
 ├─ Sources:
 │  *   40. Built-in Audio                      [vol: 1.00]
 │  
 ├─ Source endpoints:
 │  
 └─ Streams:

The solution was to modify /usr/share/wireplumber/main.lua.d/50-alsa-config.lua and apply the following lines, essentially disabling use-acp:

    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,

And now PipeWire and WirePlumber can detect all of the targets.

$ pw-cat -p --list-targets
Available targets ("*" denotes default): 
*       39: description="Built-in Audio" prio=1000
        41: description="Built-in Audio (HDMI 0)" prio=696
        42: description="Built-in Audio (HDMI 1)" prio=632
        43: description="Built-in Audio (HDMI 2)" prio=616
        44: description="Built-in Audio (HDMI 3)" prio=600
        45: description="Built-in Audio (HDMI 4)" prio=584
        46: description="Built-in Audio (HDMI 5)" prio=568
        47: description="Built-in Audio (HDMI 6)" prio=552
        48: description="Built-in Audio (HDMI 7)" prio=536
        49: description="Built-in Audio (HDMI 8)" prio=520
        50: description="Built-in Audio (HDMI 9)" prio=504
        51: description="Built-in Audio (HDMI 10)" prio=488
        52: description="Built-in Audio (HDMI 11)" prio=472

$ wpctl status
PipeWire 'pipewire-0' [0.3.38, user@fedora, cookie:2305481597]
 └─ Clients:
       ..................

Audio
 ├─ Devices:
 │      38. Built-in Audio                      [alsa:pcm]
 │  
 ├─ Sinks:
 │  *   39. Built-in Audio                      [vol: 1.00]
 │      41. Built-in Audio (HDMI 0)             [vol: 1.00]
 │      42. Built-in Audio (HDMI 1)             [vol: 1.00]
 │      43. Built-in Audio (HDMI 2)             [vol: 1.00]
 │      44. Built-in Audio (HDMI 3)             [vol: 1.00]
 │      45. Built-in Audio (HDMI 4)             [vol: 1.00]
 │      46. Built-in Audio (HDMI 5)             [vol: 1.00]
 │      47. Built-in Audio (HDMI 6)             [vol: 1.00]
 │      48. Built-in Audio (HDMI 7)             [vol: 1.00]
 │      49. Built-in Audio (HDMI 8)             [vol: 1.00]
 │      50. Built-in Audio (HDMI 9)             [vol: 1.00]
 │      51. Built-in Audio (HDMI 10)            [vol: 1.00]
 │      52. Built-in Audio (HDMI 11)            [vol: 1.00]
 │  
 ├─ Sink endpoints:
 │  
 ├─ Sources:
 │  *   40. Built-in Audio                      [vol: 1.00]
 │  
 ├─ Source endpoints:
 │  
 └─ Streams:
3 Likes

As Fedora is Redhat sponsored and as PulseAudio is a Redhat product, if you will. I’m curious why you would want to use PipeWire specifically on a Redhat branded distro? That’s kind of like going to McDonalds to eat a Whooper.

Just curious.

That was a decision made by Fedora.

2 Likes

I’d also add that GNOME defaults to Wayland on non-Nvidia systems, and screen sharing-type stuff only works properly on Wayland systems with PipeWire. So it’s sort of non-optional at this point if you’re using Wayland.

Thanks @gclimer! I wasn’t aware they made that decision but it is great to know. Suppose I should a bit more attention to the release notes!!

@illeatmyhat Hi there, went through this myself after Fedora’s 5.15 kernel update borked a lot of things for me. I’m wondering if you also don’t get any audio out of the headphone jack. It doesn’t show up as a separate target when I have a device connected, nor does the Built-In Audio target seem to swicth to anything. Thanks.

My headphone jack works fine.
Having said that, I didn’t upgrade my Fedora installation.
I simply reformatted because I didn’t want to deal with any extra mystery quirks.
Worked out for the better.
I’m running kernel 5.15.6-200.

Definitely a weird mystery quirk. I’m running the same kernel and I have the latest updates for all my audio packages (pulse, alsa, pipewire,wireplumber, etc.). My framework will not switch any output to the headphone jack, nor does it even appear as a device or a sink.

Edit:

I ended up switching from wireplumber back to pipwire-media-session. My headphone jack is now back up and running and it also seemed to fix an overall problem with volume on my system.

1 Like