我们正在制造一个设备,它有8个串口.它运行在Monta Vista Pro5内核上.我们在C工作.
假设:设备连接到ttyUSB0,ttyUSB1和ttyUSB2.下一个设备连接到ttyUSB3,另一个设备连接到ttyUSB4.我怎么知道哪个设备连接到哪个端口?即ttyUSB0或ttyUSB1等.有没有办法直接查询设备并找到它所连接的端口.或者,在C中,打开ttyUSB0,以某种方式查询它并得到一些回复,它是什么设备?
一个相当复杂的方法:做一个统计,比如/ dev/ttyUSB0.获取设备编号.并在/ proc/bus/usb/devices中搜索并查找供应商ID或识别设备的内容.
或者:有没有办法为一个设备保留ttyUSB0,ttyUSB1和ttyUSB2,为其他设备保留ttyUSB3,等等什么时候插入?这样我就知道哪个设备连接到哪个端口.
请帮忙..... :)
提前致谢.努宾斯坦利
您可以使用udev规则仅为您的设备创建符号链接:
(这些规则在/etc/udev/rules.d/-name.rules中 - 请查看您的udev文档
KERNEL=="ttyUSB*", ATTRS{idVendor}=="<vendorid>", MODE="0666", SYMLINK+="mydev"
Run Code Online (Sandbox Code Playgroud)
您必须为设备指定供应商ID和/或产品ID.然后,在上面的示例中,这些设备将在/ dev/mydev中可用.
您还可以使用各种其他参数来创建适当的唯一符号链接供您使用.检查udev手册页.