客户机器需要接usb的声卡设备,但是开机usb声卡设备的节点会发生变化这个时候需要通过修改驱动来固定设备的注册节点。
首先找到usb声卡注册驱动kernel/sound/usb/card.c ,在usb_audio_probe函数里面打印出声卡注册时的pid和vid。
- @@ -495,7 +502,11 @@ static int usb_audio_probe(struct usb_interface *intf,
- struct usb_host_interface *alts;
- int ifnum;
- u32 id;
- -
- +
- + printk("==== idVendor = %d | idProduct = %d \n", dev->descriptor.idVendor, dev->descriptor.idProduct);
然后在snd_usb_audio_create函数里面判断pid和vid,然后以id来固定节点。
- @@ -369,9 +369,16 @@ static int snd_usb_audio_create(struct usb_interface *intf,
- dev_err(&dev->dev, "unknown device speed %d\n", snd_usb_get_speed(dev));
- return -ENXIO;
- }
- + if(dev->descriptor.idVendor == 0x0483 && dev->descriptor.idProduct == 0x5758){
- + printk("=