Linux 绑定USB设备端口

  • 1 根据设备ID绑定
  • 2 根据电脑USB硬件端口绑定,只要插入该USB端口即为设定设备名

1 根据设备ID绑定

方法特点:按照ID绑定的话不需要固定USB接口,它是根据设备自身的ID进行绑定,但是如果有多个设备的串口使用同一款串口芯片的话,会出现紊乱

查看需要绑定的设备的idVendoridpProduct,例如我要绑定一个rplidar的激光雷达

$ lsusb


新建一个规则文件:

$ sudo gedit /etc/udev/rules.d/com_rplidar.rules

自定义打开文件写入自定义规则。这里最好新建一个文件,不要覆盖以前的文件了。如果是相同设备还需要额外的辨别参数也可以添加额外的参数。我们只取前面的数值10c4ea60,,后面的描述不要。

KERNEL=="ttyUSB*" , ATTRS{idVendor}=="10c4",ATTRS{idProduct}=="ea60",MODE:="0777" ,SYMLINK+="ttyRplidar"

然后使其作用:

$ sudo udevadm trigger

查看是否成功

$ ls -l /dev/ttyRplidar
lrwxrwxrwx 1 root root 7 Nov 12 22:22 /dev/ttyRplidar -> ttyUSB0

或者

ls /dev/tty*


如图,可以看到新增了一个设备,正是我们在规则文件中设置的别名。

如果不行的话先检测规则文件的格式有没有错误,接着将USB拔了再重插。

还有其他额外的设备需要则加一行,方法一样。

2 根据电脑USB硬件端口绑定,只要插入该USB端口即为设定设备名

方法特点:按照USB硬件ID绑定的话必须固定接口对应的设备,因为它只根据电脑自身的USB硬件地址确定,但是它可以解决设备使用同一款串口芯片导致ID相同的问题

有时候我们两个串口设备使用了痛苦的USB芯片,例如激光雷达和机械臂使用了同款的USB芯片,在终端中输入

$ lsusb

会发现两者的USB端口的VID和PID是相同的(10c4:ea60),所以开启了机械臂后,激光雷达启动时会指向到机械臂的端口。

将USB设备的接入的端口进行名称绑定,拔出或关闭USB设备后,在端口中输入

$ ls /dev

再插入或打开USB设备,输入

$ ls /dev

找到USB设备的名称(确定当前各个设备的串口名字,如机械臂是ttyUSB1,激光雷达是ttyUSB0),然后输入

$ udevadm info --attribute-walk --name=/dev/ttyUSB1

可以看到

...
looking at device '/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.4/1-2.4.4/1-2.4.4:1.0/ttyUSB1/tty/ttyUSB1':KERNEL=="ttyUSB1"SUBSYSTEM=="tty"DRIVER==""looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/ 1-2/1-2.4/1-2.4.4/1-2.4.4:1.0/ttyUSB1':KERNELS=="ttyUSB1"SUBSYSTEMS=="usb-serial"DRIVERS=="cp210x"ATTRS{port_number}=="0"looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/ 1-2/1-2.4/1-2.4.4/1-2.4.4:1.0':KERNELS=="1-2.4.4:1.0"SUBSYSTEMS=="usb"DRIVERS=="cp210x"ATTRS{authorized}=="1"ATTRS{bAlternateSetting}==" 0"ATTRS{bInterfaceClass}=="ff"ATTRS{bInterfaceNumber}=="00"ATTRS{bInterfaceProtocol}=="00"ATTRS{bInterfaceSubClass}=="00"ATTRS{bNumEndpoints}=="02"ATTRS{interface}=="CP2102 USB to UART Bridge Controller"ATTRS{supports_autosuspend}=="1"...

可以得知该设备现在使用的端口号为“1-2.4.4:1.0”,接下来开始编写绑定规则

$ sudo gedit /etc/udev/rules.d/ttyUSBLink.rules

在文件中添加

ACTION=="add",KERNELS=="1-2.4.4:1.0",SUBSYSTEMS=="usb",MODE:="0777", SYMLINK+="rplidar"

保存文件并重启PC,在终端中输入

$ ls -l /dev |grep ttyUSB

查看是否成功修改

注意:因为是绑定固定的端口,所以usb的接口不能随意更换位置,考虑以后在HUB上标注各个位置插的设备。

Linux 绑定USB设备端口相关推荐

  1. Ubuntu USB设备端口号绑定

    Ubuntu USB设备端口号绑定 1. 需求和来源 2. 查看端口信息 3. 规则配置 4. 单端口情况 5. 多端口情况 6. 相同ID情况 1. 需求和来源 ROS机器人开发过程中,需要通过US ...

  2. Ubuntu系统 USB设备端口绑定

    前言 在Ubuntu中,有时使用多个USB设备时,出现USB端口号混乱: 比如:A设备本来对应 /dev/ttyUSB0,B设备对应 /dev/ttyUSB1: 发现重启系统后,A设备本来对应 /de ...

  3. ubuntu绑定usb设备以及摄像头端口地址(编号)

    在使用串口设备和usb摄像头时,经常会出现设备号变动的情况,特别是在多个同种设备时,设备与设备路径不是唯一对应,每次拔插的结果可能都不一样.所有需要绑定usb设备固定路径,以满足需求. 1, udev ...

  4. linux下usb设备节点名不固定,解决Linux下USB设备节点ttyUSB名不固定的问题,生成固定USB转串口设备节点...

    解决Linux下USB设备节点ttyUSB名不固定的问题,生成固定USB转串口设备节点 2018-09-19 http://blog.sina.com.cn/s/blog_8b58097f0102wx ...

  5. usb设备检测linux,Linux下USB设备检测全教程(转)

    Linux下USB设备检测全教程(转)[@more@] USB设备检测也是通过/proc目录下的USB文件系统进行的.为了使一个USB设备能够正常工作,必须要现在系统中插入USB桥接器模块.在检测开始 ...

  6. linux配置usb主从_一种Linux下USB设备主从切换的实现

    龙源期刊网 http://www.qikan.com.cn 一种 Linux 下 USB 设备主从切换的实现 作者:侯景昆 来源:<电子技术与软件工程> 2013 年第 22 期 摘 要 ...

  7. Linux 系统USB设备检测

    Linux 系统USB设备检测 Linux下查看USB设备命令: 参考链接: https://wenku.baidu.com/view/a33c0d616aeae009581b6bd97f192279 ...

  8. 嵌入式linux查看usb设备驱动程序,嵌入式Linux下USB驱动程序的设计

    嵌入式Linux下USB驱动程序的设计 usb概念:  USB(Universal Serial Bus)即通用串行总线,是一种全新的双向同步传输的支持热插拔的数据传输总线,其目的是为了提供一种兼容不 ...

  9. linux查看usb设备文件,linux – 确定USB设备文件路径

    So which device file is used for USB? How can i indentify it? 您在/ sys /后面看到的主要是有关设备的配置/信息. / dev / b ...

最新文章

  1. 何为Web App,何为Hybird App
  2. Modular_exponentiation模幂运算
  3. 信息系统项目管理知识--软件工程
  4. 32 六角oled驱动_Alienware下半年开售55英寸OLED显示器,4K120Hz、95%DCI-P3
  5. Lambda架构概述
  6. C#easyui combotree 设置节点折叠
  7. ue4插件导入导出_Blender到UE4的无缝衔接
  8. c语言怎么产生随机字母,菜鸟求助,写一个随机输出26个英文字母的程序
  9. Hyperledger Fabric介绍
  10. Nuget没办法使用了。
  11. 每日算法系列【LeetCode 128】最长连续序列
  12. MATLAB 2015B中文安装激活破解方法图文教程
  13. Notepad++实现verilog语法检查
  14. SQL 表操作小技巧(1)
  15. 机器学习可解释性之shap模块的使用——基础用法(一)
  16. python如何提交作业_python分析作业提交情况
  17. 鸿蒙系统生态建设怎样了,鸿蒙系统正式发布-华为OS生态建设开始布局
  18. 源码奉送:宠物小精灵图鉴
  19. AE基础教程第一阶段——18首选项设置
  20. 支付宝手机网站支付实战踩坑

热门文章

  1. PHP编程基础与实例教程pdf
  2. java程序设计 计算器_java 编程一(计算器)
  3. [转]python各模块的学习
  4. Altera timing analyzer理解
  5. 011 索引的优点,特大型的表考虑分区技术
  6. Accumulation Degree题解
  7. HTML淘宝购物车页面的实现
  8. C++的灵魂核心-类
  9. 校外活动计算机社团策划书,大学生社团文化节策划书总方案范文
  10. 近年多示例论文阅读(2): Multiple instance learning: A survey of problem characteristics and applications