当两个vid和pid一样的设备同时链接上ubuntu系统,需要修改在/etc/udev/rule.d目录下的配置文件
例如:
两个设备 1a86 7523,都是串口转usb工具,先用lsusb -vv 命令将两个usb挂载设备的详细信息显示出来,然后对比两个设备的这些属性,如下:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 9 Hub
bDeviceSubClass 0 Unused
bDeviceProtocol 1 Single TT
bMaxPacketSize0 64
idVendor 0x8087 Intel Corp.
idProduct 0x0024 Integrated Rate Matching Hub
bcdDevice 0.00
iManufacturer 0
iProduct 0
iSerial 0
bNumConfigurations 1
一般情况下,如果不是两个一模一样的设备,这些属性值都会有差异,然后选取差异属性在配置文件中增加,如下
KERNEL=="ttyUSB*", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", ATTRS{bcdDevice}=="0262", MODE:="0666", GROUP:="dialout", SYMLINK+="stm"
KERNEL=="ttyUSB*", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", ATTRS{bcdDevice}=="0254", MODE:="0666", GROUP:="dialout", SYMLINK+="battery"
最后通过SYMLINK链接成不同的设备,进而在程序中就可以区分出来。
如果两个设备一模一样,在lsusb -vv命令中,那么只能用绑定usb端口来区分
新增
KERNELS="x-x.x"
具体哪个端口,可以用命令
ls -l /sys/class/tty/ttyUSB*
其中就有类似"x-x.x"这样的端口,增加进入即可
不过每次这个设备都要插到这个usb端口上