[pulseaudio-discuss] Docking station headphone jack

Aura Kelloniemi kaura.dev at sange.fi
Sat Aug 22 14:33:35 UTC 2020


Hello people,

This is my first post on this mailing list. I am quite new to Pulseaudio as
well.

I am running pulseaudio 13.99.1-67-g414644 on my laptoop (Arch GNU/Linux
x86_64, linux 5.8.2). My soundcard is an Intel Corporation 5 Series/3400
Series Chipset High Definition Audio (rev 06).

When I connect my laptop to its docking station and attach the AUX cable to
the docking station's headphone jack, pulseaudio creates a null sink and
redirects all my sound to that. Here is the debug log (with no sound streams):

--- Cable plug ---
Plug dock:
D: [pulseaudio] module-alsa-card.c: Jack 'Dock Headphone Jack' is now plugged in
D: [pulseaudio] device-port.c: Setting port analog-output-speaker to status no
D: [pulseaudio] card.c: Setting card alsa_card.pci-0000_00_1b.0 profile output:analog-stereo to availability status no
D: [pulseaudio] core-subscribe.c: Dropped redundant event due to change event.
D: [pulseaudio] card.c: Setting card alsa_card.pci-0000_00_1b.0 profile output:analog-surround-40 to availability status no
D: [pulseaudio] core-subscribe.c: Dropped redundant event due to change event.
D: [pulseaudio] card.c: Setting card alsa_card.pci-0000_00_1b.0 profile output:analog-surround-40+input:analog-stereo to availability status no
D: [pulseaudio] core-subscribe.c: Dropped redundant event due to change event.
D: [pulseaudio] card.c: Setting card alsa_card.pci-0000_00_1b.0 profile output:analog-stereo+input:analog-stereo to availability status no
D: [pulseaudio] core-subscribe.c: Dropped redundant event due to change event.

--- Cable unplug ---
D: [pulseaudio] module-alsa-card.c: Jack 'Dock Headphone Jack' is now unplugged
D: [pulseaudio] device-port.c: Setting port analog-output-speaker to status unknown
D: [pulseaudio] card.c: Setting card alsa_card.pci-0000_00_1b.0 profile output:analog-stereo to availability status unknown
D: [pulseaudio] core-subscribe.c: Dropped redundant event due to change event.
D: [pulseaudio] card.c: Setting card alsa_card.pci-0000_00_1b.0 profile output:analog-surround-40 to availability status unknown
D: [pulseaudio] core-subscribe.c: Dropped redundant event due to change event.
D: [pulseaudio] card.c: Setting card alsa_card.pci-0000_00_1b.0 profile output:analog-surround-40+input:analog-stereo to availability status unknown
D: [pulseaudio] core-subscribe.c: Dropped redundant event due to change event.
D: [pulseaudio] card.c: Setting card alsa_card.pci-0000_00_1b.0 profile output:analog-stereo+input:analog-stereo to availability status unknown
D: [pulseaudio] core-subscribe.c: Dropped redundant event due to change event.
D: [pulseaudio] module-udev-detect.c: /dev/snd/controlC1 is accessible: yes
D: [pulseaudio] module-udev-detect.c: Resuming all sinks and sources of card alsa_card.pci-0000_01_00.1.
D: [pulseaudio] module-udev-detect.c: /dev/snd/controlC0 is accessible: yes
D: [pulseaudio] module-udev-detect.c: Resuming all sinks and sources of card alsa_card.pci-0000_00_1b.0.
D: [pulseaudio] module-udev-detect.c: /dev/snd/controlC1 is accessible: yes
D: [pulseaudio] module-udev-detect.c: Resuming all sinks and sources of card alsa_card.pci-0000_01_00.1.
D: [pulseaudio] module-udev-detect.c: /dev/snd/controlC0 is accessible: yes
D: [pulseaudio] module-udev-detect.c: Resuming all sinks and sources of card alsa_card.pci-0000_00_1b.0.
D: [pulseaudio] module-udev-detect.c: /dev/snd/controlC1 is accessible: yes
D: [pulseaudio] module-udev-detect.c: Resuming all sinks and sources of card alsa_card.pci-0000_01_00.1.
D: [pulseaudio] module-udev-detect.c: /dev/snd/controlC0 is accessible: yes
D: [pulseaudio] module-udev-detect.c: Resuming all sinks and sources of card alsa_card.pci-0000_00_1b.0.
D: [pulseaudio] module-udev-detect.c: /dev/snd/controlC1 is accessible: yes
D: [pulseaudio] module-udev-detect.c: Resuming all sinks and sources of card alsa_card.pci-0000_01_00.1.
D: [pulseaudio] module-udev-detect.c: /dev/snd/controlC0 is accessible: yes
D: [pulseaudio] module-udev-detect.c: Resuming all sinks and sources of card alsa_card.pci-0000_00_1b.0.

The sound streams will stay connected to the null sink even after unplugging,
as the interfaces' status is set to unknown, and the cards profile is set to
Off.

I found some bug reports from launchpad regarding similar issues, but I found
no solution. The problem seems to be that there is no configured path for
pulseaudio to route the sound as it does not understand the concept of docking
station headphones.

Now there are two things: First, I would like this behaviour fixed upstream,
so that other people with docking stations (similar to mine) would not need to
debug the issue for several hours.

Second, I would like to have my configuration to work on my system now, before
the next release. Is it possible to configure PulseAudio so that it works the
same way as pure ALSA setup on my system. I describe this way here:

- When headphones are connected to the laptop's headphone jack, laptop
  speakers are muted and audio is routed to the headphones. Volume is set
  according to the Speaker volume mixer control.

- When a cable is connected to the docking station's headphone jack, the
  laptop speaker is muted, and the audio is routed through the docking station
  jack. Audio volume is set according to the Headpphone mixer control.

- When a cable is connected both to the Docking station's headphone jack and
  the laptop's normal headphone jack, speakers are muted, and audio is routed
  through both headphone jacks – using Speaker volume for the laptop's jack
  and Headphone volume for the docking station's jack.

On my system (using ALSA) the mixer control "Loopback mixing" can be used to
dictate whether the laptop's headphone jack's output volume is controlled by
the Headphone or the Speaker setting. I cannot control speaker volume, laptop
headphone volume and docking station volume completely independently of each other.

There is a rationale for why I desire this behaviour: docking stations are
generally attached to an external sound system, and the Headphone mixer
control is often set to the maximum volume. On the other hand, when connecting
headphones to the laptop, volume needs to be significantly lower. Also, when
playing sound through the laptop speakers, volume cannot be very high, because
the speakers cannot output loud sound without distortion.

I would appreciate it a lot, if somebody could help me forward with this
issue. I attach output of "pactl list cards" just in case it is useful. Thanks
in advance!

-- 
Aura

-------------- next part --------------
Card #0
	Name: alsa_card.pci-0000_01_00.1
	Driver: module-alsa-card.c
	Owner Module: 5
	Properties:
		alsa.card = "1"
		alsa.card_name = "HDA ATI HDMI"
		alsa.long_card_name = "HDA ATI HDMI at 0xd4420000 irq 46"
		alsa.driver_name = "snd_hda_intel"
		device.bus_path = "pci-0000:01:00.1"
		sysfs.path = "/devices/pci0000:00/0000:00:03.0/0000:01:00.1/sound/card1"
		device.bus = "pci"
		device.vendor.id = "1002"
		device.vendor.name = "Advanced Micro Devices, Inc. [AMD/ATI]"
		device.product.id = "aa60"
		device.product.name = "Redwood HDMI Audio [Radeon HD 5000 Series]"
		device.string = "1"
		device.description = "Redwood HDMI Audio [Radeon HD 5000 Series]"
		module-udev-detect.discovered = "1"
		device.icon_name = "audio-card-pci"
	Profiles:
		output:hdmi-stereo: Digital Stereo (HDMI) Output (sinks: 1, sources: 0, priority: 5900, available: no)
		output:hdmi-surround: Digital Surround 5.1 (HDMI) Output (sinks: 1, sources: 0, priority: 800, available: no)
		output:hdmi-surround71: Digital Surround 7.1 (HDMI) Output (sinks: 1, sources: 0, priority: 800, available: no)
		off: Poissa (sinks: 0, sources: 0, priority: 0, available: yes)
	Active Profile: off
	Ports:
		hdmi-output-0: HDMI / DisplayPort (type: Unknown, priority: 5900, latency offset: 0 usec, available group: Legacy 1, not available)
			Properties:
				device.icon_name = "video-display"
			Part of profile(s): output:hdmi-stereo, output:hdmi-surround, output:hdmi-surround71

Card #1
	Name: alsa_card.pci-0000_00_1b.0
	Driver: module-alsa-card.c
	Owner Module: 6
	Properties:
		alsa.card = "0"
		alsa.card_name = "HDA Intel MID"
		alsa.long_card_name = "HDA Intel MID at 0xd4520000 irq 45"
		alsa.driver_name = "snd_hda_intel"
		device.bus_path = "pci-0000:00:1b.0"
		sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card0"
		device.bus = "pci"
		device.vendor.id = "8086"
		device.vendor.name = "Intel Corporation"
		device.product.id = "3b56"
		device.product.name = "5 Series/3400 Series Chipset High Definition Audio"
		device.form_factor = "internal"
		device.string = "0"
		device.description = "Sisäinen äänentoisto"
		module-udev-detect.discovered = "1"
		device.icon_name = "audio-card-pci"
	Profiles:
		input:analog-stereo: Analoginen stereo Input (sinks: 0, sources: 1, priority: 65, available: yes)
		output:analog-stereo: Analoginen stereo Output (sinks: 1, sources: 0, priority: 6500, available: yes)
		output:analog-stereo+input:analog-stereo: Analoginen stereo, molemmat suunnat (sinks: 1, sources: 1, priority: 6565, available: yes)
		output:analog-surround-40: Analoginen tilaääni 4.0 Output (sinks: 1, sources: 0, priority: 1200, available: no)
		output:analog-surround-40+input:analog-stereo: Analoginen tilaääni 4.0 Output + Analoginen stereo Input (sinks: 1, sources: 1, priority: 1265, available: no)
		off: Poissa (sinks: 0, sources: 0, priority: 0, available: yes)
	Active Profile: output:analog-stereo+input:analog-stereo
	Ports:
		analog-input-internal-mic: Internal Microphone (type: Mic, priority: 8900, latency offset: 0 usec, available group: Legacy 1)
			Properties:
				device.icon_name = "audio-input-microphone"
			Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:analog-surround-40+input:analog-stereo
		analog-input-mic: Microphone (type: Mic, priority: 8700, latency offset: 0 usec, available group: Legacy 1, not available)
			Properties:
				device.icon_name = "audio-input-microphone"
			Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:analog-surround-40+input:analog-stereo
		analog-input-linein: Line In (type: Line, priority: 8100, latency offset: 0 usec, available group: Legacy 1, not available)
			Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:analog-surround-40+input:analog-stereo
		analog-output-speaker: Speakers (type: Speaker, priority: 10000, latency offset: 0 usec, available group: Legacy 1, not available)
			Properties:
				device.icon_name = "audio-speakers"
			Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo, output:analog-surround-40, output:analog-surround-40+input:analog-stereo
		analog-output-headphones: Headphones (type: Headphones, priority: 9900, latency offset: 0 usec, available group: Legacy 1, available)
			Properties:
				device.icon_name = "audio-headphones"
			Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo


More information about the pulseaudio-discuss mailing list