Usb
使用 udev 檢測 USB 設備類型
我正在編寫一個程序
libudev
來檢測系統上的 USB 設備連接。我想知道連接的每個設備的類型是什麼。我認為 udev 並沒有明確說明 USB 的類型是什麼,例如我想知道連接的設備是列印機還是網路攝像頭或鍵盤。我怎樣才能做到這一點?任何想法?
任何 USB 設備的類型都使用
bDeviceClass
和bDeviceSubClass
屬性標識,其值由相關 USB 協議規範定義:請參閱https://www.usb.org/defined-class-codes以獲取類程式碼列表。如果 USB 設備具有多種功能,您可能還需要檢查
bInterfaceClass
和bInterfaceSubClass
屬性,以辨識各個功能。如果類程式碼是
0xff
,這意味著“特定於供應商”,您很可能需要辨識實際的設備模型(使用idProduct
和idVendor
屬性)來確定設備是什麼。