つぎに、タッチパネルを使えるようにします。
まず、パッケージを追加で入れます。
mini2440:~# apt-get install xserver-xorg-input-evtouch
X を起動してみると、明らかに対応がおかしいですが、タッチが反応することがわかります。
つぎに、調整します。USBキーボードをUSBコネクタに接続しXの止まった状態で、シリアルのターミナルから
mini2440:~# cd /usr/lib/xf86-input-evtouch/
mini2440:/usr/lib/xf86-input-evtouch# cp /usr/share/xf86-input-evtouch/empty_curssor.xbm /
mini2440:/usr/lib/xf86-input-evtouch# ./calibrate.sh
これで画面に'X'が上下左右中央に9個表示されます(なぜか、empty_cursorを/にコピーしないと動かない仕様)
この状態で
- スタイラスペンのようなもので、外周を一周なぞる(max,minチェック、画面に現在値とX,Y方向のmin/maxが表示されている)
- USBにつないだキーボードのEnterを押す
- よく見ると左上のXが赤くなっている。ので、このXをなるべく正確にタッチ。
- 次に上中央に移るので同様に。右までいったら中段、下段。
- 最後までタッチするとプログラムが終了する。
このとき、同ディレクトリにout.txtができます。
mini2440:/usr/lib/xf86-input-evtouch# cat out.txt
Option "MinX" "69"
Option "MinY" "182"
Option "MaxX" "964"
Option "MaxY" "911"
Option "x0" "2"
Option "y0" "5"
Option "x1" "-1"
Option "y1" "-2"
Option "x2" "-5"
Option "y2" "-2"
Option "x3" "-3"
Option "y3" "8"
Option "x4" "1"
Option "y4" "15"
Option "x5" "1"
Option "y5" "15"
Option "x6" "4"
Option "y6" "20"
Option "x7" "5"
Option "y7" "20"
Option "x8" "-5"
Option "y8" "0"
(値を見ると何となく、押しムラがある気がしないでもないですが)
これを/etc/X11/xorg.conf の 「Section "InputDevice"」に修正、追記します。
Section "InputDevice"
Identifier "Touchpad0"
Driver "evtouch"
Option "CorePointer" "true"
Option "SendCoreEvents" "true"
Option "Device" "/dev/input/event1"
Option "DeviceName" "touchscreen"
Option "MoveLimit" "10"
# Option "MinX" "110" # 最初に入れていたここらはコメントアウト
# Option "MinY" "104"
# Option "MaxX" "915"
# Option "MaxY" "911"
Option "Calibrate" "0" # ※1をゼロにする
Option "MinX" "69" # 丸ごとコピペする
Option "MinY" "182"
Option "MaxX" "964"
Option "MaxY" "911"
Option "x0" "2"
Option "y0" "5"
Option "x1" "-1"
Option "y1" "-2"
Option "x2" "-5"
Option "y2" "-2"
Option "x3" "-3"
Option "y3" "8"
Option "x4" "1"
Option "y4" "15"
Option "x5" "1"
Option "y5" "15"
Option "x6" "4"
Option "y6" "20"
Option "x7" "5"
Option "y7" "20"
Option "x8" "-5"
Option "y8" "0"
Option "ReportingMode" "Raw"
Option "Emulate3Buttons"
Option "Emulate3Timeout" "50"
EndSection
(InputDeviceセクションのみ表記、残りは同一)
再びXを起動すると、それらしく、タッチしたところにカーソルがいくと思います。
ずれている場合はx0〜y8を調整してみるといいでしょう。と、いいますか、結局全部再調整しました。
具体的には、x0y0〜x8y8は
678
345
012
の配列です(タッチ順ではない)。一度、x0-y8をゼロにして、それぞれの付近をタッチして、
タッチよりカーソルが上にずれていたらyを正
タッチよりカーソルが下にずれていたらyを負
のように、タッチの検出値からどれだけ座標をオフセットするか、の値のようです。
ある程度調整できましたが、どうも、タッチパネルそのものがあまり精度のいものではないようで、局所的に歪む場所もありました。
念のため、保護シートを剥がしてみましたが(ガワを止めている4本のネジを外す必要有り)、さほど状況は変わりませんでした。