【自记录】ubuntu命令行下禁用指定声卡
设备上内置了一块声卡,出于某些原因我希望禁用他。
- 通过
arecord -l
可以查看到该设备
$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
- 查询声卡信息,因为当前只有这块声卡,所以只有一个
controlC0
。如果有多个,在没有热插拔的情况下,大概率是和card顺序对应的。
root@local:/dev/snd$ ll
total 0
drwxr-xr-x 4 root root 160 Jul 12 05:29 ./
drwxr-xr-x 16 root root 14140 Jul 12 05:29 ../
drwxr-xr-x 2 root root 60 Jul 12 05:29 by-id/
drwxr-xr-x 2 root root 60 Jul 12 05:29 by-path/
crw-rw---- 1 root audio 116, 0 Jul 12 05:29 controlC0
crw-rw---- 1 root audio 116, 24 Jul 12 05:29 pcmC0D0c
crw-rw---- 1 root audio 116, 16 Jul 12 05:29 pcmC0D0p
crw-rw---- 1 root audio 116, 33 Jul 12 05:29 timer
进入by-id
可以查看到升级设备的细节名称
root@local:/dev/snd$ cd by-id/
root@local:/dev/snd/by-id$ ll
total 0
drwxr-xr-x 2 root root 60 Jul 12 05:29 ./
drwxr-xr-x 4 root root 160 Jul 12 05:29 ../
lrwxrwxrwx 1 root root 12 Jul 12 05:29 usb-C-Media_Electronics_Inc._USB_PnP_Sound_Device-00 -> ../controlC0
- 使用
lsusb
可以看到该设备对应的vid和pid,这样就可以去禁用了
$ lsusb
……
Bus 001 Device 006: ID 0d8c:013c C-Media Electronics, Inc. CM108 Audio Controller
……
- 新增一个rules
vi /etc/udev/rules.d/90-disable-usb-audio.rules
内容如下:(需要根据lsusb返回的vid和pid修改对应值)
SUBSYSTEM=="usb", ATTR{idVendor}=="0d8c", ATTR{idProduct}=="013c", ATTR{authorized}="0"
- 生效udev规则,不需要重启
udevadm control --reload-rules
udevadm trigger
- 再次检查,确认声卡已消失。
$ arecord -l
arecord: device_list:274: no soundcards found...