Ubuntu usb设备端口号绑定

1.将串口设备插入USB口,通过lsusb查看端口信息。例如:

ID 1a86:7523 表示usb设备的ID(这个ID由芯片制造商设置,可以唯一表示该设备)

1a86 usb_device_descriptor.idVendor
7523 usb_device_descriptor.idProduct

2.在/etc/udev/rules.d/下创建任意名称的规则配置文件,如:usb.rules。

KERNEL=="ttyUSB*", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", MODE:="0666", SYMLINK+="user_uart"
KERNEL=="ttyUSB*", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="0666", SYMLINK+="mcu_uart"

意思就是匹配sys中内核名为ttyUSB*的设备,属性匹配依据生产商编号idVendor和产品号idProduct, 设定读写权限为0777, 符号链接名为user_uart-----PL2303串口转USB, mcu_uart----CH340串口转USB。

idVendor和idProduct由 lsusb  -vvv 命令查看。

sudo udevadm control --reload-rules
sudo udevadm trigger

重新拔插两个串口设备

ls -l /dev |grep ttyUSB

 就可以看到/dev/user_uart指向/dev/ttyUSB0,  /dev/mcu_uart指向/dev/ttyUSB1. 这样以来,我只要在程序里打开/dev/user_uart或/dev/mcu_uart就可以一直准确的打开指定的串口设备了。

二、绑定硬件序列号,查找serial(适用于相同生产商生产的相同USB串口)

插入需要绑定的串口,或者 lsusb 查看需要绑定的串口名

1.udevadm info --attribute-walk --name=/dev/ttyUSB0

 我的硬件序列号:ATTRS{serial}=="FTSYWCXZ"这个号是唯一的

2.vim /etc/udev/rules.d/usb.rules

ATTRS{serial}=="FTSYWCXZ", MODE:="0777", GROUP:="dialout", SYMLINK+="usb_0"

3.ls -l /dev |grep ttyUSB

 4.可以通过/dev/usb_0打开串口设备

fangfa3

KERNELS=="1-2.4:1.0",MODE:="0777", GROUP:="dialout", SYMLINK+="my_slaver"
KERNELS=="1-2.2:1.0",MODE:="0777", GROUP:="dialout", SYMLINK+="my_uwb"
KERNELS=="1-2.3:1.0",MODE:="0777", GROUP:="dialout", SYMLINK+="my_imu"


参考链接:https://blog.csdn.net/qq_35386301/article/details/84566214

原文地址:https://www.cnblogs.com/long5683/p/11144420.html