T102HAにLinuxをぶち込む話
半年前にQiitaで同じような記事を書いたことがありますが、改めてここでも書きます。
スペック
Model: ASUS Transbook T102HA(R106HA)
CPU: Intel Atom x5-Z8350 1.92GHz(4Core 4Thread)
Storage: eMMC 64GB
Memory: DDR3-SODIMM 4GB
T102HAとは書いていますが実際はR106HAというモデルで、たしかヨドバシかビックカメラのモデルの型番がRから始まるんですよね。しかしシステム上ではT102HAで表示されるので今回の記事でもT102HAとして扱います。
正直インストールはGUI環境下では流れ作業と等しいので省きます。
インストール後の設定
といってもほとんどこれに近いんですけど。
作業として、
パッケージの更新をして、
日本語フォントを入れて、
日本語入力環境を入れて、
xprofileとかbashrcなどに適宜設定追加すれば、日本語圏の個人PCとして使えるようになります。
ですが今回はタブレットPC。当たり前ですがタッチスクリーンがあるのです。今回の機種では画面が本体を縦にした状態がデフォルトになっているため、ディスプレイの設定で右に90°回した状態にする必要があります。設定から右へ傾けても良し、ターミナル上でxrandr -o rightを打つのも良し。これで画面が右に90°傾いた状態になります。しかしこのままではタッチしたときの座標が元のままなので、タッチ座標のキャリブレーションをする必要があります。
タッチ座標のキャリブレーション
さて、タッチ座標をキャリブレーションする方法はこちらを参考にして行います。まずキャリブレーションを行うためのデバイスを調べる必要があるため、xinput listとターミナルで打ち込みます。
この中からタッチスクリーンと思われるデバイスを探します。この場合ですとVirtual core pointer内のELAN22A6:00 04F3:22A6(id=15のもの)がタッチスクリーンです。
原理としてCoordinate Transformation Matrixは3*3の行列で成り立っており、
cosθ sinθ 0
-sinθ cosθ 0
0 0 1
こんな感じ(これほどMarkdownで書きたいと思ったことはない)。まあここからは数学の基本的な部分で、θ部分に適宜値を入れてあげるとCoordinate Transformation Matrixに設定すべき値を求めることができます。これを覚えておくと元の値を設定しなおすなどの応用が利くので損は無いと思います、多分。
それを踏まえたうえで、キャリブレーションを行います。コマンドは
xinput set-prop 'dev-name' 'Coordinate Transformation Matrix' 0 1 0 -1 0 1 0 0 1
この'dev-name'はidをそのまま入力しても良いし、'デバイス名'('で括るのを忘れずに)で指定しても良いです。しかしid指定だとたまに強制終了などで変更されてしまい、また同じように調べる必要が出てくる場合があります。またデバイス名の指定は今回みたいにVirtual core keyboardに同じものがあるなどといった場合は、'pointer:デバイス名'と指定する必要があります。
あとはスタートアッププロセスに追加してあげると毎回コマンドを打つ必要が無くなります。私は~/.xprofileに記述していますが、起動時にプロセスが働くファイルに書き込んだほうが良いと思われます。まだ私は調べられてないので、暫定としてこっちに書き込んでいますが、ログイン画面では適応されないので横向きのままです。
後記
タブレットPCにLinuxをぶち込んだって話があまり無いもので、当時の僕も調べるのに苦労しました。あとは画面回転に対応させるとか、せっかくある背面の指紋認証センサを有効活用するとかの課題はありますが、それは時間があるときにじっくり調べていきたいと思います。あとOpnebox版だと電源管理あたりのオプションとかもめんどくさい感じなのでそこら辺もうまく調整していきたいですね…
おまけ
neofetchで見たときのシステム情報。やっぱりT102HAじゃないか(呆れ)