You are not logged in.

#1 2018-09-12 12:52:54

ingemar
Member
From: Sweden
Registered: 2010-01-04
Posts: 4

Lenovo USB-C dock + Audio Jack

I just got a USB-C dock at work, but I can't seem to figure out how to get the audio port to work. It's not detected as any sink in Pulseaudio.

The port shows up as a usb device, so I guess it's a matter of getting Pulseaudio and udev to treat it as a usb headset, but I don't know how to do that. What worries me is that there doesn't seem to be any 'cards' in the device tree in sysfs.

% udevadm info -q all /dev/bus/usb/001/048
P: /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.4/1-3.4.2/1-3.4.2.3
N: bus/usb/001/048
E: BUSNUM=001
E: DEVNAME=/dev/bus/usb/001/048
E: DEVNUM=048
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.4/1-3.4.2/1-3.4.2.3
E: DEVTYPE=usb_device
E: DRIVER=usb
E: ID_BUS=usb
E: ID_MODEL=ThinkPad_USB-C_Dock_Audio
E: ID_MODEL_ENC=ThinkPad\x20USB-C\x20Dock\x20Audio
E: ID_MODEL_ID=3063
E: ID_REVISION=0902
E: ID_SERIAL=Lenovo_ThinkPad_USB-C_Dock_Audio_000000000000
E: ID_SERIAL_SHORT=000000000000
E: ID_USB_INTERFACES=:010100:010200:030000:
E: ID_VENDOR=Lenovo
E: ID_VENDOR_ENC=Lenovo
E: ID_VENDOR_FROM_DATABASE=Lenovo
E: ID_VENDOR_ID=17ef
E: MAJOR=189
E: MINOR=47
E: PRODUCT=17ef/3063/902
E: SUBSYSTEM=usb
E: TYPE=0/0/0
E: USEC_INITIALIZED=561598399582

% tree /sys/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.4/1-3.4.2/1-3.4.2.3
/sys/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.4/1-3.4.2/1-3.4.2.3
├── 1-3.4.2.3:1.0
│   ├── authorized
│   ├── bAlternateSetting
│   ├── bInterfaceClass
│   ├── bInterfaceNumber
│   ├── bInterfaceProtocol
│   ├── bInterfaceSubClass
│   ├── bNumEndpoints
│   ├── modalias
│   ├── power
│   │   ├── async
│   │   ├── runtime_active_kids
│   │   ├── runtime_enabled
│   │   ├── runtime_status
│   │   └── runtime_usage
│   ├── subsystem -> ../../../../../../../../../bus/usb
│   ├── supports_autosuspend
│   └── uevent
├── 1-3.4.2.3:1.1
│   ├── authorized
│   ├── bAlternateSetting
│   ├── bInterfaceClass
│   ├── bInterfaceNumber
│   ├── bInterfaceProtocol
│   ├── bInterfaceSubClass
│   ├── bNumEndpoints
│   ├── modalias
│   ├── power
│   │   ├── async
│   │   ├── runtime_active_kids
│   │   ├── runtime_enabled
│   │   ├── runtime_status
│   │   └── runtime_usage
│   ├── subsystem -> ../../../../../../../../../bus/usb
│   ├── supports_autosuspend
│   └── uevent
├── 1-3.4.2.3:1.2
│   ├── authorized
│   ├── bAlternateSetting
│   ├── bInterfaceClass
│   ├── bInterfaceNumber
│   ├── bInterfaceProtocol
│   ├── bInterfaceSubClass
│   ├── bNumEndpoints
│   ├── modalias
│   ├── power
│   │   ├── async
│   │   ├── runtime_active_kids
│   │   ├── runtime_enabled
│   │   ├── runtime_status
│   │   └── runtime_usage
│   ├── subsystem -> ../../../../../../../../../bus/usb
│   ├── supports_autosuspend
│   └── uevent
├── 1-3.4.2.3:1.3
│   ├── authorized
│   ├── bAlternateSetting
│   ├── bInterfaceClass
│   ├── bInterfaceNumber
│   ├── bInterfaceProtocol
│   ├── bInterfaceSubClass
│   ├── bNumEndpoints
│   ├── ep_84
│   │   ├── bEndpointAddress
│   │   ├── bInterval
│   │   ├── bLength
│   │   ├── bmAttributes
│   │   ├── direction
│   │   ├── interval
│   │   ├── power
│   │   │   ├── async
│   │   │   ├── autosuspend_delay_ms
│   │   │   ├── control
│   │   │   ├── runtime_active_kids
│   │   │   ├── runtime_active_time
│   │   │   ├── runtime_enabled
│   │   │   ├── runtime_status
│   │   │   ├── runtime_suspended_time
│   │   │   └── runtime_usage
│   │   ├── type
│   │   ├── uevent
│   │   └── wMaxPacketSize
│   ├── modalias
│   ├── power
│   │   ├── async
│   │   ├── runtime_active_kids
│   │   ├── runtime_enabled
│   │   ├── runtime_status
│   │   └── runtime_usage
│   ├── subsystem -> ../../../../../../../../../bus/usb
│   ├── supports_autosuspend
│   └── uevent
├── authorized
├── avoid_reset_quirk
├── bConfigurationValue
├── bDeviceClass
├── bDeviceProtocol
├── bDeviceSubClass
├── bMaxPacketSize0
├── bMaxPower
├── bNumConfigurations
├── bNumInterfaces
├── bcdDevice
├── bmAttributes
├── busnum
├── configuration
├── descriptors
├── dev
├── devnum
├── devpath
├── devspec
├── driver -> ../../../../../../../../bus/usb/drivers/usb
├── ep_00
│   ├── bEndpointAddress
│   ├── bInterval
│   ├── bLength
│   ├── bmAttributes
│   ├── direction
│   ├── interval
│   ├── power
│   │   ├── async
│   │   ├── autosuspend_delay_ms
│   │   ├── control
│   │   ├── runtime_active_kids
│   │   ├── runtime_active_time
│   │   ├── runtime_enabled
│   │   ├── runtime_status
│   │   ├── runtime_suspended_time
│   │   └── runtime_usage
│   ├── type
│   ├── uevent
│   └── wMaxPacketSize
├── idProduct
├── idVendor
├── ltm_capable
├── manufacturer
├── maxchild
├── port -> ../1-3.4.2:1.0/1-3.4.2-port3
├── power
│   ├── active_duration
│   ├── async
│   ├── autosuspend
│   ├── autosuspend_delay_ms
│   ├── connected_duration
│   ├── control
│   ├── level
│   ├── persist
│   ├── runtime_active_kids
│   ├── runtime_active_time
│   ├── runtime_enabled
│   ├── runtime_status
│   ├── runtime_suspended_time
│   └── runtime_usage
├── product
├── quirks
├── removable
├── remove
├── serial
├── speed
├── subsystem -> ../../../../../../../../bus/usb
├── uevent
├── urbnum
└── version

I tried to set up a udev rule which upon detecting the device activates a pulseaudio configuration (such as force-speaker.conf), but it doesn't seem to help. There are already special pulseaudio configs set up for different usb/thunderbolt docks, so perhaps it's just a matter of getting the config right. But again, I'm not confident that it will help as it doesn't seem that the kernel associates any of the subdevices(?) of the "audio device" as an audio subsystem.

Any ideas?

Offline

Board footer

Powered by FluxBB