ubuntu18.04固定USB设备号,解决接入多个USB设备时跳串口和USB设备接入顺序不一样设备号就不一样的问题

这个教程在Ubuntu18.04上实现了对USB设备的绑定。

查看USB设备ID

lsusb

结果如下图所示

我们要查看设备的ID,如果现在看不出哪个是我们需要的设备的ID,我们可以通过拔掉设备运行一次这个命令,再把设备插入再运行一次,进行对比可以确定出我们拔插的设备的ID号,这里我通过拔插知道我要固定的设备是下图中箭头指出来的那个。

以我这里为例,我已经确定我的设备ID是 1a86:7523

查看设备的详细信息

输入以下命令查看设备的详细信息

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

这里要注意,命令中的“/dev/ttyUSB0”是系统识别出来的设备名称,以串口为例输入以下命令可以查看USB所有串口名字

ls /dev/ttyUSB*

 

如果是摄像头设备则是下面这个命令。

ls /dev/video*

确定设备名称后,我们继续运行命令“ udevadm info --attribute-walk --name=/dev/ttyUSB0”,结果如下图

这时会出现很多个“looking at parent device” ,它下面有很多ATTRS开头的信息,在出现的这么多个“looking at parent device”中我们找到ATTRS{idVendor}=="1a86"和ATTRS{idProduct}=="7523"这两个值和我们刚刚找到的设备ID一致的那一部分, 在这两个参数的上面一行有一个ATTRS{devpath}=="2.4",这个值是就是区分其他设备的,ID号有出现一样的情况,这就是为什么会跳设备号的原因。

进行绑定

在终端输入以下命令

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

此时打开了一个文本,往文本里输入以下内容

KERNEL=="ttyUSB*", ATTRS{idVendor}=="1a86",
 ATTRS{idProduct}=="7523", MODE:="0777", 
ATTRS{devpath}=="2.4", SYMLINK+="IMU_Serial"

其中 “KERNEL”参数是搜索系统设备名前缀为ttyUSB的设备,ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523"是ID参数,就是上面我们找出来的,ATTRS{devpath}=="2.4"就是我们刚刚确认要绑定的唯一特性, SYMLINK+="IMU_Serial"参数是重新映射的名字。

保存

文件编辑完之后进行保存关闭。

输入以下命令让设置生效

sudo udevadm control --reload-rules
sudo udevadm trigger

 验证

在终端输入指令

ls /dev/

就会发现刚刚设置新映射的名字那个串口可以在终端中找到。

到这里就绑定成功了。我们在调用这个USB设备的时候通过“/dev/IMU_Serial”去索引就可以找到我们绑定的设备,可以解决直接索引设备号多设备接入时接入顺序不同,设备名字就不一样的问题和跳设备号的问题。

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值