USBレシーバーに接続可能な古い赤外線リモコンが見つかりました。私のLinuxコンピュータ(Mint LMDEカーネル3.2.0-4-amd64)に接続しました。lsusb
「Zydacron HIDリモコン」と識別されます。
動作します...ほとんど...ボリュームを変更したり、メディアプレーヤーを起動/停止したり、プレイリストからトラックを選択したりできます。
ただし、一部のキーは応答しないようです(設定されていません)。
- すべてのキーを設定する方法は?
- "lirc"をインストールする必要がありますか?
ベストアンサー1
だから私はLIRC(IMHO)のない「より良い」解決策を見つけたので、この問題に戻ります!
私が言ったように、USBレシーバーを初めて接続したとき、追加のソフトウェアや設定なしでリモコンのほぼすべてのボタンが機能しました。
(ここだけでなく)さまざまな提案に基づいて、私が最も使用しているソフトウェアについて見つけたLIRCとプラグインをインストールしました。
少しの難しさの終わりに、コンピュータはスキャンコードを受け取り、翻訳されてLIRCを設定しました。その後、「Totem」を起動してLIRCプラグインを有効にしましたが...何も機能しませんでした! :-(以前に動作していたキーでさえありません。
BansheeやVLCも同様です!
ただし、アプリを閉じるかLIRCプラグインを無効にすると、キーが再び機能し、音量を設定し、mp3やビデオなどを起動、停止、一時停止することができます。
私が理解したのは、LIRCにリモコンを認識させるだけでは十分ではありません。使用したいプログラムごとに設定ファイルを作成する必要があります...LIRCなしで動作するキーも同じです。奇妙に聞こえます...すべてのプラグインが許可するLIRCタスクを見つけるのは非常に難しいようですが、一部のソフトウェア(Bansheeなど)は、LIRCセックスなしですでに提供するよりも多くの可能性を提供していないという事実は言うまでもありません。
だから検索してみると...
まず、2.6.36カーネルからLIRCドライバが統合されていることを確認しました。これがLIRCをすぐに設定するときに「devinput」ドライバを使用する理由です。
このバージョン以降、すべてのリモコンが外部キーボードとして認識されます!これはまた、ほとんどのキーが基本的に機能する理由を説明します。したがって、キーボードなので、私たちがしなければならないのは、機能しないキーを別のコード/タスクに「再マッピング」することだけです。以下の方法:
まず「lsusb」を実行し、リモコンを識別します。
Bus 006 Device 002: ID 13ec:0006 Zydacron HID Remote Control
IDを書き留めてください。13ec:0006、これは便利です。
これで、/dev/input/by-idの内容が長い形式で表示されます。
ls -l /dev/input/by-id/
lrwxrwxrwx 1 root root 10 Apr 15 19:27 usb-13ec_0006-event-kbd -> ../event10
IDとそれに関連するイベントで正しい行を見つけることができます!これで、この情報を使用してリモートで読み取ろうとします。
sudo /lib/udev/keymap -i input/event10
リモコンのキーを押すと、スキャンコードと現在接続されているキーコードが表示されます。
scan code: 0xC00CD key code: playpause
scan code: 0x70028 key code: enter
scan code: 0x7002A key code: backspace
scan code: 0x7001E key code: 1
scan code: 0x70022 key code: 5
一部のキーは、ウィンドウマネージャ(私の場合はGnome3)によって認識されないキーコードを返すことがあります。またはキーコードが正しくありません。私の場合は、キー番号をキーボード(ベルギーキーボード)に再マップし、特殊キー(オーディオ、ビデオ、DVD...)を一部の未使用ファンクションキーに再マップする必要がありました。
それでは、キーマップファイルを作成しましょう。どんな名前でも使えます。私の場合、「zydacron」と命名しました。
sudo vi /lib/udev/keymaps/zydacron
このフォルダにはすでに複数のファイルがあります。フォーマットはとても簡単です。
<scan code> <keycode> <# comment eventually>
例:
0x70027 kp0
0x7001E kp1
0x7001F kp2
0xC0047 f13 # music
0xC0049 f14 # photo
0xC004A f15 # video
0xC00CD playpause # Play/Pause
再マップする必要があるキーのみを配置できます。このページで見つけることができますすべてのキーコードの公式リスト。繰り返しますが、これはウィンドウマネージャがこのリストのすべてのキーコードをサポートしているわけではなく、確実に知るためにテストする必要があります。
ファイルが完成したら、次のコマンドを使用してテストできます。
sudo /lib/udev/keymap input/event10 /lib/udev/keymaps/zydacron
問題が解決しない場合は、別のキーコードを試してください。その後、マッピングを再実行してください。
すべてのことが思い通りになれば、私たちはそれを永久に作ります。 /lib/udev/rules.d/95-keymap.rules ファイルを編集します。
sudo vi /lib/udev/rules.d/95-keymap.rules
ファイルに入れた後tag="keyboard_usbcheck"しかし前にGOTO="キーボードの終わり"次の行を追加します。
ENV{ID_VENDOR_ID}=="13ec", ENV{ID_MODEL_ID}=="0006", RUN+="keymap $name zydacron"
以下で見つけたIDの2つの部分で、ベンダーIDとモデルIDを識別できます。LSSB、そして私のファイル名。自分の値に調整してください。
udev プロセスを再起動します。
sudo service udev restart
(またはコンピュータを再起動すると)操作が完了します。
これで、受信機を接続するたびにどのUSBポートがオンになっているか、システムが提供するイベント番号に関係なくマッピングが自動的に行われます。
ヒント:一方のキーは「tab」に、もう一方のキーは「F10」にマップしました。これは、Bansheeの子ウィンドウを「ジャンプ」してメインメニューを開くのに非常に便利です。