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ルールとカーネル操作に準拠していることを確認してください。

関連情報