2016-10-07 14 views
3

私は自分のキーボードドライバをLinux用に作っています。だから、私はこれらの2つのリンクを渡って来た:usbkbd.catkbd.clinuxのキーボードドライバのソースコード

今私は ですが、これらのうちどれが現時点でキーボードを駆動する実際のコードであるのか混乱しています。私が見ているように、atkbd.cは非常にうまいですし、キーコードへのscancodeの変換 があります。だから私はよくわからないが、コードでなければならない。

atkbd.cがコードの場合は、他のコードは何ですか?

答えて

2

これは簡単に確認できます。 usbkbd.cを使ってみましょう。

対応kconfigを(http://lxr.free-electrons.com/source/drivers/hid/usbhid/Kconfig#L50)はこう述べています。ここ

Yと答えあなたはあなたのUSBキーボード用 汎用のHIDドライバを使用して を使用することを好むしたくないことが確実な場合にのみキーボードは限られたブートプロトコルモードで動作します。

これはほとんどあなたが望むものではありません。これは、 組み込みアプリケーションやシンプルなキーボードの場合に最も役立ちます。

私たちが探しているキーボードドライバではないようです。また、現在のカーネル設定で​​を確認してください。設定は/bootディレクトリにあるか、zcat /proc/config.gzを実行すると見つかります。​​が存在しない場合、あなたはそれを使用していません。 usbkbd.cがモジュールとしてビルドされている場合、実際にロードされているかどうかチェックする価値があります。 Makefile(http://lxr.free-electrons.com/source/drivers/hid/usbhid/Makefile#L10)は、ターゲットにusbkbdを与えます。 lsmodの出力でgreppingを実行してロードされているかどうかを確認できます。これとは対照的に

、atkbd.c用kconfigを(http://lxr.free-electrons.com/source/drivers/input/keyboard/Kconfig#L69は)はるかに可能性が高いようだ:

Yと答えここでは、標準ATまたはPS/2キーボードを使用する場合。別のタイプのキーボード(USB、ADB など)を使用していない限り、通常 が必要です。これは、 PS/2からシリアルコンバータ経由で接続されたATおよびPS/2キーボードでも機能します。確信がない場合は、Yと答えてください。

KEYBOARD_ATKBDのカーネル設定も確認してください。それがYであれば、それが使用されていることがわかります。それがMならlsmodの出力をatkbdにチェックしてください。

+0

答えに感謝...私は、uskb_kbdは 'M'で、atkbdは 'Y'であることに気付きました。私の現在のドライバはatkbdであることは明らかです。しかし、あなたは私の2番目の質問に答えなかった。その部分についても教えてください。 – paramvir

+0

他のコードでは、usbkbd.cを意味しますか? – bytefire

+0

そうです... usbkbd.cはどのような目的のためですか? – paramvir

関連する問題