PineTab 2にArch Linux ARMをインストールしたので誰かの参考になればとメモを残します。
PineTab 2を買うような人なら誰でもできることかもしれませんが。
2025/2/10 追記
OSK-SDLは動作するようになっていました。
画面回転がおかしくなった場合、ここを参考に直します。
用意すべきもの
- PineTab 2
- 256GB以上のSDカード(512GBくらいが推奨)
- USBのWi-Fiドングル
どのようなゴール?
- フルディスク暗号化されたArch Linux ARM
- UIはGNOME
- キーボードなしでディスク復号、ログイン、日本語入力ができるようにする
手順
作業用のSDカードにArch Linux ARM(KDE)をインストール
SDカードからeMMCを操作します。起動できたらsudo pacman -Syu --overwrite=*
でアップグレードしておきましょう。このときバージョンによってはUSBのWi-Fiドングルが必要になります。アップグレードが終わったら必要なくなります。
eMMCにArch Linux ARM(barebone)をインストール
eMMCに基となるArch Linux ARMをフラッシュします。
終わったら電源を切りSDカードを抜いて電源を入れると、eMMCからArch Linux ARMが起動し、パーティションが拡張されます。
またsudo pacman -Syu
を実行しておきましょう。nmtui
を使えばコマンド不要でWi-Fiに接続できます。
eMMCデータの退避
またSDから起動します。
mmcblk0p1とmmcblk0p2をマウント。SDカードに適当なディレクトリを2つ作成し、sudo rsync -aAXv
でコピーしておきます。
パーティションの調整
今のままのパーティション構成だと/bootが小さすぎてmkinitcpioに失敗します。
partedを使用してmmcblk0p1を512MB程度に拡張します。私はFAT32でフォーマットしました。このとき、mmcblk0の最初の32MBには触らずフリースペースとして残しておきます。ここにはU-bootのブートローダが入っているので触ると起動しなくなります。 もし触ってしまったらddで32MBだけコピーしましょう。
残りのスペースはLUKS2で暗号化し、ext4でフォーマットします。ここが/となります。
eMMCにリストア
先ほどsudo rsync -aAXv
でコピーしたファイルを再度rsyncを使って2つのパーティションに戻します。終わったらmmcblk0p1はアンマウントします。
初期RAMディスクの変更
mmcblk0p2をマウントしたディレクトリに対してarch-chrootします。そして/bootにmmcblk0p1をマウントします。
chrootできたら、/etc/mkinitcpio.confを編集します。HOOKSのfilesystems
の前にencrypt
を挿入します。終わったらmkinitcpio -P
で初期RAMディスクを作り直しておきます。
カーネルパラメータの変更
/bootにcdします。
boot.txtを編集し、setenv bootargs
にconsole=tty0
console=ttyS0,115200
cryptdevice=/dev/mmcblk0p2:root
root=/dev/mapper/root
を追記または変更します。
保存したらsh ./mkscr
を実行します。
fstabのUUID修正
/etc/fstabを修正します。/と/bootの設定が記述されているので、実際のUUIDに変更する必要があります。blkidコマンドで確認します。
/は/dev/mapper/から始まるデバイスのUUIDです。mmcblk0p2のUUIDではありません。
起動できるか確認する
これでCLI環境でのフルディスク暗号化が整いました。SDカードから起動しているOSをシャットダウンし、eMMCから起動してみます。
タッチ操作だけで復号できるようにする
このままだとキーボードがないと起動できないゴミなので、OSK-SDLを初期RAMディスクに含めます。/bootの容量が128MBのままだとここで詰みます。
eMMCから起動するとCLIで起動するハズなので、sudo pacman -S osk-sdl
でOSK-SDLを入れます。
入ったら、/etc/mkinitcpio.confを編集し、HOOKSのencrypt
の直前にosk-sdl
と入れます。
保存したらsudo mkinitcpio -P
を実行します。「limaが無い」とエラーが出ますが無視でいいです。けっこう時間がかかるので待ちます。
デスクトップ環境をインストールする
私が試した限りでは、タッチのみで日本語入力ができるのはPhoshとGNOMEだけです。PhoshはPCっぽくなさすぎるのでGNOMEを入れましょう。
いきなりGNOMEを入れると派手に中華フォントになるので、先にsudo pacman -S noto-fonts-cjk
でフォントを入れておきます。
できたら、sudo pacman -S gnome
でGNOMEをインストールします。
インストールが終了したら、sudo systemctl enable gdm
します。
また、これは私が悪いだけかもしれませんが、/etc/profile.d/gsk-renderer-shを編集し、ngl
をgl
に変えておきます。これをしないと私の環境ではウィンドウが化けます。パッケージ入れ忘れたのかな?
これで再起動してみましょう。
タッチ操作で日本語入力できるようにする
sudo pacman -S fcitx5-mozc fcitx5-configtool
でとりあえず日本語入力ツールを揃えます。
そして、GNOMEの拡張機能Kimpanel
とGJS OSK
をインストールします。これはブラウザで検索したら出てくるのでかんたんです。
この記事を書いた時点ではGJS OSKはそのままで有効化できません。./.local/share/gnome-shell/extensions/のしたにあるGJS OSKのmetadata.jsonを編集します。バージョンを書いてあるところがあるので、今使っているGNOMEのバージョンを追加しておきます。要は偽装です。
あとはGSJ OSKの設定からレイアウトを大きめにし、Fcitx5の入力メソッドにmozcを追加するなどすれば設定は終わりです。
完了!
再起動すると、GJS OSKが有効になっているはずです。GJS OSKでCtrl+Spaceを押すと、日本語入力ができるはずです。あとは好みに合わせてください。(なげやり)
GNOMEのタッチ操作で日本語入力
— v34 (@v34103080) October 28, 2024
めちゃくちゃレスポンス遅いし反応も鈍い pic.twitter.com/pK1YcRoRDH