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