私はimonドライバを使用する赤外線レシーバを持っていて、それがカーネルで動作するようにしたいと思います。今リモコンのボタンの半分(ビデオ)は動作しますが、数字キーなどの非常に重要なアイデアは機能しません!
奇妙な考えは、カーネルキーマッピングモジュール(rc-imon-pad)が正しいようですが、実際には使用されていないようです。これは、モジュールなしで同じキーが機能するためです。
imonをロードすると、rc-imon-padモジュールが常にロードされているようで、キーコードがキャッシュされていると思われるので、rc-imon-padを削除しても違いはありません。
これを行うと、迷子になったり、cat /dev/input/event5
どのir-keytable -t
キーを押してもデータがあるため、ドライバはボタンを登録しますが、間違ったキーコードに変換されるようです。
私のカーネルはNattyのUbuntuストックカーネルです(Linux xbmc 2.6.37-11-generic #25-Ubuntu SMP Tue Dec 21 23:42:56 UTC 2010 x86_64 GNU/Linux)
答え1
便利xinput list
ですxinput test <device>
。
例えば、
$x 入力リスト ⎡ 仮想コアポインタ id=2 [メインポインタ(3)] ⎜ ↳ 仮想コア XTEST ポインタ ID=4 [ポインタ (2) から] ⎜ ↳ SynPS/2 Synaptics TouchPad id=11 [ポインタ(2)から] ⎣ 仮想コアキーボード id=3 [基本キーボード(2)] ↳仮想コアXTESTキーボードID = 5 [キーボード(3)から] ↳ 電源ボタン ID=6 [キーボード(3)から] ↳ビデオバスID=7 [キーボード(3)から] ↳ 節電ボタン ID=8 [キーボード(3)から] ↳ ASUSノートパソコン追加ボタン ID=9 [キーボード(3)から] ↳ AT Translated Set 2 キーボード ID=10 [キーボード(3)から]
マイキーボード(xinput test 10
)またはタッチパッド()を監視できますxinput test 11
。xinput test "SynPS/2 Synaptics TouchPad"
)さまざまな入力イベントの場合、コンソールに見事に印刷され、引数が抽出されて印刷されます。
これは問題を解決しませんが、少なくとも次のようなcat /dev/input/event1
混乱を解読するのに役立ちます。
編集する(コメントの@alphanumから):
10年前、私の答えは正しくありませんでした...申し訳ありません。このクイックダイアグラムをお楽しみください。
┌─────────────────────┐ ┌─────────────────┐ ┌──────────────┐ ┌──────────────────┐
│ │ HID events │ │ xinput events │ │ │ │
│ HID/input device ├───────────►│ Device-specific ├──────────────►│ the kernel ├───►│ Userspace (apps) │
│ (e.g. USB keyboard) │ ▲ │ driver │ ▲ │ │ │ │
└─────────────────────┘ │ └─────────────────┘ │ └──────────────┘ └──────────────────┘
│ │
evtest /dev/input/XX xinput test <xinput id>
2つのポイントを表示:
- あなたが得る結果
xinput test
は「xinput-unified」です。つまり、デバイスドライバによって処理されます。これは、ユーザー空間アプリケーションが表示するものと似ています。 - あなたが得る結果
evtest /dev/input/XX
はより「原始的」であり、xinput形式に変換されませんでした。これは、HID デバイスが見るものと似ています。
実際のHIDデバイスを構築するのか、アプリケーションを構築するのかによって、デバッグに使用するかどうかをevtest
選択できます。xinput test
2つを比較すると、デバイスドライバの問題を解決するのに役立ちます。
答え2
私は同じリモコンを持っており、正しいキーコードを2.6.38-gentoo-r3カーネルに送ります。まだ個々のキーマップを選択する時間がなかったので、キーコードをモジュールにコンパイルしていません。全部または専務です。私は数え切れないほど多くの役に立たないモジュールが私を乱雑にするのが好きではありません。代わりに、v4l-utilsがudevを使用して処理するようにしました。
私はいくつかを学びました:
- ir-keytable -r の出力を確認するとリストが表示されます。該当するすべてのキーコードあなたのリモコンに。
- キーテーブルを手動でロードします。 ir-keytable -c -w bleh/keymaps/imon_pad、次に ir-keytable -r がテーブルを返す必要があります。
- 実際には受信機に欠陥があるかもしれませんが、記録に言及していません。少なくとも1つのメッセージを見たことがあります。lirc リスト彼は箱を返し、新しい箱を買うと問題が解決したと言った。
どのように進むか教えてください。