LoginSignup
7
7

More than 5 years have passed since last update.

Debianでタッチパネルのキャリブレーション

Last updated at Posted at 2015-10-01

RaspbianでマレーシアのChalkboard Electronics製7インチタッチパネル液晶を使った時のメモ。
つかっているタッチパネル付液晶はこちらのもの。

基本

基本的には
xinput_calibratorを使ってキャリブレーションします。
ない場合はapt-getでインストールしましょう。

シェルから実行すると、
キャリブレーション用の画面が表示されるので、画面にしたがって点をタッチしましょう。

Bash
$ xinput_calibrator

Warning: multiple calibratable devices found, calibrating last one (Chalkboard Electronics HID Touchscreen)
    use --device to select another one.
Calibrating EVDEV driver for "Chalkboard Electronics HID Touchscreen" id=7
    current calibration values (from XInput): min_x=4, max_x=1200 and min_y=800, max_y=-1

Doing dynamic recalibration:
    Setting new calibration data: 8, 1268, 793, 1


--> Making the calibration permanent <--
  copy the snippet below into '/etc/X11/xorg.conf.d/99-calibration.conf'
Section "InputClass"
    Identifier  "calibration"
    MatchProduct    "Chalkboard Electronics HID Touchscreen"
    Option  "Calibration"   "8 1268 793 1"
EndSection

すると、こんな感じで設定がシェルに書きだされます。
これをxorgの設定ファイルに書き込む必要があります。

設定ファイルの書き込み

シェル上では、/etc/X11/xorg.conf.d/99-calibration.confに書き込めと出ていますが、 これは間違いです

Debian/Ubuntuでは、/usr/share/X11/xorg.conf.d/99-calibiration.confの一番下の行に追加します。
ファイルがなければ作成しましょう。

こんな感じで。

/usr/share/X11/xorg.conf.d/99-calibiration.conf
Section "InputClass"
        Identifier      "calibration"
        MatchProduct    "Chalkboard Electronics HID Touchscreen"
        Option  "Calibration"   "4 1200 800 -1"
        Option  "SwapAxes"      "1"
EndSection

"SwapAxes"は画面を回転させて使っている時、軸の方向あわなくなる場合に使用します。
xinput-calibrationの出力で自動的に付与される場合もあります。

キャリブレーションがうまくいかない場合

そもそもキャリブレーション時に画面の外にカーソルが行ってしまうような状態だと、うまくキャリブレーションができない場合があります。
その場合は、一度上記の設定ファイル/usr/share/X11/xorg.conf.d/99-calibiration.confに書きこんだあと、
Option "Calibration"の値を手動で変更して、画面のどこを触ってもカーソルが画面の外にいかないように調整します。

設定した値を反映するには、KDEを使用している場合

bash
$ sudo killall lightdm
$ sudo service lightdm start

これで、xを再起動すると、値が反映されます。
なぜかservice lightdm restartではダメで、一度lightdmをkillしないと再起動できませんでした。

カーソルが常に画面内に表示されたら、もう一度xinput_calibratorを実行して上記の手順を行いましょう。

補足

どうやら、x.orgのドキュメントを読むと、Option "Calibration"の値は、それぞれ min-x, max-x, min-y, max-yらしいので、それぞれを解像度に合わせて設定してあげれば大丈夫...?
ちなみに、Chalkboard-electroncisの7インチ1280x800液晶を+90度回転して使うときの設定は、

Section "InputClass"
        Identifier      "calibration"
        MatchProduct    "Chalkboard Electronics HID Touchscreen"
        Option  "Calibration"   "0 1280 800 0"
        Option  "SwapAxes"      "1"
EndSection

追記

あれ、、、xinput-calibratorapt-getじゃはいらない...?
http://engineering-diy.blogspot.co.uk/2013/01/adding-7inch-display-with-touchscreen.html

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7