You are not logged in.

#1 2026-08-10 14:32:51

bonsaiiv
Member
Registered: 2026-03-05
Posts: 2

audio sink not available when connected to dock

I am using a Lenovo ThinkPad with Intel CPU/Graphics/Audio.

If the Laptop is not connected to the dock, audio works (mostly [1]) and the output of `wpctl status` is:

[...]
Audio
 ├─ Devices:
 │      34. Core Ultra 200H/200V Series Processors HD Audio [alsa]
 │
 ├─ Sinks:
 │      55. Core Ultra 200H/200V Series Processors HD Audio HDMI / DisplayPort 1 Output [vol: 1.00]
 │      59. Core Ultra 200H/200V Series Processors HD Audio HDMI / DisplayPort 3 Output [vol: 1.00]
 │  *   60. Core Ultra 200H/200V Series Processors HD Audio Speaker [vol: 0.25]
 │      61. Core Ultra 200H/200V Series Processors HD Audio HDMI / DisplayPort 2 Output [vol: 1.00]
 │
 ├─ Sources:
 │      58. Core Ultra 200H/200V Series Processors HD Audio Stereo Microphone [vol: 1.00]
 │  *   97. Core Ultra 200H/200V Series Processors HD Audio Digital Microphone [vol: 1.00]
 │
 ├─ Filters:
 │
 └─ Streams:

Video
 ├─ Devices:
 │      46. Integrated RGB Camera               [v4l2]
 │      47. Integrated RGB Camera               [v4l2]
 │      48. Integrated RGB Camera               [v4l2]
 │      49. Integrated RGB Camera               [v4l2]
 │
 ├─ Sinks:
 │
 ├─ Sources:
 │  *   79. Integrated RGB Camera (V4L2)
 │      81. Integrated RGB Camera (V4L2)
 │
 ├─ Filters:
 │
 └─ Streams:

Settings
 └─ Default Configured Devices:
         0. Audio/Sink    alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Headphones__sink

After plugging in the Laptop to the dock, audio stops working and the output of `wpctl status` is:

[...]
Audio
 ├─ Devices:
 │      34. Core Ultra 200H/200V Series Processors HD Audio [alsa]
 │      56. ThinkPad USB-C Dock Gen2 USB Audio  [alsa]
 │
 ├─ Sinks:
 │      54. Core Ultra 200H/200V Series Processors HD Audio HDMI / DisplayPort 1 Output [vol: 1.00]
 │      57. Core Ultra 200H/200V Series Processors HD Audio HDMI / DisplayPort 2 Output [vol: 1.00]
 │      58. Core Ultra 200H/200V Series Processors HD Audio Headphones [vol: 1.00]
 │      97. Core Ultra 200H/200V Series Processors HD Audio HDMI / DisplayPort 3 Output [vol: 1.00]
 │  *  109. ThinkPad USB-C Dock Gen2 USB Audio Analog Stereo [vol: 0.50]
 │
 ├─ Sources:
 │      53. Core Ultra 200H/200V Series Processors HD Audio Digital Microphone [vol: 1.00]
 │      63. Core Ultra 200H/200V Series Processors HD Audio Stereo Microphone [vol: 1.00]
 │  *   95. ThinkPad USB-C Dock Gen2 USB Audio Mono [vol: 1.00]
 │
 ├─ Filters:
 │
 └─ Streams:

Video
 ├─ Devices:
 │      46. Integrated RGB Camera               [v4l2]
 │      47. Integrated RGB Camera               [v4l2]
 │      48. Integrated RGB Camera               [v4l2]
 │      49. Integrated RGB Camera               [v4l2]
 │
 ├─ Sinks:
 │
 ├─ Sources:
 │  *   79. Integrated RGB Camera (V4L2)
 │      81. Integrated RGB Camera (V4L2)
 │
 ├─ Filters:
 │
 └─ Streams:

Settings
 └─ Default Configured Devices:
         0. Audio/Sink    alsa_output.usb-Lenovo_ThinkPad_USB-C_Dock_Gen2_USB_Audio_000000000000-00.analog-stereo

I have sof-firmware installed.

I suspect, that it is not playing audio, because there is no speaker connected to the dock. However i don't understand why i can't swap back to the internal speakers.

I have tried to disable the dock using an also monitor rule in "/usr/share/wireplumber/wireplumber.conf.d/alsa-dock.conf":

monitor.alsa.rules = [
  {
    matches = [
      {
        node.name = "~alsa_output.usb-Lenovo_ThinkPad_USB-C_Dock_Gen2_USB_Audio_000000000000-00.analog-stereo"
      }
    ]
    actions = {
      update-props = {
	device.disable = true
      }
    }
  }
]

I am not sure whether this syntax is correct or it is the right approach. It did not work.

[1] Mostly working, because sometimes i cant change the volume for a while.

Last edited by bonsaiiv (2026-08-10 14:43:04)

Offline

#2 2026-08-10 19:25:55

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 25,342

Re: audio sink not available when connected to dock

What makes you think that you can't switch back to the integrated card? Everything get's detected as distinct sinks, so a simple

wpctl set-default 58 #Assuming your second output, double check with info

should work, does it not?

As for the disable rule, you are making two mistakes that could lead to this,

  1. you shouldn't populate /usr/share with user configs, those are usually reserved for the system, use something in /etc.

  2. You are matching on the node but try to disable the device, while they are not in the same context anymore, you'd rather do

    monitor.alsa.rules = [
      {
        matches = [
          {
            device.name = "alsa_card.usb-Lenovo_ThinkPad_USB-C_Dock_Gen2_USB_Audio_000000000000-00"
          }
        ]
        actions = {
          update-props = {
    	device.disable = true
          }
        }
      }
    ]

    or so

See https://wiki.archlinux.org/title/WirePl … evice/node as well.

Offline

#3 2026-08-11 08:56:56

bonsaiiv
Member
Registered: 2026-03-05
Posts: 2

Re: audio sink not available when connected to dock

V1del wrote:

What makes you think that you can't switch back to the integrated card? Everything get's detected as distinct sinks, so a simple

wpctl set-default 58 #Assuming your second output, double check with info

should work, does it not?

If you look closely, there is a difference in the list of detected sinks for the internal card, before and after the dock is plugged in. The node

60. Core Ultra 200H/200V Series Processors HD Audio Speaker

is not listed as sink after i plug in my dock. Instead the headphone-sink is detected. I tried to change to the headphone-sink of the internal card (which has the id 58, that you suggested). This had no effect, possibly because there are no headphones connected.

PS: After looking again closely, i now understand that the default device changed, but it had no impact on the device in use. I changed the default to the speaker, but the dock is still in use. However your suggestion worked for the microphone:

[...]
Audio
 ├─ Devices:
 │      52. Core Ultra 200H/200V Series Processors HD Audio [alsa]
 │      67. ThinkPad USB-C Dock Gen2 USB Audio  [alsa]
 │
 ├─ Sinks:
 │      48. Core Ultra 200H/200V Series Processors HD Audio HDMI / DisplayPort 2 Output [vol: 1.00]
 │      51. Core Ultra 200H/200V Series Processors HD Audio HDMI / DisplayPort 3 Output [vol: 1.00]
 │      53. Core Ultra 200H/200V Series Processors HD Audio HDMI / DisplayPort 1 Output [vol: 1.00]
 │  *   55. ThinkPad USB-C Dock Gen2 USB Audio Analog Stereo [vol: 0.50]
 │      66. Core Ultra 200H/200V Series Processors HD Audio Headphones [vol: 1.00]
 │
 ├─ Sources:
 │  *   56. Core Ultra 200H/200V Series Processors HD Audio Digital Microphone [vol: 1.00]
 │      76. ThinkPad USB-C Dock Gen2 USB Audio Mono [vol: 1.00]
 │      80. Core Ultra 200H/200V Series Processors HD Audio Stereo Microphone [vol: 1.00]
 │
 ├─ Filters:
 │
 └─ Streams:

Video
 ├─ Devices:
 │      68. Integrated RGB Camera               [v4l2]
 │      69. Integrated RGB Camera               [v4l2]
 │      72. Integrated RGB Camera               [v4l2]
 │      82. Integrated RGB Camera               [v4l2]
 │
 ├─ Sinks:
 │
 ├─ Sources:
 │      36. Integrated RGB Camera (V4L2)
 │  *   38. Integrated RGB Camera (V4L2)
 │
 ├─ Filters:
 │
 └─ Streams:

Settings
 └─ Default Configured Devices:
         0. Audio/Sink    alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Speaker__sink
         1. Audio/Source  alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Mic1__source
V1del wrote:

As for the disable rule, you are making two mistakes that could lead to this,

  1. you shouldn't populate /usr/share with user configs, those are usually reserved for the system, use something in /etc.

  2. You are matching on the node but try to disable the device, while they are not in the same context anymore, you'd rather do [...]

See https://wiki.archlinux.org/title/WirePl … evice/node as well.

Thanks for the hint. I misunderstood the documentation of wireplumber and thought "wireplumber.conf.d/" needed to be next to the "wireplumber.conf", that is in use.

Is there a way to reload wireplumber, that does not require a reboot?
How can i check whether the configuration actually applies?

I moved the config to ".config/..." and changed it to match the device.
I tried to reload it with

systemctl restart --user wireplumber

and by restarting but it seems to have no effect.

New config:

monitor.alsa.rules = [
  {
    matches = [
      {
        device.name = "alsa_card.usb-Lenovo_ThinkPad_USB-C_Dock_Gen2_USB_Audio_000000000000-00"
      }
    ]
    actions = {
      update-props = {
        device.disable = true
      }
    }
  }
]

Last edited by bonsaiiv (2026-08-11 08:57:59)

Offline

Board footer

Powered by FluxBB