记一次UAC无法使用的bug
现象
最近遇到一个BUG,一个USB摄像头自带的MIC没法在Linux下使用。
记录下UAC相关排查过程
分析
查看驱动加载及节点
使用lsusb可以看到,该UAC的设备已经加载对应通用驱动snd-usb-audio:
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 4: Dev 4, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 6, If 0, Class=Mass Storage, Driver=usb-storage, 480M
|__ Port 2: Dev 8, If 0, Class=Wireless, Driver=btusb, 12M
|__ Port 2: Dev 8, If 1, Class=Wireless, Driver=btusb, 12M
|__ Port 4: Dev 10, If 0, Class=Vendor Specific Class, Driver=, 12M
|__ Port 2: Dev 22, If 0, Class=Hub, Driver=hub/7p, 480M
|__ Port 4: Dev 25, If 0, Class=Human Interface Device, Driver=, 12M
|__ Port 2: Dev 23, If 3, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 2: Dev 23, If 1, Class=Video, Driver=uvcvideo, 480M
|__ Port 2: Dev 23, If 2, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 2: Dev 23, If 0, Class=Video, Driver=uvcvideo, 480M
但是在/dev/snd/下未生成对应的采集节点,只有控制器节点
查看相关日志
从dmesg日志中可以看到有关UAC报错:
LOG
[ 591.789645] usb 1-2.2: 3:1 : invalid UAC_FORMAT_TYPE desc
......