web-dev-qa-db-ja.com

入力デバイスからの入力をデバッグする方法(/ dev / input / event *)

Imon-driverを使用しているIRレシーバーがあり、カーネルで動作させたいのですが。現在、リモートのキーの半分( image )は機能しますが、数字キーのようなすべての重要な考えは機能しません!

奇妙な考えは、カーネルキーマップモジュール(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)

19
LassePoulsen

私は同じリモートを使用していて、正しいキーコードを2.6.38-gentoo-r3カーネルに送信しています。キーコードをモジュールとしてコンパイルしなかったのは、おそらく個別のキーマップを選択できるようにする時間がないためです。それは全部か無かで、無数の無用のモジュールが私を雑然としています。代わりに、v4l-utilsがudevで処理できるようにします。

私が学んだいくつかのこと:

  • Ir-keytable -rの出力を確認します。リモートに 該当するすべてのキーコード がリストされているはずです。
  • キーテーブルを手動でロードします:ir-keytable -c -w bleh/keymaps/imon_pad、その後ir-keytable -rでテーブルが返されます
  • あなたは実際に欠陥のある受信機を持っているかもしれません、あなたは歴史について何も言及しません。 lirc-list に少なくとも1つのメッセージが表示されたことを覚えています。

どうだったか教えてください。

3
lkraav

あなたは役に立つかもしれませんxinput listおよびxinput test <device>

例えば、

 $ xinput list 
⎡仮想コアポインター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翻訳済みSet 2 keyboard id = 10 [スレーブキーボード(3)] 

キーボードを監視できます(xinput test 10)またはタッチパッド(xinput test 11、 あるいは - xinput test "SynPS/2 Synaptics TouchPad")すべての種類の入力イベントに対して、それらはコンソールにきれいに出力され、パラメータも抽出されて出力されます。

これはあなたの問題を解決しませんが、少なくともクラッタを解読することで少しは役立ちます。 cat /dev/input/event1生成します。

17
ulidtko