http://www.monaka.org/blog/2013/06/01/calibrate-touchscreen-android-jb/ からの転載です.
Android でのタッチスクリーンのキャリブレーション法について.情報が溢れていそうで,案外無い,
あっても,古くて使えない.
ので,記録しておきます.
(少なくとも Android-x86 での)タッチスクリーンサポートは,tslib を用いています.
tslib には,ts_calibrate というコマンドがついています.
ts_calibrate は,LinuxのフレームバッファとタッチパネルデバイスをLinuxのinputデバイスとを直接アクセスします.
Android は,当然ながら,画面を押さえていますので,衝突します.
そこで,下記のような手順で実行を行います.
以下,Android-x86.org が提供している x86-jb での手順です.
たぶん ICS 以降の Android の多くで使えるはずですが,中には,tslib を使っていないディストロもあります.(例えば AndroVM)
あと,rootが必要です.
スマホやパネルコンピュータなど,きちんと製品に作りこまれた状態でも,この方法は使えないかもしれません.
(その場合,キャリブレーションツールが必要なら,きちんとしたのがついてくるだろうと思います.)
- 普通にAndroidを起動します.
- adb shell など用いて,コマンドラインアクセス可能にします.
-
stop zygote
stop bootanim
stop surfaceflinger
として,zygote サービスを停止します. - 多くの場合,キャリブレーションデータを保存するディレクトリが存在しません.
mkdir /data/system/tslib
を実行して作ります. -
ts_calibrate
を実行します. - 言われるままにタッチします.
- 念のため,
ls /data/system/tslib/pointercal
などしてキャリブレーションデータが作成されていることを確認します. - 止めた順番と逆順で,
start surfaceflinger
start bootanim
start zygote
として,zygote サービスを再開します.
補足
仮想コンソールがサポートされている場合,上記2の手順で,Alt+F1 などで移動し,作業することもできます.
その場合,ts_calibrate を実行する際に必要なのは zygote サービスの停止だけです.