mieki256's diary



2021/02/26(金) [n年前の日記]

#1 [hsp][raspberrypi][linux] HSP と /dev/input/by-id についてもう少し調べてる

_昨日に続いて作業。 Raspberry Pi Zero W + Raspberry Pi OS buster 上で HSP3.6beta を動かすとキーボードやマウスが無反応なる件が気になって、もうちょっと調べていたり。

HSP3.6betaでは無反応だった入力機器について、/dev/input/by-id でどんな文字列を返してくるのか調べてみる。

昨日は書き忘れてたけど、メモ内に出てくる ll は、ls -alF のエイリアス。

無反応だった、USB接続ワイヤレスマウス Logicool VX Nano。マウスのみ接続してある状態。
$ ll /dev/input
合計 0
drwxr-xr-x  4 root root     160  2月 25 23:40 ./
drwxr-xr-x 17 root root    3660  2月 25 23:41 ../
drwxr-xr-x  2 root root     100  2月 25 23:40 by-id/
drwxr-xr-x  2 root root     100  2月 25 23:40 by-path/
crw-rw----  1 root input 13, 64  2月 25 23:40 event0
crw-rw----  1 root input 13, 65  2月 25 23:40 event1
crw-rw----  1 root input 13, 63  2月 25 23:40 mice
crw-rw----  1 root input 13, 32  2月 25 23:40 mouse0

$ ll /dev/input/by-id
合計 0
drwxr-xr-x 2 root root 100  2月 25 23:40 ./
drwxr-xr-x 4 root root 160  2月 25 23:40 ../
lrwxrwxrwx 1 root root   9  2月 25 23:40 usb-Logitech_USB_Receiver-event-if01 -> ../event1
lrwxrwxrwx 1 root root   9  2月 25 23:40 usb-Logitech_USB_Receiver-event-mouse -> ../event0
lrwxrwxrwx 1 root root   9  2月 25 23:40 usb-Logitech_USB_Receiver-mouse -> ../mouse0

無反応だった、USB有線接続マウス Logicool(Logitech) MX300。マウスのみ接続してある状態。
$ ll /dev/input
合計 0
drwxr-xr-x  4 root root     140  2月 26 07:52 ./
drwxr-xr-x 16 root root    3620  2月 26 07:52 ../
drwxr-xr-x  2 root root      80  2月 26 07:52 by-id/
drwxr-xr-x  2 root root      80  2月 26 07:52 by-path/
crw-rw----  1 root input 13, 64  2月 26 07:52 event0
crw-rw----  1 root input 13, 63  2月 25 23:40 mice
crw-rw----  1 root input 13, 32  2月 26 07:52 mouse0

$ ll /dev/input/by-id
合計 0
drwxr-xr-x 2 root root  80  2月 26 07:52 ./
drwxr-xr-x 4 root root 140  2月 26 07:52 ../
lrwxrwxrwx 1 root root   9  2月 26 07:52 usb-B16_b_02_USB-PS_2_Optical_Mouse-event-mouse -> ../event0
lrwxrwxrwx 1 root root   9  2月 26 07:52 usb-B16_b_02_USB-PS_2_Optical_Mouse-mouse -> ../mouse0

$ cat /proc/bus/input/devices
I: Bus=0003 Vendor=046d Product=c024 Version=0110
N: Name="B16_b_02 USB-PS/2 Optical Mouse"
P: Phys=usb-20980000.usb-1.2/input0
S: Sysfs=/devices/platform/soc/20980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:046D:C024.0006/input/input10
U: Uniq=
H: Handlers=leds mouse0 event0
B: PROP=0
B: EV=20017
B: KEY=f0000 0 0 0 0 0 0 0 0
B: REL=903
B: MSC=10
B: LED=100

反応した、USB接続ワイヤレスキーボード BUFFALO BSKBW03WH。キーボードのみ接続してある状態。
$ ll /dev/input
合計 0
drwxr-xr-x  4 root root     200  2月 26 07:04 ./
drwxr-xr-x 17 root root    3680  2月 26 07:04 ../
drwxr-xr-x  2 root root     120  2月 26 07:04 by-id/
drwxr-xr-x  2 root root     120  2月 26 07:04 by-path/
crw-rw----  1 root input 13, 64  2月 26 07:04 event0
crw-rw----  1 root input 13, 65  2月 26 07:04 event1
crw-rw----  1 root input 13, 66  2月 26 07:04 event2
crw-rw----  1 root input 13, 67  2月 26 07:04 event3
crw-rw----  1 root input 13, 63  2月 25 23:40 mice
crw-rw----  1 root input 13, 32  2月 26 07:04 mouse0

$ ll /dev/input/by-id
合計 0
drwxr-xr-x 2 root root 120  2月 26 07:04 ./
drwxr-xr-x 4 root root 200  2月 26 07:04 ../
lrwxrwxrwx 1 root root   9  2月 26 07:04 usb-JME_RF_Receiver-event-if02 -> ../event2
lrwxrwxrwx 1 root root   9  2月 26 07:04 usb-JME_RF_Receiver-event-kbd -> ../event0
lrwxrwxrwx 1 root root   9  2月 26 07:04 usb-JME_RF_Receiver-if01-event-mouse -> ../event1
lrwxrwxrwx 1 root root   9  2月 26 07:04 usb-JME_RF_Receiver-if01-mouse -> ../mouse0

$ cat /proc/bus/input/devices
I: Bus=0003 Vendor=05af Product=3063 Version=0110
N: Name="JME RF Receiver"
P: Phys=usb-20980000.usb-1.2/input0
S: Sysfs=/devices/platform/soc/20980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:05AF:3063.0003/input/input4
U: Uniq=
H: Handlers=sysrq kbd leds event0
B: PROP=0
B: EV=120013
B: KEY=10000 7 ff9f207a c14057ff febeffdf ffefffff ffffffff fffffffe
B: MSC=10
B: LED=1f

I: Bus=0003 Vendor=05af Product=3063 Version=0110
N: Name="JME RF Receiver"
P: Phys=usb-20980000.usb-1.2/input1
S: Sysfs=/devices/platform/soc/20980000.usb/usb1/1-1/1-1.2/1-1.2:1.1/0003:05AF:3063.0004/input/input5
U: Uniq=
H: Handlers=mouse0 event1
B: PROP=0
B: EV=17
B: KEY=1f0000 0 0 0 0 0 0 0 0
B: REL=1943
B: MSC=10

I: Bus=0003 Vendor=05af Product=3063 Version=0110
N: Name="JME RF Receiver Consumer Control"
P: Phys=usb-20980000.usb-1.2/input2
S: Sysfs=/devices/platform/soc/20980000.usb/usb1/1-1/1-1.2/1-1.2:1.2/0003:05AF:3063.0005/input/input7
U: Uniq=
H: Handlers=kbd event2
B: PROP=0
B: EV=1f
B: KEY=300ff 0 0 0 0 483ffff 17aff32d bfd44446 0 0 1 130c73 b17c000 267bfa d9415fed 9e1680 4400 0 10000002
B: REL=1040
B: ABS=1 0
B: MSC=10

I: Bus=0003 Vendor=05af Product=3063 Version=0110
N: Name="JME RF Receiver System Control"
P: Phys=usb-20980000.usb-1.2/input2
S: Sysfs=/devices/platform/soc/20980000.usb/usb1/1-1/1-1.2/1-1.2:1.2/0003:05AF:3063.0005/input/input8
U: Uniq=
H: Handlers=kbd event3
B: PROP=0
B: EV=13
B: KEY=c000 100000 0 0 0
B: MSC=10

反応する時もあった、USB有線接続マウス A4Tech XL-755BK。マウスのみ接続してある状態。
$ ll /dev/input
合計 0
drwxr-xr-x  4 root root     220  2月 26 07:57 ./
drwxr-xr-x 17 root root    3660  2月 26 07:57 ../
drwxr-xr-x  2 root root     120  2月 26 07:57 by-id/
drwxr-xr-x  2 root root     120  2月 26 07:57 by-path/
crw-rw----  1 root input 13, 64  2月 26 07:57 event0
crw-rw----  1 root input 13, 65  2月 26 07:57 event1
crw-rw----  1 root input 13, 66  2月 26 07:57 event2
crw-rw----  1 root input 13, 67  2月 26 07:57 event3
crw-rw----  1 root input 13, 68  2月 26 07:57 event4
crw-rw----  1 root input 13, 63  2月 25 23:40 mice
crw-rw----  1 root input 13, 32  2月 26 07:57 mouse0

$ ll /dev/input/by-id
合計 0
drwxr-xr-x 2 root root 120  2月 26 07:57 ./
drwxr-xr-x 4 root root 220  2月 26 07:57 ../
lrwxrwxrwx 1 root root   9  2月 26 07:57 usb-A4TECH_USB_Device-event-if00 -> ../event1
lrwxrwxrwx 1 root root   9  2月 26 07:57 usb-A4TECH_USB_Device-event-kbd -> ../event0
lrwxrwxrwx 1 root root   9  2月 26 07:57 usb-A4TECH_USB_Device-if01-event-mouse -> ../event4
lrwxrwxrwx 1 root root   9  2月 26 07:57 usb-A4TECH_USB_Device-if01-mouse -> ../mouse0

$ cat /proc/bus/input/devices
I: Bus=0003 Vendor=09da Product=9090 Version=0111
N: Name="A4TECH USB Device Keyboard"
P: Phys=usb-20980000.usb-1.2/input0
S: Sysfs=/devices/platform/soc/20980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:09DA:9090.0007/input/input11
U: Uniq=
H: Handlers=sysrq kbd leds event0
B: PROP=0
B: EV=120013
B: KEY=10000 7 ff800000 7ff febeffdf ffefffff ffffffff fffffffe
B: MSC=10
B: LED=1f

I: Bus=0003 Vendor=09da Product=9090 Version=0111
N: Name="A4TECH USB Device System Control"
P: Phys=usb-20980000.usb-1.2/input0
S: Sysfs=/devices/platform/soc/20980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:09DA:9090.0007/input/input12
U: Uniq=
H: Handlers=kbd event1
B: PROP=0
B: EV=1b
B: KEY=400000 1000000 12 0 0 0 8 0 4000 10cc00 101680 0 0 0
B: ABS=100 0
B: MSC=10

I: Bus=0003 Vendor=09da Product=9090 Version=0111
N: Name="A4TECH USB Device Consumer Control"
P: Phys=usb-20980000.usb-1.2/input0
S: Sysfs=/devices/platform/soc/20980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:09DA:9090.0007/input/input13
U: Uniq=
H: Handlers=kbd event2
B: PROP=0
B: EV=1f
B: KEY=300ff 0 0 0 0 483ffff 17aff32d bfd44446 0 0 1 130c73 b17c000 267bfa d9415fed 9e1680 4400 0 10000002
B: REL=1040
B: ABS=1 0
B: MSC=10

I: Bus=0003 Vendor=09da Product=9090 Version=0111
N: Name="A4TECH USB Device"
P: Phys=usb-20980000.usb-1.2/input0
S: Sysfs=/devices/platform/soc/20980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:09DA:9090.0007/input/input14
U: Uniq=
H: Handlers=event3
B: PROP=0
B: EV=9
B: ABS=100 0

I: Bus=0003 Vendor=09da Product=9090 Version=0111
N: Name="A4TECH USB Device"
P: Phys=usb-20980000.usb-1.2/input1
S: Sysfs=/devices/platform/soc/20980000.usb/usb1/1-1/1-1.2/1-1.2:1.1/0003:09DA:9090.0008/input/input15
U: Uniq=
H: Handlers=mouse0 event4
B: PROP=0
B: EV=17
B: KEY=ffff0000 0 0 0 0 0 0 0 0
B: REL=1943
B: MSC=10

USB接続ワイヤレスキーボード BUFFALO BSKBW03WHと、USB有線接続マウス A4Tech XL-755BK の2つを接続した状態。キーボードは反応するけど、マウスは反応しない。
$ ll /dev/input
合計 0
drwxr-xr-x  4 root root     320  2月 26 08:02 ./
drwxr-xr-x 17 root root    3720  2月 26 08:02 ../
drwxr-xr-x  2 root root     200  2月 26 08:02 by-id/
drwxr-xr-x  2 root root     200  2月 26 08:02 by-path/
crw-rw----  1 root input 13, 64  2月 26 08:02 event0
crw-rw----  1 root input 13, 65  2月 26 08:02 event1
crw-rw----  1 root input 13, 66  2月 26 08:02 event2
crw-rw----  1 root input 13, 67  2月 26 08:02 event3
crw-rw----  1 root input 13, 68  2月 26 08:02 event4
crw-rw----  1 root input 13, 69  2月 26 08:02 event5
crw-rw----  1 root input 13, 70  2月 26 08:02 event6
crw-rw----  1 root input 13, 71  2月 26 08:02 event7
crw-rw----  1 root input 13, 72  2月 26 08:02 event8
crw-rw----  1 root input 13, 63  2月 25 23:40 mice
crw-rw----  1 root input 13, 32  2月 26 08:02 mouse0
crw-rw----  1 root input 13, 33  2月 26 08:02 mouse1

$ ll /dev/input/by-id
合計 0
drwxr-xr-x 2 root root 200  2月 26 08:02 ./
drwxr-xr-x 4 root root 320  2月 26 08:02 ../
lrwxrwxrwx 1 root root   9  2月 26 08:02 usb-A4TECH_USB_Device-event-if00 -> ../event7
lrwxrwxrwx 1 root root   9  2月 26 08:02 usb-A4TECH_USB_Device-event-kbd -> ../event4
lrwxrwxrwx 1 root root   9  2月 26 08:02 usb-A4TECH_USB_Device-if01-event-mouse -> ../event8
lrwxrwxrwx 1 root root   9  2月 26 08:02 usb-A4TECH_USB_Device-if01-mouse -> ../mouse1
lrwxrwxrwx 1 root root   9  2月 26 08:02 usb-JME_RF_Receiver-event-if02 -> ../event2
lrwxrwxrwx 1 root root   9  2月 26 08:02 usb-JME_RF_Receiver-event-kbd -> ../event0
lrwxrwxrwx 1 root root   9  2月 26 08:02 usb-JME_RF_Receiver-if01-event-mouse -> ../event1
lrwxrwxrwx 1 root root   9  2月 26 08:02 usb-JME_RF_Receiver-if01-mouse -> ../mouse0

USB接続ワイヤレスキーボード BUFFALO BSKBW03WHと、USB有線接続マウス A4Tech XL-755BK の2つを接続した状態。マウスを接続した後からキーボードを接続してみた。マウスは反応するけど、キーボードは反応しない。
$ ll /dev/input
合計 0
drwxr-xr-x  4 root root     320  2月 26 08:06 ./
drwxr-xr-x 17 root root    3720  2月 26 08:06 ../
drwxr-xr-x  2 root root     200  2月 26 08:06 by-id/
drwxr-xr-x  2 root root     200  2月 26 08:06 by-path/
crw-rw----  1 root input 13, 64  2月 26 08:06 event0
crw-rw----  1 root input 13, 65  2月 26 08:06 event1
crw-rw----  1 root input 13, 66  2月 26 08:06 event2
crw-rw----  1 root input 13, 67  2月 26 08:06 event3
crw-rw----  1 root input 13, 68  2月 26 08:02 event4
crw-rw----  1 root input 13, 69  2月 26 08:02 event5
crw-rw----  1 root input 13, 70  2月 26 08:02 event6
crw-rw----  1 root input 13, 71  2月 26 08:02 event7
crw-rw----  1 root input 13, 72  2月 26 08:02 event8
crw-rw----  1 root input 13, 63  2月 25 23:40 mice
crw-rw----  1 root input 13, 32  2月 26 08:06 mouse0
crw-rw----  1 root input 13, 33  2月 26 08:02 mouse1

$ ll /dev/input/by-id
合計 0
drwxr-xr-x 2 root root 200  2月 26 08:06 ./
drwxr-xr-x 4 root root 320  2月 26 08:06 ../
lrwxrwxrwx 1 root root   9  2月 26 08:02 usb-A4TECH_USB_Device-event-if00 -> ../event7
lrwxrwxrwx 1 root root   9  2月 26 08:02 usb-A4TECH_USB_Device-event-kbd -> ../event4
lrwxrwxrwx 1 root root   9  2月 26 08:02 usb-A4TECH_USB_Device-if01-event-mouse -> ../event8
lrwxrwxrwx 1 root root   9  2月 26 08:02 usb-A4TECH_USB_Device-if01-mouse -> ../mouse1
lrwxrwxrwx 1 root root   9  2月 26 08:06 usb-JME_RF_Receiver-event-if02 -> ../event2
lrwxrwxrwx 1 root root   9  2月 26 08:06 usb-JME_RF_Receiver-event-kbd -> ../event0
lrwxrwxrwx 1 root root   9  2月 26 08:06 usb-JME_RF_Receiver-if01-event-mouse -> ../event1
lrwxrwxrwx 1 root root   9  2月 26 08:06 usb-JME_RF_Receiver-if01-mouse -> ../mouse0

キーボードもマウスも接続してない状態。
$ ll /dev/input
合計 0
drwxr-xr-x  3 root root      80  2月 26 08:36 ./
drwxr-xr-x 16 root root    3600  2月 26 08:36 ../
drwxr-xr-x  2 root root      60  2月 26 08:36 by-path/
crw-rw----  1 root input 13, 63  2月 25 23:40 mice

さて、ここから分かることは何だろう。 _昨日調べた件 も眺めつつ考えると…。


となると、"event-kbd" や "event-mouse" という文字列を頼りに、それがキーボードかマウスかを判別するのは難しい、ということになってしまうのだろうか…。自信無いけど。

しかし、Linux のデスクトップ画面は、それらの入力機器でフツーに操作できているわけで…。ということは、Linux で入力機器の情報を読み取るときはえてしてこうすればいいのだ、てな作法が存在してそうな気がするなと…。

event0にもマウスの入力が入ってるっぽい。 :

hexdump /dev/input/event0 と打って、Logicool K400r のタッチパッドを操作したら、何かの値がずらずらと出てきた。てっきり、event0 がキー入力で、mouse0 がマウス入力と思い込んでた…。event0 にもマウスの入力値が含まれていて、/dev/input/mouse0 がマウス入力、というわけではないのだな…。

hexdump /dev/input/mouse0 も、タッチパッドを操作すると何かの値がずらずらと出てくる。ただ、キー入力をしても、何の値も出てこない。もしかして、mouse0 はマウス座標関係を返してくる、てな感じなのだろうか…? 分からんけど。

以下のページを眺めたら、event0 にはマウス関連情報も含まれている、と書いてあった。

_Linux Input Subsystemの使い方

event0 は、time(おそらく8byte), type(2byte), code(2byte), value(4byte) を返すらしい。

evtestをインストール。 :

evtest というツールを使うと、入力機器がどんな値を返してきているかを分かりやすく表示してくれる、という話を見かけた。Raspberry Pi OS buster なら、以下でインストールできる。
sudo apt install evtest

evtest と打つと、event? を質問されるので、0 を打ってEnter。Shiftキーを押してみたり、タッチパッドを操作してみると、EV_MSC、EV_KEY(キー入力)、EV_REL(マウスの動き)等々が表示された。何のキーが押されたか、マウスはX座標とY座標のどちらに動いたか、等も表示してくれる。

lsinputをインストール。 :

lsinput なるツールを使うと、入力機器の情報が得られるかもという話を見かけたのでインストールしてみる。input-utils というパッケージに入っているらしい。
sudo apt install input-utils
$ lsinput
/dev/input/event0
   bustype : BUS_USB
   vendor  : 0x46d
   product : 0x4024
   version : 273
   name    : "Logitech K400"
   phys    : "usb-20980000.usb-1.1/input2:1"
   uniq    : "4024-73-8d-f5-e4"
   bits ev : EV_SYN EV_KEY EV_REL EV_ABS EV_MSC EV_LED EV_REP
EV_KEY と EV_REL が出ているあたり、この機器はキー入力とマウス入力を返すよ、ということなんだろうか。

以上です。

過去ログ表示

Prev - 2021/02 - Next
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project