- 获取设备信息
lsusb
# 记录设备的Vendor ID和Product ID(例如:ID 0403:6001)
# 获取详细属性(替换X和Y为实际设备号)
udevadm info -a /dev/ttyUSBX
结果一般如下
- 创建udev规则文件
sudo gedit /etc/udev/rules.d/usb-serial.rules
其中usb-serial.rules文件名可以自定义。
- 编写规则模板
# 设备1规则(示例:绑定到ttyUSB_CAMERA)
KERNEL=="ttyUSB*", SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", MODE="0666", SYMLINK+="ttyUSB_CAMERA"
# 设备2规则(示例:绑定到ttyUSB_SENSOR)
KERNEL=="ttyUSB*", SUBSYSTEMS=="usb", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", MODE="0666", SYMLINK+="ttyUSB_SENSOR"
SUBSYSTEMS=="usb"也是一个过滤条件。
KERNEL=="ttyUSB*"是正确的,表示无论是ttyUSB*,符合后续芯片型号的就可以被指向SYMLINK+="ttyUSB_SENSOR",但是如果给定了ttyUSB1或0,那就只有满足上述条件才能通过"ttyUSB_SENSOR"找到。
- 生效规则
sudo udevadm control --reload-rules
sudo udevadm trigger
查看设备名称更改状况
ls -l /dev |grep ttyUSB
参考资料
Ubuntu18.04 绑定USB串口设备ttyUSBx - 知乎
ubuntu下绑定USB设备的串口名称(KERNELS硬件端口号绑定)_ubuntu绑定usb端口并修改串口名称-CSDN博客
上述是通过识别目标usb设备芯片以及相关信息来固定串口,或者也可以通过pc端固定物理串口,可参考:
Linux系统固定USB串口设备名称 - 知乎