LINUX绑定usb设备名称
起因:
USB转TTL串口通信模块,USB摄像头模块连接linux电脑时,其端口号一般是ttyUSB0,ttyUSB1,ttyUSB2…或video0,video1,video2…当我们有多个设备时,系统会依据插入的先后顺序生成端口号,但仅仅依靠插入的先后顺序来确定设备并不能满足我们的需求。当设备断连重新插入时,端口号可能会改变。如果设备有固定的端口号/名字,则会方便我们进行设备断连重启操作或者盲插操作。
解决过程
有一种解决方法便是将端口重映射到新的固定的名字。下面以一个USB转TTL串口通信模块为例进行实验。
1、使用lsusb
命令查看接入usb口的所有设备,找到USB转TTL串口通信模块的ID,即1a86:7523
。
2、将端口重映射到新的固定的名字
终端输入sudo vi /etc/udev/rules.d/rplidar.rules
命令后按INSERT键进入编辑模式,复制如下代码:
KERNEL=="ttyUSB*", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="0777", SYMLINK+="serialPort"
其中串口模块使用ttyUSB*
,摄像头模块使用video*
。
ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523"
为步骤1中查到的ID号。
MODE:="0777"
表示权限为可读可写。
SYMLINK+="serialPort"
则为自定义的固定名称。
输入完代码后,按住ESC键后,按:wq
+回车,保存并退出。
3、重新插拔串口模块,输入如下的指令
ls -l /dev |grep ttyUSB
可以看到已经成功映射到固定的名字了。
4、使用python进行应用
ser=serial.Serial("/dev/serialPort",9600,timeout=0.5)
参考教程
树莓派接多个USB摄像头,使用opencv打开指定的某一个摄像头
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)