udev를 사용하여 USB 장치 유형 감지

udev를 사용하여 USB 장치 유형 감지

libudev시스템에서 USB 장치 연결을 감지하는 프로그램을 작성 중입니다 . 각 장치가 어떤 유형으로 연결되어 있는지 알고 싶습니다. udev가 USB 유형을 명확하게 명시하지 않는다고 생각합니다. 예를 들어 연결된 장치가 프린터, 웹캠 또는 키보드인지 알고 싶습니다. 어떻게 해야 하나요? 어떤 아이디어가 있나요?

답변1

USB 장치의 유형은 관련 USB 프로토콜 사양에 따라 값이 정의되는 bDeviceClass및 속성을 사용하여 식별됩니다.bDeviceSubClasshttps://www.usb.org/define-class-codes카테고리 코드 목록을 가져옵니다.

USB 장치에 여러 기능이 있는 경우 속성을 확인하여 개별 기능을 식별해야 할 수도 bInterfaceClass있습니다 bInterfaceSubClass.

클래스 코드가 "공급업체별"을 의미하는 로 판명되면 해당 장치가 무엇인지 확인하기 위해 실제 장치 모델(사용 및 속성) 0xff을 식별해야 할 가능성이 높습니다 .idProductidVendor

답변2

제 생각에는 udev가 USB 유형이 무엇인지 명확하게 밝히지 않은 것 같습니다.

udev는 기본적으로 커널이 USB 장치에 대해 알고 있는 모든 것을 공급업체, 제품 ID 및 카테고리와 같은 속성 형태로 보고합니다. 예를 들어보세요.이러한 예제 규칙자세한 내용을 보려면 USB 장치의 속성을 확인하세요.

키보드(HID) USB 장치 및 카메라와 같은 작업에는 이미 상당한 자동화가 진행되고 있으므로 무엇을 작성하든 기존 udev 규칙 및 커널 작업을 준수하는지 확인하세요.

관련 정보