Ubuntu系统 USB设备端口绑定

   日期:2021-04-16     浏览:149    评论:0    
核心提示:前言在Ubuntu中,有时使用多个USB设备时,出现USB端口号混乱;比如:A设备本来对应/dev/ttyUSB0,B设备对应/dev/ttyUSB1;发现重启系统后,A设备本来对应/dev/ttyUSB1,B设备对应/dev/ttyUSB0,两个设备的分配的端口号不固定的情况。Linux是按照插入顺序对设备进行编号的;这种不稳定因素,使得编写驱动时麻烦,于是本文参考网上的方法,绑定各个USB设备的端口号。一、查看USB设备端口信息将串口设备插入USB口,通过lsusb查看...

前言

在Ubuntu中,有时使用多个USB设备时,出现USB端口号混乱;

比如:A设备本来对应 /dev/ttyUSB0,B设备对应 /dev/ttyUSB1;

发现重启系统后,A设备本来对应 /dev/ttyUSB1,B设备对应 /dev/ttyUSB0,两个设备的分配的端口号不固定的情况。

Linux是按照插入顺序对设备进行编号的;这种不稳定因素,使得编写驱动时麻烦,于是本文参考了linux社区和博客文章的方法,绑定各个USB设备的端口号。

 

一、查看USB设备端口信息

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

接入了两个新的USB设备,如下图红色框中的信息;一个是FT232(ID是0403:6001)、一个是HL-340(ID是1a86:7523);

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

0403  usb_device_descriptor.idVendor
6001  usb_device_descriptor.idProduct

 

二、创建配置文件

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

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

 编辑信息:

KERNEL=="ttyUSB*", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", MODE:="0777", SYMLINK+="gnss"
KERNEL=="ttyUSB*", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="0777", SYMLINK+="ultrasound_serial"

匹配sys中内核名为ttyUSB*的设备,属性匹配依据生产商编号idVendor和产品号idProduct, 设定读写权限为0777,;

符号链接名为gnss 对应FT232 USB, ultrasound_serial 对应 HL-340串口USB。

 

三、查看绑定情况

idVendor和idProduct由 lsusb  -vvv 命令查看

sudo udevadm control --reload-rules
sudo udevadm trigger

重新拔插两个串口设备

ls -l /dev |grep ttyUSB

/dev/ultrasound_serial 指向/dev/ttyUSB1;在程序里打开/dev/ultrasound_serial 就可以一直准确的打开指定的串口设备了;可以使用了。

 

四、使用绑定后的USB设备

例如使用ultrasound_serial 设备;打开串口,python代码:

u_serial  = serial.Serial('/dev/ultrasound_serial', 9600)  

直接使用/dev/ultrasound_serial ,相当于使用/dev/ttyUSB1

 

 

参考

1)https://www.cnblogs.com/long5683/p/11144420.html

2)https://blog.csdn.net/qq_32618327/article/details/103937933

 

 

 

 

 

 

 

 

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服