Linux

/sys/bus/usb/ 在所有 Linux 發行版中具有相同的結構

  • August 19, 2018

我正在將單聲道應用程序從 Windows 移植到 Linux。該應用程序與外部板通信。該板顯示為三個虛擬串列埠。每個人都扮演著不同的角色。

該應用程序會自動檢測這些埠。我可以傳遞/sys/bus/usb/ie 中的結構和資訊,它們在不同的 Linux 發行版中是否相同?

是的,您可以依靠 in 的結構在/sys/bus/usb/各個發行版中保持相同,因為它只依賴於核心,而且它已經足夠成熟,因此在未來的核心版本中不太可能發生變化(但誰知道……)。

但是,這是解決問題的錯誤方法。正確的方法是在udev您的應用程序中包含自定義規則,並確保在安裝期間將此udev規則復製到正確的位置(通常/etc/udev/rules.d,但這可能取決於發行版。如有疑問,讓使用者配置它)。然後,該規則可以使用唯一標識您的板的任何資訊(例如供應商/設備 ID)udev將符號連結(類似於您在 中看到的那些)分配給三個串列設備。/dev/disks您的應用程序應該使用符號連結。

在緊要關頭,您還可以使用您計劃用於 ryle 的 USB 樹結構。請參閱udevadm info --attribute-walk ...您的設備可用的屬性列表。

引用自:https://unix.stackexchange.com/questions/463459