ROS知识(22)----USB口映射固定名字

如果有多个usb链接到电脑,如果插入的先后顺序不同,那么会导致对应的usb口也会不同,例如当只有一个激光的usb链接到电脑,其设备名字为/dev/ttyUSB0;当如果有底盘的usb以及激光的usb连到电脑时,如果先插入底盘的usb,再插入激光的usb底盘的usb,那么激光的usb对应的设备名字就变成了/dev/ttyUSB1。在实际中我们想激光设备对应识别出来的设备名字是不变的,比如我们想它一直是名字/dev/ttyLaser。为了做到这样的效果,我们需要编辑linux提供的规则文件,来完成这样的功能。具体的步骤如下:

a.编辑激光usb的规则

sudo vim /etc/udev/rules.d/laser-usb-serial.rules

b.输入内容

SUBSYSTEM=="tty", ATTRS{idVendor}=="2d31", ATTRS{idProduct}=="5874", SYMLINK+="ttyLaser", MODE:="0666",OWNER:="root"

关于SUBSYSTEM、idVendor、idProduct属性的性质可以通过一下的命令查找到:

lsusb

或者

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

请先插入激光的usb到电脑,然后执行以上的命令,注意 /dev/ttyUSBx 中的x表示对应的标识号,可以在/dev查找,例如可以输入人:ls /dev/ttyUSB 然后tab一下就能显示所有的设备名称

c.更新规则

sudo udevadm trigger

d.检查

如果一切顺利的话,会发现通过命令来检查:

ls -l /dev/ttyLaser  

 

详细的设置方法,请参考:How to bind USB device under a static name?

posted @ 2017-08-23 15:01  horsetail  阅读(665)  评论(0编辑  收藏  举报