evdevデバイスタイプのインポート

evdevデバイスタイプのインポート

Linuxユーザースペースからevdev / input_eventデバイス(マウスやキーボードなど)の種類を取得する方法は?

/proc/bus/input/handlersを読んだりリストしたりして列挙できることはわかっていますが、/sys/class/input/どのデバイスがマウスであるかキーボードであるかはわかりません。

/proc/bus/input/handlers同様の行は、H: Handlers=sysrq kbd event3 ledsこれが「kbd」が存在するキーボードであることを示すようですが、実際の文書を見つけることができません。

ベストアンサー1

カーネルは実際にはデバイスタイプの観点から推論しませんが、デバイスが生成できるイベントタイプの観点から多くを推論します(参照:イベントコード文書カーネルから)。

したがって、デバイスの種類を識別するには、いくつかの経験的な方法が必要です。多くのデバイスがキーイベントを生成できます。キーボードにはEV_KEYキーイベント()と繰り返しイベント()を生成する特殊性がありますEV_REP。私はマウスが関連イベント(EV_REL)を生成する唯一のデバイスだと思います。

デバイスは、evそのクラスディレクトリのファイルから生成できるイベントの種類を公開しますcapabilities。すべての偶数タイプには、1、20、2で定義された指定されたビットオフセットがあります/usr/include/linux/input-event-codes.h。指定された値でこのビットを検索して、対象のデバイスを見つけることができます。EV_KEYEV_REPEV_REL/sys/class/input/input*/capabilities/ev

おすすめ記事