树莓派USB端口绑定
在利用树莓派搭建移动机器人的时候,需要利用USB转串口实现树莓派和stm32单片机的通讯、树莓派与激光雷达的通讯,此外树莓派还需要通过USB连接RGB-D深度相机。然而linux是按照设备的插入顺序进行编号命名的,那么就会出现一个USB端口对应错乱的问题,导致程序与设备无法进行对应。幸运的是,我们可以通过使用设备的唯一识别码固定端口号。
一、查询设备ID
将设备插入树莓派usb的端口,运行:
lsusb
结果如下:
对设备分别进行插拔以对应设备的设备号。
二、修改文件
sudo vim /etc/udev/rules.d/99-com.rules
打开文件后在最后一行添加:
KERNEL=="ttyUSB*",ATTRS{idVendor}=="1a86",ATTRS{idProduct}=="7523", MODE:=“0777”, SYMLINK+="ttyUSB1" KERNEL=="ttyUSB*",ATTRS{idVendor}=="10c4",ATTRS{idProduct}=="ea60", MODE:=“0777”, SYMLINK+="ttyUSB0" KERNEL=="video*",ATTRS{idVendor}=="05e3",ATTRS{idProduct}=="0610", MODE:=“0777”, SYMLINK+="video0"
如果绑定的是串口设备,则KERNEL项写“ttyUSB*”,如果是摄像头设备则写“video*”,将32位ID按顺序写入后两项中,将预绑定的设备名称写入SYMLINK项中
三、重启设备
sudo /etc/init.d/udev restart
重启后,再次查看当前连接的摄像头设备和串口设备,可以看到新名称,无论之后如何插拔,只要识别到相同的设备ID,linux都会将其命名为刚刚设置的名称。
然后就可以通过/dev/ttyUSB0等来直接访问对应的设备