树莓派设备端口号绑定
project做到最近,遇到了一个尴尬的问题:一台树莓派接了多个设备,例如多个arduino、串口转USB和无线键鼠等等。物理上USB不够,直接将一个USB hub就可以了。
不过这就出现了问题:Linux是按照插入顺序对设备进行编号的,例如ttyUSB0,ttyUSB1或者ttyACM0,ttyACM1等等,那么每次重新开机的时候容易出现设备不对应编号的情况,这就无法在代码中固定设备的端口号,因此我们必须想办法将设备的端口号固定。笔者总结了网上相关的资料,发现大家写的还是比较详细了,因此就简单地总结一下具体用法,原理就不再赘述了。
1. 将单台设备端口号固定 【适用情况】:
适用于某个设备插上之后,它的ID是唯一的,与其他设备不同。
【查询ID】:
lsusb
应该会看到若干USB设备的信息:
Bus 001 Device 010: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light
Bus 001 Device 005: ID 0bda:5411 Realtek Semiconductor Corp.
Bus 001 Device 008: ID 24ae:1100
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
以Device010为例:其ID是:10c4:ea60
【修改文件】:
sudo nano /etc/udev/rules.d/99-com.rules
在后面添加:
KERNEL=="ttyUSB*",ATTRS{idVendor}=="10c4",ATTRS{idProduct}=="ea60", MODE:=“0777”, SYMLINK+="device0"
其中device0是我们将其重命名的设备,之后我们直接访问device0即可。换句话说,之后开机无论ID为10c4:ea60的设备被分配为ttyUSB0或者ttyUSB1,始终都可以通过device0来访问它。
【重启插拔】:
文件最后一行添加之后,执行:
sudo /etc/init.d/udev restart
并且插拔USB设备
【再次访问】:
再次访问:
ls -l /dev |grep ttyUSB
就能看到重定向的信息啦,我们之后在代码里直接访问/dev/device0即可访问该设备。
2. 多台相同ID的设备端口号固定 【适用情况】:
多台相同设备,例如多台arduino,它们被分配为ttyACM0和ttyACM1,通过第一个方法我们发现它们的ID都一样。
【查询】:
ls -l /sys/class/tty
这时应该会打印出来例如:
ttyACM0'/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.1/1-2.1:1.0/':
ttyACM1'/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.2/1-2.2:1.0':
我们发现最后的一位1-2.1和1-2.2是有区别的
【修改文件】:
sudo nano /etc/udev/rules.d/99-com.rules
在后面添加:
KERNEL=="ttyACM*",KERNELS=="1-2.1",MODE:=“0777”, SYMLINK+="device1"
KERNEL=="ttyACM*",KERNELS=="1-2.1",MODE:=“0777”, SYMLINK+="device2"
其中device1和device2是我们将两个arduino重命名的设备,道理同上。
【重启插拔】:
文件最后一行添加之后,执行:
sudo /etc/init.d/udev restart
并且插拔USB设备
【再次访问】:
再次访问:
ls -l /dev |grep ttyACM
就能看到重定向的信息啦,我们之后在代码里直接访问/dev/device1和/dev/device2即可访问该设备。
3. 参考资料 【树莓派设备端口号绑定】[1]http://blog.csdn.net/qq_33662195/article/details/71185063
[2]http://blog.csdn.net/zuoxi4621/article/details/75173536
推荐阅读
- 丰盛派创始人安裘密语录
- Android|Android install 多个设备时指定设备
- 【文魁大脑实用记忆第五期】贤派张丽琼第8次案例一地理记忆有汽泡图
- 韵达基于云原生的业务中台建设 | 实战派
- 浙派名师-丁圆伟
- Python+树莓派制作IoT(物联网)门控设备
- 【思维导图实战派】刻意练习计划“遇见……”|【思维导图实战派】刻意练习计划“遇见……” 1/300 人教版数学五下第三单元《正方体和长方体的认识》
- 青岛机情派iPhone5s指纹识别修复
- 单片机|Arduino、arm、树莓派、单片机四者有什么不同()
- 江湖情——你我的碧落(2)