Linux
/sys/bus/usb/ 在所有 Linux 發行版中具有相同的結構
我正在將單聲道應用程序從 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 ...
您的設備可用的屬性列表。