/sys/bus/usb/ 在所有 Linux 发行版中具有相同的结构

/sys/bus/usb/ 在所有 Linux 发行版中具有相同的结构

我正在将 Mono 应用程序从 Windows 移植到 Linux。该应用程序与外部板通信。该板显示为三个虚拟串行端口。每个人都扮演着不同的角色。

该应用程序会自动检测这些端口。我可以转发 ie 中的结构和信息吗/sys/bus/usb/?它们在不同的 Linux 发行版中是否相同?

答案1

是的,您可以依赖在各个发行版中相同的结构/sys/bus/usb/,因为它仅依赖于内核,并且它足够成熟,因此在未来的内核版本中不太可能改变(但谁知道......)。

但是,这是解决您的问题的错误方法。正确的方法是udev在您的应用程序中包含自定义规则,并确保在安装过程中将此udev规则复制到正确的位置(通常/etc/udev/rules.d,但这可能取决于发行版。如有疑问,请让用户配置它)。然后,该udev规则可以使用唯一标识您的板的任何信息(例如供应商/设备 ID)将符号链接(类似于您在 中看到的符号链接/dev/disks)分配给三个串行设备。您的应用程序应该使用符号链接。

在紧要关头,您还可以使用计划用于 ryle 的 USB 树结构。请udevadm info --attribute-walk ...参阅 参考资料 获取适用于您的设备的属性列表。

相关内容