You are not logged in.

#1 2021-08-29 05:53:26

andrewlin16
Member
Registered: 2021-08-28
Posts: 8

Pipewire/Pulse configuration starts off on boot

I have my Arch audio setup to use Pipewire + PulseAudio - I have pipewire, pipewire-media-session, pipewire-jack, and pipewire-pulse installed at version 0.3.34. Recently (starting like about a week ago), I've been getting this issue where on boot, both my audio controllers start turned off, and I have to manually go into pavucontrol and 1) set my sound card Profile to Analog Stereo Duplex, and 2) set the output device to use my Headphones port. Also, for some reason the profiles and output devices are reported to be unplugged/unavailable despite audio working once I set the profile and port. I would obviously like these to be set to the appropriate profile and port on boot instead of having to manually set them each time.

I have in my ~/.config/pipewire/media-session.d/default-profile

{
 "default.profile.alsa_card.pci-0000_0a_00.4": { "name": "output:analog-stereo+input:analog-stereo" }
}

And in default-routes:

{
 "default.route.alsa_card.pci-0000_08_00.1:profile:off": [ ],
 "default.route.alsa_card.usb-BLUE_MICROPHONE_Blue_Snowball_201306-00:profile:off": [ ],
 "default.route.alsa_card.pci-0000_0a_00.4:profile:off": [ ],
 "default.route.alsa_card.usb-BLUE_MICROPHONE_Blue_Snowball_201306-00:profile:input:mono-fallback": [ ],
 "default.route.alsa_card.pci-0000_0a_00.4:profile:output:analog-stereo+input:analog-stereo": [ "analog-output-headphones" ],
 "default.route.alsa_card.usb-BLUE_MICROPHONE_Blue_Snowball_201306-00:input:analog-input-mic": { "mute": false, "volumes": [ 1.000000 ], "channels": [ "MONO" ] },
 "default.route.alsa_card.pci-0000_0a_00.4:input:analog-input-linein": { "mute": false, "volumes": [ 0.001000, 0.001000 ], "channels": [ "FL", "FR" ] },
 "default.route.alsa_card.pci-0000_0a_00.4:output:analog-output-headphones": { "mute": false, "volumes": [ 0.008128, 0.008128 ], "channels": [ "FL", "FR" ] },
 "default.route.alsa_card.pci-0000_0a_00.4:profile:output:analog-stereo": [ ],
 "default.route.alsa_card.pci-0000_0a_00.4:profile:pro-audio": [ ],
 "default.route.alsa_card.pci-0000_0a_00.4:output:analog-output-lineout": { "mute": false, "volumes": [ 0.008000, 0.008000 ], "channels": [ "FL", "FR" ] },
 "default.route.alsa_card.pci-0000_0a_00.4:input:analog-input-front-mic": { "mute": false, "volumes": [ 0.316288, 0.316288 ], "channels": [ "FL", "FR" ] }
}

My audio setup consists of Starship/Matisse HD Audio Controller from my onboard sound, with headphones plugged into the front headphone jack on my computer, and a GP104 High Definition Audio Controller that I don't use that comes from my NVIDIA card for HDMI output. Also, I'm using Openbox/no DE. I don't think I have anything special in my /etc/pipewire/pipewire.conf or pipewire-pulse.conf but I can include those if it helps too.

Offline

#2 2021-08-29 10:25:47

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,768

Re: Pipewire/Pulse configuration starts off on boot

There have been a few default retention issues in pipewire that should™ be fixed by 0.3.34 . However if all profiles are declared as unavailable that is usually either up to the kernel not reporting information correctly or a setup mishap in alsa-card-profiles.

In any case if you want to enforce a certain profile during startup consider running the relevant pactl set-card-profile and pactl set-sink-port commands  in the pipewire-pulse startup context like described in: https://gitlab.freedesktop.org/pipewire … figuration

Offline

#3 2021-08-29 19:28:23

andrewlin16
Member
Registered: 2021-08-28
Posts: 8

Re: Pipewire/Pulse configuration starts off on boot

I've worked around the issue with the advice you gave around setting the card profile and sink port with pactl on the pipewire-pulse startup context configuration. I copied /etc/pipewire/pipewire-pulse.conf to ~/.config/pipewire/pipewire-pulse.conf and added this section:

context.exec = [
    { path = "/usr/bin/sh"  args = "/home/me/.config/pipewire/pipewire-pulse.sh" }
]

and then added this script as ~/.config/pipewire/pipewire-pulse.sh:

#!/bin/sh

sleep 1
pactl set-card-profile alsa_card.pci-0000_0a_00.4 output:analog-stereo+input:analog-stereo
pactl set-sink-port @DEFAULT_SINK@ analog-output-headphones

where "alsa_card.pci-0000_0a_00.4" is the name of the main card I'm using from `pactl list cards`, and "analog-output-headphones" is the name of the port I want to use from `pactl list sinks`. For some reason I had to add a sleep to the script since if the pactl commands ran too early, they would fail with "Failure: No such entity".

This feels like a workaround though, so I'm reluctant to really call this fixed for now, and I'd like to see if I can diagnose the root cause of the detection/retention issues. Is there a way to figure out why my card is reporting everything as unavailable or if there's an issue with my alsa-card-profiles setup?

Offline

Board footer

Powered by FluxBB