64Bit版のRaspberry Pi OSが出たので、遅ればせながら試す。
ずいぶん前からRaspberry Pi OSの64-bit版はあったのだが、リリースにはなってなかった。今年の初めにようやくリリースとなったので試してみた。
試したのはRaspberry Pi 4B。こいつに公式7インチタッチパネルがついてるやつ。
普通に焼いて普通に起動。起動時にファイルシステムを拡張した後、しばらく黒い画面で固まる。このときに固まったかと思って再起動かけてはいけない。ただ遅いだけ。のんびり待つ。
起動したら一通りの設定とアップデート。最近のRaspberry Pi Imagerは、イメージを焼くときにある程度の設定はできてしまうので飛ばしていく。
本当ならxrdpを使いたいところだが、なぜかうまく動かないのでVNCで。ついでにBlueToothでマウスを接続。
画面上下反転しているので、メニューのPreferencesからScreen Configuration。右クリックからOrientation->invertedを選択して緑のチェックアイコンを押して保存。
実はこれではまった。Raspberry Piの公式7インチタッチスクリーンの上下反転の動きはまったもってわからん。多分、バグ。
今までだと、/boot/config.txtにlcd_rotate=2なる行を追加してrebootだったのだが、こいつでは正しく動かない。コンソールの間はちゃんと上下反転してるんだけど、Xに入ったところでもとに戻ってしまう。
Xの方を反転させるにはこちらのやり方。でも、これだけだとタッチの位置は反転されない。
$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ generic ft5x06 (00) id=6 [slave pointer (2)]
⎜ ↳ vc4 id=7 [slave pointer (2)]
⎜ ↳ vc4 id=8 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ vc4 id=9 [slave keyboard (3)]
↳ vc4 id=10 [slave keyboard (3)]
↳ AIS01F (AVRCP) id=11 [slave keyboard (3)]
$ xinput list-props 'generic ft5x06 (00)'
Device 'generic ft5x06 (00)':
Device Enabled (148): 1
Coordinate Transformation Matrix (149): -1.000000, 0.000000, 1.000000, 0.000000, -1.000000, 1.000000, 0.000000, 0.000000, 1.000000
libinput Calibration Matrix (280): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Calibration Matrix Default (281): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Send Events Modes Available (282): 1, 0
libinput Send Events Mode Enabled (283): 0, 0
libinput Send Events Mode Enabled Default (284): 0, 0
Device Node (285): "/dev/input/event2"
Device Product ID (286): 0, 0
$ xinput set-prop 'generic ft5x06 (00)' 'Coordinate Transformation Matrix' -1 0 1 0 -1 1 0 0 1
タッチを正しくするには、まず、xinput listで、現在のポインターデバイスの名前を確認。generic ft5x06 (00)がそれ。
で、xinput set-propでCoordinate Transformation Matrixをセットする。
参考文献:
Re: Official 7′ touchscreen, rotate touch (https://forums.raspberrypi.com/viewtopic.php?t=219333#p1348198)
Linuxでタッチスクリーンを回転して利用する (https://sh4869.hatenablog.com/entry/2015/11/01/013350)
こいつを毎回ログイン時に起動するようにする。
$ cp /etc/xdg/lxsession/LXDE-pi/autostart ~/.config/lxsession/LXDE-pi
~/.config/lxsession/LXDE-piにautostartファイルが無ければ上のコマンドでひな形をコピー。
/usr/bin/xinput set-prop 6 149 -1 0 1 0 -1 1 0 0 1
このファイルの最後に、上を追加する。
このxinput set-propはデバイスIDとプロパティIDで指定する。(クオートのくくり方がわからんかった。。。)
$ sudo apt install onboard
次にソフトウエアキーボードOnboardをセットアップ。
同様に、~/.config/lxsession/LXDE-pi/autostartでonboardを起動するようにしておく。
ここまでくればあとは、なんとでもなる。
xrdpがうまく動かんのは、デフォルトのアカウントだからかも。
新規に追加したアカウントだとさくっとログインできる。なんでやねん。