RPi3にcocopar 5inch HDMIのLCDを接続してwestonを動かしてみたところ、 うまくタッチできないところがあったのでキャリブレーションを行った。
下記の要領で作業を行う。
デバイス名の確認
libinput-list-devidesで確認できる。
$ libinput-list-devices Device: ADS7846 Touchscreen Kernel: /dev/input/event1 Group: 2 Seat: seat0, default Capabilities: touch Tap-to-click: n/a Tap drag lock: n/a Left-handed: n/a Nat.scrolling: n/a Middle emulation: n/a Calibration: identity matrix Scroll methods: none Click methods: none Disable-w-typing: n/a Accel profiles: n/a
キーボードやマウスなどが接続されている場合はそのデバイスの情報も表示される。
キャリブレーションの実施
キャリブレーションはリモートではなく本体側で作業する。
うまくターミナルのアイコンがタッチできない場合は、マウスを接続するなどして、weston上でターミナルを起動する。
ターミナル上でweston-calibratorを実行すると、キャリブレーション画面になる。
「+」をタップしていくと、ターミナル上にキャリブレーション結果が表示される。
$ weston-calibrator Calibration values: 1.017170 0.190244 -38.571243 -0.012176 1.194730 -43.827576
udevルールの作成
先ほど調べたデバイス名とキャリブレーション結果を元に、「/etc/udev/rules.d/touch-calibration.rules」を作成する。
ATTRS{name}=="ADS7846 Touchscreen", ENV{WL_CALIBRATION}="1.017170 0.190244 -38.571243 -0.012176 1.194730 -43.827576"
ルールファイルはファイル名は適当で構わないが下記の点に注意。
- 拡張子は「.rules」
- デバイス名が正しいこと
キャリブレーションが反映されない場合はこれらを確認するとよい。
再起動すると、キャリブレーションの結果が反映されている。