Sound on my Dell XPS 13 works (and always worked) fine when not plugged in to the docking station. Audio is routed to the built-in speakers by default and when headphones are plugged in, they are used. This also used to work when connected to a docking station. The docking station is a ThinkPad USB-C Dock Audio.
However, since last week Friday, neither headphones nor built-in speakers work anymore when the laptop is connected to the docking station.
When plugging in headphones, the system detects them and shows the dialog to select what device they are (headphones, headset, ...). I have verified that the correct device is selected in Gnome settings and that the volume is set correctly. I also can hear the short volume feedback on the headphones when changing volume.
The only thing that I can remember changing is: For the first time I plugged in a speaker to the 3.5mm jack of the docking station. That was on the day before I first noticed the problem. Since then it seems as if the audio is always routed to the docking station no matter what device I select. I can confirm this by connecting a speaker to the docking station. Sound is always played on that speaker no matter what device I select.
I don't know how to diagnose this problem. This is the output of a command that I found in similar questions:
> aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC3246 Analog [ALC3246 Analog]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 10: HDMI 4 [HDMI 4]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: Audio [ThinkPad USB-C Dock Audio], device 0: USB Audio [USB Audio]
Subdevices: 0/1
Subdevice #0: subdevice #0
With pacmd list-sinks
I see the following output:
2 sink(s) available.
* index: 1
name: <alsa_output.pci-0000_00_1f.3.analog-stereo>
driver: <module-alsa-card.c>
flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
state: SUSPENDED
suspend cause: IDLE
priority: 9039
volume: front-left: 30537 / 47% / -19.90 dB, front-right: 30537 / 47% / -19.90 dB
balance 0.00
base volume: 65536 / 100% / 0.00 dB
volume steps: 65537
muted: no
current latency: 0.00 ms
max request: 0 KiB
max rewind: 0 KiB
monitor source: 1
sample spec: s16le 2ch 44100Hz
channel map: front-left,front-right
Stereo
used by: 0
linked by: 0
configured latency: 0.00 ms; range is 0.50 .. 2000.00 ms
card: 0 <alsa_card.pci-0000_00_1f.3>
module: 20
properties:
alsa.resolution_bits = "16"
device.api = "alsa"
device.class = "sound"
alsa.class = "generic"
alsa.subclass = "generic-mix"
alsa.name = "ALC3246 Analog"
alsa.id = "ALC3246 Analog"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.device = "0"
alsa.card = "0"
alsa.card_name = "HDA Intel PCH"
alsa.long_card_name = "HDA Intel PCH at 0xdc328000 irq 131"
alsa.driver_name = "snd_hda_intel"
device.bus_path = "pci-0000:00:1f.3"
sysfs.path = "/devices/pci0000:00/0000:00:1f.3/sound/card0"
device.bus = "pci"
device.vendor.id = "8086"
device.vendor.name = "Intel Corporation"
device.product.id = "9d71"
device.product.name = "Sunrise Point-LP HD Audio"
device.form_factor = "internal"
device.string = "front:0"
device.buffering.buffer_size = "352800"
device.buffering.fragment_size = "176400"
device.access_mode = "mmap+timer"
device.profile.name = "analog-stereo"
device.profile.description = "Analog Stereo"
device.description = "Built-in Audio Analog Stereo"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card-pci"
ports:
analog-output-speaker: Speakers (priority 10000, latency offset 0 usec, available: unknown)
properties:
device.icon_name = "audio-speakers"
analog-output-headphones: Headphones (priority 9900, latency offset 0 usec, available: yes)
properties:
device.icon_name = "audio-headphones"
active port: <analog-output-headphones>
index: 2
name: <alsa_output.usb-Lenovo_ThinkPad_USB-C_Dock_Audio_000000000000-00.iec958-stereo>
driver: <module-alsa-card.c>
flags: HARDWARE DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
state: RUNNING
suspend cause: (none)
priority: 9048
volume: front-left: 61872 / 94% / -1.50 dB, front-right: 61872 / 94% / -1.50 dB
balance 0.00
base volume: 65536 / 100% / 0.00 dB
volume steps: 65537
muted: no
current latency: 34.06 ms
max request: 6 KiB
max rewind: 6 KiB
monitor source: 4
sample spec: s16le 2ch 44100Hz
channel map: front-left,front-right
Stereo
used by: 4
linked by: 5
configured latency: 36.00 ms; range is 36.00 .. 2000.00 ms
card: 2 <alsa_card.usb-Lenovo_ThinkPad_USB-C_Dock_Audio_000000000000-00>
module: 25
properties:
alsa.resolution_bits = "16"
device.api = "alsa"
device.class = "sound"
alsa.class = "generic"
alsa.subclass = "generic-mix"
alsa.name = "USB Audio"
alsa.id = "USB Audio"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.device = "0"
alsa.card = "2"
alsa.card_name = "ThinkPad USB-C Dock Audio"
alsa.long_card_name = "Lenovo ThinkPad USB-C Dock Audio at usb-0000:39:00.0-1.4.2.3, full speed"
alsa.driver_name = "snd_usb_audio"
device.bus_path = "pci-0000:39:00.0-usb-0:1.4.2.3:1.0"
sysfs.path = "/devices/pci0000:00/0000:00:1c.0/0000:01:00.0/0000:02:02.0/0000:39:00.0/usb3/3-1/3-1.4/3-1.4.2/3-1.4.2.3/3-1.4.2.3:1.0/sound/card2"
udev.id = "usb-Lenovo_ThinkPad_USB-C_Dock_Audio_000000000000-00"
device.bus = "usb"
device.vendor.id = "17ef"
device.vendor.name = "Lenovo"
device.product.id = "3063"
device.product.name = "ThinkPad USB-C Dock Audio"
device.serial = "Lenovo_ThinkPad_USB-C_Dock_Audio_000000000000"
device.string = "iec958:2"
device.buffering.buffer_size = "352800"
device.buffering.fragment_size = "176400"
device.access_mode = "mmap+timer"
device.profile.name = "iec958-stereo"
device.profile.description = "Digital Stereo (IEC958)"
device.description = "ThinkPad USB-C Dock Audio Digital Stereo (IEC958)"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card-usb"
ports:
iec958-stereo-output: Digital Output (S/PDIF) (priority 0, latency offset 0 usec, available: unknown)
properties:
active port: <iec958-stereo-output>
Is it significant that the sink with ID 1 that includes the internal speakers and the headphones lists used by: 0
?
I am happy to provide more information if necessary.
Edit: Temporarily moving one sink input
Inspired by this answer I was able to change the sink of a single input to play on the internal speakers again by running:
pacmd move-sink-input 610 1
(where 610
is from pacmd list-sink-inputs
and 1
is the index from the sink listed above).
However this is only works temporarily (I have no clue why it switches back) and only affects one of the inputs. I'd like to find a solution that let's me go back to my previous setup in which I can use the Gnome settings to switch what device audio is played on.
My question:
How can I debug and fix the wrong routing of audio and go back to the way it was before: I was able to select the audio device in the Gnome settings?