mieki256's diary



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

#1 [hsp][raspberrypi][linux] HSP3.6betaとキーボードやマウスの相性をもう少し調べたり

_昨日、 Raspberry Pi Zero W上で HSP3.6beta(OpenHSP)を動かした際、キーボードやマウスの型番によっては無反応になってしまう点が気になって。もうちょっと検証してみようかと。

ちなみに、Raspberry Pi OS のデスクトップ画面を操作する分には、キーボードもマウスもちゃんと反応する ―― どの機器も正常に動作しているように見える。あくまで、HSPを動かした時だけ、無反応になる・相性があるように見えるというか。

キーボード・マウス型番キー入力マウス操作
ワイヤレス(無線)キーボード Logicool K400r (タッチパッド付)No goodNo good
USB有線接続キーボード Lenovo KU-1255 (トラックポイント付)GoodGood
ワイヤレス(無線)キーボード BUFFALO BSKBW03WH (※2)GoodNone
ワイヤレス(無線)キーボード BUFFALO BSKBW03WH (※1)No goodNone
ワイヤレスマウス Logicool VX NanoNoneNo good
ワイヤレスマウス ELECOM M-BL21DBSVNoneNo good
USB有線接続マウス ELECOM M-XGM10UBBKNoneNo good
USB有線接続マウス A4Tech XL-755BK (※1)NoneGood
USB有線接続マウス A4Tech XL-755BK (※2)NoneNo good
USB有線接続マウス Logitech(Logicool) MX300NoneNo good
「Good」は正常動作。「No good」は無反応。
部屋の中から他のマウスを発掘して試してみたところ、USB有線接続マウス A4Tech XL-755BK ならマウスの動きを取得できることが分かった。ただ、それもすんなり動くわけでもなく…。 どうも、マウスかキーボードのどちらか一方しか入力できてない感じがする…。何故…。

ちなみに、Logicool VX Nano、ELECOM M-BL21DBSV、Logitech(Logicool) MX300 は、キーボードを外してマウスだけ接続した状態でも無反応だった。

念のために再度書いておくけど、デスクトップ画面の操作ならどの機器も正常に動作してる。

一応、lsusb の結果もメモしておく。この情報だけでは何の役にも立たないかもしれないけれど、少なくとも、USB接続機器としてOSから認識できていることぐらいは分かるのではないかと…。
# Logicool K400r
$ lsusb
Bus 001 Device 005: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 002: ID 214b:7250
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

# Lenovo KU-1255
$ lsusb
Bus 001 Device 003: ID 17ef:6047 Lenovo
Bus 001 Device 002: ID 214b:7250
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

# Logicool VX Nano
$ lsusb
Bus 001 Device 016: ID 046d:c526 Logitech, Inc. Nano Receiver
Bus 001 Device 002: ID 214b:7250
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

# ELECOM M-BL21DBSV
$ lsusb
Bus 001 Device 017: ID 056e:00cb Elecom Co., Ltd
Bus 001 Device 002: ID 214b:7250
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

# A4Tech XL-755BK
$ lsusb
Bus 001 Device 007: ID 09da:9090 A4Tech Co., Ltd. XL-730K / XL-750BK / XL-755BK Mice
Bus 001 Device 002: ID 214b:7250
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

# Logitech MX300
$ lsusb
Bus 001 Device 006: ID 046d:c024 Logitech, Inc. MX300 Optical Mouse
Bus 001 Device 004: ID 17ef:6047 Lenovo
Bus 001 Device 002: ID 214b:7250
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

電流が足りてないのでは、とも思ったけれど、lsusb -v で確認すると、どれも MaxPower 100mA と言ってくるし、そもそも電流不足なら、デスクトップ画面の操作だってできないよなと…。デスクトップ画面の操作なら、どのキーボードも、どのマウスも動作してるのだから、電流不足ではないだろうと。

入力を取得できない機器の共通点が全然見えてこない…。有線無線もどうやら関係ないっぽいし…。わからんなあ…。

もう少し機器の情報を集める。 :

Linuxの場合、/proc/bus/input/devices を調べることで、接続された入力機器の情報が得られたりするらしい。

例えば、Logicool K400r の場合は以下。
$ cat /proc/bus/input/devices
I: Bus=0003 Vendor=046d Product=4024 Version=0111
N: Name="Logitech K400"
P: Phys=usb-20980000.usb-1.2/input2:1
S: Sysfs=/devices/platform/soc/20980000.usb/usb1/1-1/1-1.2/1-1.2:1.2/0003:046D:C52B.0003/0003:046D:4024.0004/input/input12
U: Uniq=4024-73-8d-f5-e4
H: Handlers=sysrq kbd leds mouse0 event0
B: PROP=0
B: EV=12001f
B: KEY=3f 301ff 0 0 0 0 483ffff 17aff32d bfd44446 0 0 ffff0001 130ff3 8b17c007 ffff7bfa d941dfff ffbeffdf ffefffff ffffffff fffffffe
B: REL=1943
B: ABS=1 0
B: MSC=10
B: LED=1f
Handlers のところがポイントらしくて、ここでどんな情報を取得できるかが分かる模様。K400r の場合、タッチパッド付のキーボードだから、kbd と mouse0 が列挙されているのかなと。

Lenovo SU-1255 (ThinkPad トラックポイントキーボード)の場合は以下。
$ cat /proc/bus/input/devices
I: Bus=0003 Vendor=17ef Product=6047 Version=0100
N: Name="Lenovo ThinkPad Compact USB Keyboard with TrackPoint"
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:17EF:6047.0005/input/input13
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=17ef Product=6047 Version=0100
N: Name="Lenovo ThinkPad Compact USB Keyboard with TrackPoint Mouse"
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:17EF:6047.0006/input/input14
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=17ef Product=6047 Version=0100
N: Name="Lenovo ThinkPad Compact USB Keyboard with TrackPoint Consumer Control"
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:17EF:6047.0006/input/input15
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=17ef Product=6047 Version=0100
N: Name="Lenovo ThinkPad Compact USB Keyboard with TrackPoint"
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:17EF:6047.0006/input/input16
U: Uniq=
H: Handlers=event3
B: PROP=0
B: EV=9
B: ABS=100 0

I: Bus=0003 Vendor=17ef Product=6047 Version=0100
N: Name="Lenovo ThinkPad Compact USB Keyboard with TrackPoint"
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:17EF:6047.0006/input/input17
U: Uniq=
H: Handlers=event4
B: PROP=0
B: EV=13
B: KEY=1 0 0 0 0 0 0 0 0
B: MSC=10

I: Bus=0003 Vendor=17ef Product=6047 Version=0100
N: Name="Lenovo ThinkPad Compact USB Keyboard with TrackPoint"
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:17EF:6047.0006/input/input18
U: Uniq=
H: Handlers=event5
B: PROP=0
B: EV=9
B: ABS=100 0
K400r と比べると、情報が多い…。Handlers を見ると、event0 が kbd、event1 が mouse0、event2 も kbd、となってるみたいだなと。

hexdump /dev/input/event0 で、イベントが入ってた来た時の情報を表示できるっぽい。
$ hexdump /dev/input/event0
0000000 53c6 6032 18f9 0008 0004 0004 0004 0007
0000010 53c6 6032 18f9 0008 0001 001e 0001 0000
0000020 53c6 6032 18f9 0008 0000 0000 0000 0000
0000030 53c6 6032 bd21 0008 0004 0004 0004 0007
0000040 53c6 6032 bd21 0008 0001 001e 0000 0000
0000050 53c6 6032 bd21 0008 0000 0000 0000 0000
たしかに、キーボードのキーを押したら、謎の値がずらずらと表示された。Ctrl+C で終了。

しかし、/dev/input/event* で反応があると分かったところで…。デスクトップ画面では、どの機器も動いてるわけだし…。

参考ページ。

_Linux の入力デバイスをカスタマイズ - Qiita
_[Linux] /dev/input からマウスイベントを取得する - Qiita
_epics/powermate-event - Epics Users JP
_マウスをカスタマイズしよう linux編 : Yuki Nakata's Blog

以上です。

過去ログ表示

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