ubuntu 爲USB串口綁定固定的設備名

參考
下固定USB串口設備號(防止設備重複掛載、保證對外接設備信息穩定讀取)
linux下多個usb設備固定名稱方法
爲 USB設備綁定固定的設備名

最近,研究下了如何在linux綁定串口號,不然每次插拔後串口號可能變,就特別麻煩.
在csdn上參考了一些博客發現了兩種方式,但都有各自的弊端.

1. 串口信息查詢

查看有哪些串口

python -m serial.tools.list_ports 

查看串口信息,測試了發現沒有USB串口獨立的特徵信息, 唯一一個不變的3-3:1.0, 而這個實際上是代表電腦上這個USB口編號,也就是說只是連在這個USB端口上的串口都叫這個ID.

udevadm info /dev/ttyUSB0

在這裏插入圖片描述

2. 創建配置文件

創建規則, 文件名稱隨意.其中配置文件有兩種方式,各有缺點

2.1 綁定USB端口號

sudo vi /etc/udev/rules.d/com_port.rules

內容, KERNELS表示硬件的usb接口名,不同編號,表示不同的usb接口.
下面是添加修改了三個USB端口

ACTION=="add",KERNELS=="1-1.2:1.0",SUBSYSTEMS=="usb",MODE:="0777",SYMLINK+="imu"
ACTION=="add",KERNELS=="3-3:1.0",SUBSYSTEMS=="usb",MODE:="0777",SYMLINK+="lidar"
ACTION=="add",KERNELS=="3-2:1.0",SUBSYSTEMS=="usb",MODE:="0777",SYMLINK+="my_serial3"

查看變換後的情況

ll /dev | grep ttyUSB

在這裏插入圖片描述
缺點: 只要是插到這個USB端口的串口都會被改爲指定名.

2.2 綁定USB串口號

查看設備ID

lsusb

在這裏插入圖片描述
例如第四行的那個ID 10c4:ea60表示TTRS{idVendor}==10c4, ATTRS{idProduct}==ea60

sudo vi /etc/udev/rules.d/com_port.rules

內容, KERNELS表示硬件的usb主分類,.
下面是添加修改了兩個個USB端口

KERNEL==”ttyUSB*”, ATTRS{idVendor}==”10c4”, ATTRS{idProduct}==”ea60”, MODE:=”0666”, SYMLINK+=”lidar”
KERNEL==”ttyUSB*”, ATTRS{idVendor}==”1a86”, ATTRS{idProduct}==”7523”, MODE:=”0666”, SYMLINK+=”base”

缺點: 當兩個串口芯片相同時會出現ID完全相同的情況, 例如上圖的兩個串口芯片都爲
Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light
ID也都爲10c4:ea60.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章