古いUSB RFリモートをKodiで使用したい。リモートはキーコードを生成する非キーボード入力デバイスです。再マッピングを行いたいのですが、/usr/lib/keymapの時代以来、evtestとudevのhwdbファイルを支持して廃止されてきました。
HWDBルール(私の目的)は、ハードウェア識別ヘッダーと、一連のキーマッピングで構成されています。キーボードでこれを行う例をいくつか見つけましたが、キーボード以外の入力デバイスでは何もありません。また、hwdbヘッダーの作成方法を説明するものもありません。
一般的に、どのようにhwdbヘッダーを構築しますか?これがudevadm info /dev/input/eventX
の出力です。
P: /devices/pci0000:00/0000:00:02.0/usb2/2-1/2-1:1.0/rc/rc0/input8/event4
N: input/event4
S: input/by-id/usb-X10_Wireless_Technology_Inc_USB_Transceiver-event-if00
S: input/by-path/pci-0000:00:02.0-usb-0:1:1.0-event
E: BACKSPACE=guess
E: DEVLINKS=/dev/input/by-path/pci-0000:00:02.0-usb-0:1:1.0-event /dev/input/by-id/usb-X10_Wireless_Technology_Inc_USB_Transceiver-event-if00
E: DEVNAME=/dev/input/event4
E: DEVPATH=/devices/pci0000:00/0000:00:02.0/usb2/2-1/2-1:1.0/rc/rc0/input8/event4
E: ID_BUS=usb
E: ID_INPUT=1
E: ID_INPUT_KEY=1
E: ID_MODEL=USB_Transceiver
E: ID_MODEL_ENC=USB\x20Transceiver
E: ID_MODEL_ID=0002
E: ID_PATH=pci-0000:00:02.0-usb-0:1:1.0
E: ID_PATH_TAG=pci-0000_00_02_0-usb-0_1_1_0
E: ID_REVISION=0100
E: ID_SERIAL=X10_Wireless_Technology_Inc_USB_Transceiver
E: ID_TYPE=generic
E: ID_USB_DRIVER=ATI_remote
E: ID_USB_INTERFACES=:ff0000:
E: ID_USB_INTERFACE_NUM=00
E: ID_VENDOR=X10_Wireless_Technology_Inc
E: ID_VENDOR_ENC=X10\x20Wireless\x20Technology\x20Inc
E: ID_VENDOR_ID=0bc7
E: MAJOR=13
E: MINOR=68
E: SUBSYSTEM=input
E: USEC_INITIALIZED=8383075
E: XKBLAYOUT=us
E: XKBMODEL=pc105
これは思ったより簡単だった。ほとんどの場合、(gasp)のマニュアルページを読んで、一致文字列にUSBデバイスのモダリアの省略(およびワイルドカード)バージョンを使用しても問題ないことを理解しなければなりませんでした。
手順:
lsusbを使用してデバイスベンダーを見つけます。鉱山は0BC7でした。
でデバイスのすべてのmodaliasファイルを見つける
find /sys -name *modalias | xargs grep -i 0BC7
いくつかあります。ストリングが1つあるものを使用してください。私のファイルは
/sys/devices/pci0000:00/0000:00:02.0/usb2/2-1/2-1:1.0/modalias
私のmodalias文字列は次のようになります。すべてのバージョンに適用したいので、「e」の前のすべてを必要としています。
input:b0003v0BC7p0002e0100-e0,1,2,k110,111,113,114,r0,1,amlsfw
Evtestを使用して、リモコンのボタンのスキャンコードを見つけます。これは、MSC_SCANの後の「値」です。私の場合、値0bのキーを使用しています。簡単に確認できるキーコードにマッピングします。ミュートです。
このArch wikiページ への重い参照を使用して、/etc/udev/hwdb.d/10-x10.hwdb
にhwdbファイルを作成します。を含む:
evdev:input:b0003v0BC7p0002*
KEYBOARD_KEY_0b=mute
次のコマンドは、新しいhwdbファイルを更新して使用します。
udevadm hwdb --update
udevadm trigger
udevadm info /dev/input/event4 | grep KEYB