24

How do I set the default profile that is used after each boot, in PulseAudio?

When I boot, sound doesn't work. If I open the PulseAudio Volume Control app, and go to the Configuration pane and select "Analog Surround 4.0 Output" from the Profile drop-down menu, then sound works again. However this only lasts until the next reboot.

How do I configure the system to use that profile in the future after reboots?

40

Add the following to /etc/pulse/default.pa:

set-card-profile <cardindex> <profilename>

How do we figure out what to use as cardindex and as profilename? Here's one way. Configure the card so everything is working. The cardindex will usually be 0, but you can find it by running pacmd list-cards and looking at the line index: .... To find the profilename, use

pacmd list-cards | grep 'active profile'

The name of the current profile should appear in the output. Remove the angle brackets (the < and >).

You can test your configuration by running

pactl set-card-profile <cardindex> <profilename>

from the command line to see if it sets the profile correctly, then add it to /etc/pulse/default.pa.

Since the index name is dynamic (it can change your PCI device index if you boot with a USB audio device plugged in), you could use <symbolic-name> instead of <index> (if you run pacmd list-cards, the symbolic name is right below the index). Also, the command might fail if the device is missing when starting pulseaudio so it might worth to wrap the command with an .ifexists clause:

.ifexists <symbolic-name>
pactl set-card-profile <symbolic-name> <profilename>
.endif
4
  • If you have multiple audio devices whose ordering is not fixed, you can also use udev rules to configure a Pulseaudio profile for a device. This allows identifying the device by vendor/product IDs, serial number, or by other means. The rule element for setting the Pulseaudio profile is ENV{PULSE_PROFILE_SET}="<profilename>"
    – telcoM
    Aug 15 '18 at 6:37
  • 1
    suggested an edit: index is dynamic, and in my case changes if I boot with the USB audio plugged in.
    – maxadamo
    Jun 25 '19 at 9:01
  • 2
    This however does not work when a device is hotplugged (i.e.: a bluetooth headset for instance). Running pactl... works, but setting the same command into /etc/pulse/default.pa does not have any effect... I'm trying to set headset_head_unit profile by default instead of a2dp_sink for my headset unit. Feb 15 at 8:43
  • One might also want to check /etc/pulse/daemon.conf file to see if /etc/pulse/default.pa is used as default config and uncomment it if it's not and then reload pulseaudio with pulseaudio -k. May 26 at 16:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.