ノートブックキーボードドライバ、Linuxのイベントハンドラ

ノートブックキーボードドライバ、Linuxのイベントハンドラ

キーボードドライバと対応するハンドラの位置を説明してください。

ドライバー:

ls /lib/modules/4.10.0-28-generic/kernel/drivers/input/mouseディスプレイマウス用のすべてのデバイスドライバ(マイコンピュータpsmouse.koで使用されている)は----->として提供されます。私にとっても、sudo rmmod psmouseタッチパッドはまだ動作していませんが、usbmouse動作しています。 (使用しているためusbmouse/usbhid

それでは、私のキーボードドライバはどこにありますかlsmodls /lib/modules/4.10.0-28-generic/kernel/drivers/input/keyboardlsmodリストに何もありませんか?

マネージャー:

転送cat /proc/bus/input/devices----->以下を提供します。

SynPS/2 Synatics Touchpad (Handlers : mouse0 event6) 
AT Translated Set 2 Keyboard (Handlers : sysrq,kbd,event4,leds)

転送cat /proc/bus/input/handlers----->以下を提供します。

rfkill,kbd,sysrq,mousedev,evdev,joydev,leds

しかし、mousedevハンドラを使用する代わりにmouse0。なぜこれが起こるのですか?mouse0で使用できます/dev/input/mouse0。なぜ同様のものを使用できないのですかkbd

注:アクティビティはで利用できますが、/dev/inputなぜできないのですかkbd

ベストアンサー1

簡単な概要:マウスとキーボードの処理は階層化されています。カーネルレベルで最も抽象的な階層は入力イベント階層/dev/input/event*です。を使用してイベントを読み取ることができますevtest。上記のドライバはX(evdevまたは低レベルドライバ)またはWayland()用のlibinputドライバです。以下は、USB HIDデバイス(usbmouse/ usbhid)、PS / 2キーボード(kbd)、およびPS / 2マウス()のmousedevドライバです。マウスデバイスには、さまざまなプロトコルとマウスの接続方法を備えた現在では使用されていないシリアルポートマウスドライバも含まれているため、やや複雑な動物園です。

/dev/input/mouse0~である装備PS/2レベルマウスイベントの場合の代わりmousedevカーネルモジュール処理してください、AFAIK。デバイス名が「Handler」の下にリストされている理由がわかりませんcat /proc/bus/input/devices。やや一貫性がありません。

デフォルトでは、PS / 2レベルのキーボードイベント用のデバイスはありませんが、正しいモジュールおよび/またはオプションを使用してデバイスを作成できます(通常は必要ではないため、参照する必要がありました)。

結論:何らかの理由で低レベルのプロトコル(PS / 2、シリアル、USB、HID...)を扱う必要がない場合は、そのままにしてください。デバイスを使用する/dev/input/event*か、X または Wayland 抽象化を使用します。

(純粋な好奇心ではない限り)実際に達成したいことに基づいて質問を編集できる場合は、より良い提案を提供できます。

おすすめ記事