Ubuntu – Default playback audio output on Xubuntu 13.10

13.10pulseaudiosoundupgradexubuntu

I recently upgraded from Xubuntu 13.04 to 13:10, and since then I have no sound when I start my PC, because it's being sent to the HDMI output (my TV). I want it to go to the Analogue output (my PC) like it used to on 13.04. I can change it using the pulse-audio Volume Control program, but my settings are lost after I reboot.

The pulse-audio Volume Control doesn't have my Analogue Output as a valid option in the Output Devices tab; it appears only after I select Analogue Stereo within the Configuration tab. I then choose it as my "fallback" device (which I think means default device?), but my changes are not saved between reboots.

After changing the output device to Analogue Stereo using the Configuration tab, I then have to change the output of the individual program using the Playback tab, since it uses the current default (HDMI).

I've tried setting my default audio device using pacmd, but it hasn't helped: my Analogue device does show up as the active sink when I run pacmd list-sinks, but it's not the selected device within the Volume Control (in the Configuration tab) so I don't get any sound unless I manually change it.

Does anyone know how I can preserve my sound settings between reboots?

===== EDIT =====

Here's the output of some pactl commands after I start my PC; the Analog Stereo source is missing:

$ pactl list sources short
0   alsa_input.usb-046d_08b2-01-U0x46d0x8b2.analog-mono module-alsa-card.c  s16le 1ch 44100Hz   SUSPENDED
1   alsa_output.pci-0000_00_1b.0.hdmi-stereo.monitor    module-alsa-card.c  s16le 2ch 44100Hz   SUSPENDED

$ pactl list sinks short
0   alsa_output.pci-0000_00_1b.0.hdmi-stereo    module-alsa-card.c  s16le 2ch 44100Hz   SUSPENDED

I then open the pulse-audio Volume Control and select the "Analog Stereo" item from the Configuration tab. Running the same commands again gives:

$ pactl list sources short
0   alsa_input.usb-046d_08b2-01-U0x46d0x8b2.analog-mono module-alsa-card.c    s16le 1ch 44100Hz IDLE
1   alsa_output.pci-0000_00_1b.0.hdmi-stereo.monitor    module-alsa-card.c  s16le 2ch 44100Hz   IDLE
2   alsa_output.pci-0000_00_1b.0.analog-stereo.monitor  module-alsa-card.c  s16le 2ch 44100Hz   IDLE

$ pactl list sinks short
0   alsa_output.pci-0000_00_1b.0.hdmi-stereo    module-alsa-card.c  s16le 2ch 44100Hz   IDLE
1   alsa_output.pci-0000_00_1b.0.analog-stereo  module-alsa-card.c  s16le 2ch 44100Hz   IDLE

The Analogue Stereo source is present and I can hear sound through my PC's speakers. But when I reboot my PC the settings are lost, and I can't find a way to restore them from command line.

Thanks.

Best Answer

I had the same problem. I'm not an expert but this is what worked for me.

For what I've understood the problem is that pulse is loading by default the hdmi profile of the sound card. That means that even if you set the default sink as alsa_output.pci-0000_00_1b.0.analog-stereo when pulse try to use that sink it can't find it.

The solution I've found is to manually configure pulse to make it load the desired profile when it starts. To achieve this you have to edit /etc/pulse/default.pa and at the end of the file add this three lines

set-card-profile alsa_card.pci-0000_00_1b.0 output:analog-stereo
set-default-sink alsa_output.pci-0000_00_1b.0.analog-stereo
set-default-source alsa_output.pci-0000_00_1b.0.analog-stereo.monitor

the first line set the desired card profile. In my case was output:analog-stereo, you can have a complete list of profile running :

pactl list cards

the second and third line sets the default output and input respectively.

Another thing you can do is add a configuration for alsa to use pulse. Look in your home directory for the .asoundrc file, if the file does not exists create it and write this inside:

pcm.pulse {
     type pulse
}
ctl.pulse {
     type pulse
}
pcm.!default {
     type pulse
}
ctl.!default {
     type pulse
}

then reboot.

Now you should have the audio coming from your pc speaker by default.

Hope this help.

Related Question