如何通过 idVendor 和 idProduct 获取 USB 设备路径?

如何通过 idVendor 和 idProduct 获取 USB 设备路径?

现在我可以获得 USB 设备的 idVendor 和 idProduct。如何使用它们来获取其路径,如/dev/ttyACM0or /dev/ttyUSB0?下一个函数需要此路径而不是其 idVendor 和 idProduct。

注意:通过编码,而不是通过命令。

答案1

您通常会以相反的方式进行操作:udev为特定供应商/产品编写特定规则,创建可以在“下一个函数”中使用的已知符号链接。谷歌搜索很多教程,了解这样的规则是什么样子的。

或者,您编写应用程序时可以将设备的路径作为参数传递。

可以/sys/devices向后遍历设备路径并在每一步检查这是否是 USB 设备并且具有特定的供应商/产品。这就是例如udevadm info -a /dev/ttyUSB0所做的。您需要这样做,因为它不一定是 USB 设备,它可以是任何东西。

如果你要“通过编码,而不是通过命令”来做到这一点,请查看源代码udevadm并复制它所做的一切。这将是一项不平凡的工作,而且不能简化太多,所以我真的建议采取不同的做法。

相关内容