最近、Mythbuntu 12.04を使用してMythTVボックスを再構築し、新しいハードウェア(Ivy Bridge)を活用しています。
以前のビルドでは、lirc
を使用してリモートを管理しました。つまり、キーコードのマッピング->キー押下->アプリケーションキー。それをすべて学ぶのはかなりの旅でしたが、私はそれがすべてどのように機能するかにかなり満足しました。
私が持っているもの:
今の状態
これを接続すると、「機能する」だけです。Ubuntuがネイティブに使用し、some ボタンを押してから神話に到達するまで。たとえば、リモートから次のボタンを送信できます。 Ctrl-Alt-A (Ubuntuは興味がないと思います)、それをMythfrontendにトラップしますが、リモートの Play ボタンはUbuntuによってキャッチされます(メディアプレーヤーがロードされていないため、大きな円に線が表示されます)。
lircが現在カーネルにマージされているためだと理解していますが、それが気に入っています。
これまでにやったこと:
lsusb
を使用してデバイスを見つけました:
$ lsusb
Bus 001 Device 004: ID 073a:2230 Chaplet Systems, Inc. infrared dongle for remote
イベントデバイス番号が見つかりました:
$ cat /proc/bus/input/devices
I: Bus=0003 Vendor=073a Product=2230 Version=0110
N: Name="HID 073a:2230"
P: Phys=usb-0000:00:1a.0-1.2/input0
S: Sysfs=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/input/input5
U: Uniq=
H: Handlers=sysrq kbd mouse1 event5 js0
B: PROP=0
B: EV=10001f
B: KEY=4c37fff072ff32d bf54445600000000 ffffffffff 30c100b17c007 ffa67bfad951dfff febeffdfffefffff fffffffffffffffe
B: REL=343
B: ABS=100030000
B: MSC=10
evtest
で入力をテストしました(私は押しました Play):
$ Sudo evtest /dev/input/event5
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x73a product 0x2230 version 0x110
Input device name: "HID 073a:2230"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 1 (KEY_ESC)
Event code 2 (KEY_1)
Event code 3 (KEY_2)
Event code 4 (KEY_3)
Event code 5 (KEY_4)
Event code 6 (KEY_5)
Event code 7 (KEY_6)
<------------snipped lots of 'Event code' lines------------>
Testing ... (interrupt to exit)
Event: time 1336435683.230656, -------------- SYN_REPORT ------------
Event: time 1336435683.246648, type 4 (EV_MSC), code 4 (MSC_SCAN), value c00cd
Event: time 1336435683.246652, type 1 (EV_KEY), code 164 (KEY_PLAYPAUSE), value 0
Event: time 1336435683.246655, -------------- SYN_REPORT ------------
再びshowkey
をテストしました。 Play キー:
$ Sudo showkey -s
kb mode was RAW
[ if you are trying this under X, it might not work
since the X server is also reading /dev/console ]
press any key (program terminates 10s after last keypress)...
0xe0 0x22 0xe0 0xa2
私が欲しいもの:
私の推測:setkeycodes
を使用する必要があると思いますが、これを設定するのに十分な情報を見つけることができませんでした。
どんな助けも大歓迎です!
私はちょうど新しいカーネル内ライブラリを発見する同様の道をたどっていました。私にとっては、irリモコンが今や単なるキーボードであることに気付いた瞬間でした。
Showkey/evtestの代替として、Sudo ir-keytable -tを実行して、リモートボタンの押下を検出できます。私はそれがあまりにも多くの新しい情報を提供するとは思わないが。
キーへのリモートスキャンコードのマッピングを調整するには、/ lib/udev/rc_keymaps /のファイルに基づいて独自の設定ファイルを作成する必要があります。
Evtest出力を使用すると、KEY_Xおよびvalueフィールドを使用して識別できますどのrc_keymapsファイルが使用されています。一致するファイルをコピーして編集し、必要に応じてキーを再マッピングします。 Sudo ir-keytable -c -w newfileを使用して、変更した構成をロードできます。これで、evtestを使用して新しい構成をテストできます。
キーマップの変更から十分な柔軟性を得ることができない場合でも、ユーザー空間lircデーモンを使用できます。カーネル内ドライバーからプルするようにlircdを構成してから、lircdを通常どおりに構成できます。
これらの2つのリンク http://forum.xbmc.org/showthread.php?tid=104541 および http://ubuntuforums.org/showthread.php?t=1754719 =、いずれかのセットアップを構成およびデバッグする方法に関する多くの情報があります。
リモートのPlayボタンはgnome-settings-daemonのmedia-keys
プラグインによって使用されます。それを無効にして、MythTVがイベントを受信できるようにするには、次のようにします。
$ gsettings set org.gnome.settings-daemon.plugins.media-keys active false
また、xfce4-volumedを無効/アンインストールして、XF86AudioLowerVolume
、XF86AudioRaiseVolume
、およびXF86AudioMute
がトラップされないようにする必要があります。
いくつかのウィンドウマネージャーキーも再マップする必要がある場合があります(たとえば、私の場合、Ctrl + Alt + Dを使用してLive TVを起動しますが、xfwm4はshow_desktopアクションに使用します)。これは、[設定]> [ウィンドウマネージャー]、[キーボード]タブで実行できます。
さらに、「マウス」コントロールを有効にして、 mythtv-mouse2kbd.py スクリプトで説明した my blog post を使用してキーボードイベントを送信できます。