Gentoo RPi (7) 遅さの原因

根本的な原因は,CPUそのものの性能でしょうね.それはしょうがないです.

これまで4GB RAMのRaspberry Pi 4 Model Bでやってきました.CPUが4つあるので,makeのオプションを-j8としたいところですが,メモリーの制約があるからむやみに増やすなとどこかに書いてあったので,-j6にしました.ところが,-j6でも,rustとかspidermonkeyのような頭のおかしい高度なパッケージでは,しばしばswapを1〜2GBも使います.これは重大な足引っぱりです.

そこで,Slackware ARMで使用している8GB RAMのものと本体の交換をしました.Slackware ARMのほうはそんなに頭のいかれた高度なソフトをしばしば激しくbuildすることもないので4GBでもいいのですが,新しく買った8GBのRPi4本体は,WSとして使えないと結論してから使用目的がなくなり,高いほうを使わないのはもったいないので交換しておいたのです.

ということで,Gentoo ARM64は,8GBのRPi4で遊ぶことにしました.たぶん,swapを使って速度の足かせになる頻度は大きく減ると思います.

EFI設定の復習

Raspberry Pi 4 Gentoo ARM64用のSSDの組み替えをするのに,なんか思い切り勘違いをして,メインWS (Core i7)の旧メインWSパーティションにあるSlackwareと,EFIパーティションを破壊(もちろんソフト的な破壊😓)してしまいました.

具体的には間違えてマウントして,rsyncに–deleteオプションを付けて,コピー先にしてしまいました.

SlackwareはかつてのメインWSなので,ときどき手動ですが,バックアップをかけていました.最新のバックアップは2021年1月2日なので,悪くないです.そこで,全部コピーバックしましたが,EFIパーティションの中身を消してしまったので,それは自分で書いた記事を頼りに修復しました.

しかし,自分で書いた記事をちゃんと読まないから何回も失敗しました.

今回読み飛ばした一番重要なポイントは,USBメモリーから起動する際,「BIOSでBootドライブを選ぶモードに入り,USBメモリーのUEFIを選びます.」です.次の時のために,太字にしておきました.

EFI&GRUBが修復できて,なんとかブートするようになりましたが,SDDMが立ち上がりません.そういえば,1月2日以降に,新しくメインWSに昇格したGentooのPlasmaが,画面のちらつきを頻発するので,長年愛用していたGT-640は諦めて,Core i7のオンチップビデオに切り替えたのでした.

CUIでKernelのIntelのビデオチップをonにしてbuildしなおして,SDDMからPlasmaにログインできるようになり,Gentooもブートするようになりました.

Gentoo RPi (6) あれもない,これもない

そもそも,Raspberry Pi 4にGentooをインストールしようと決断するに至る決め手は,Gentoo WikiのRPi 4のページに,何でもできる,と書いてあったことです.

しかし,まだGUIのインストールもできていない段階で,普段使うツール類の整備をしていますが,一番好きなエディターJoeがない.Mac miniからLinux WS/サーバーにファイルを送り受けするのに常用するNetatalkがない(代わりのSambaはあります).Avahiはあるけどnss-mdnsはない(あるけどstableではない).

ないものはソースから自分でbuildすることにします.その場合のインストール先は/optで良いのかな.

このないものづくしの状態で,果てしない時間をかけてGUIのbuildをすべきか迷います.

ですが,迷っている間にもbuildさせようということで,emerge plasmaをかけました.やめる決心をしたら,SSDを消せば良いだけです(否,消さないで次の使い回しに取っておけばよい).

170パッケージのbuildingは,はたしていつ終わるんでしょう.

メモ

cmdline.txtにて,ルートドライブをUUIDまたはPARTUUIDで記述する場合,(ダブル)コーテーションを付けてはNG(/etc/fstabでは問題ない).

Gentoo RPi (4) やっと動く

電流不足の見立ては正解なようで,Raspberry Pi(RPi)4とUSB-SSDの間にSelf-powered HUBを入れることで,安定してSSDからブートするようになり,途中でSSDがdisconnectすることもなくなりました.

やっと,RPi 4が自力で動けるようになりました.

ブートすれば,あとは普通のAMD64やx86マシン同様,systemdのハンドブックに従い,まずはネットの設定をしてから,その他の設定をしていけば良いはずです.

しかし,ネットの設定ではまりました.同ハンドブックには,

/etc/systemd/network/50-dhcp.network

[Match]
Name=en*
 
[Network]
DHCP=yes

とありますが,これをこのままコピーしてしました.

最初は話を簡単にするために,有線のLANにつないでいます.Raspberry Pi 4の場合,正解は,

Name=eth*

です.ip aコマンドで,eth0になっていることを何度も確認しているのに,このファイルの内容との不整合に気がつきませんでした.

一時は,ネットがつながらないならQEMUを使ったクロスプラットフォームによるchrootでインストールを続けようと試みようとしましたが,内容が古くてだめでした(/usr/portageなんか使っている).

あとで思えば,なんでこんなところでと悔やまれます.もちろん,RPiいじりを一日中やっているわけではありませんが,これで,1日くらいロスしました.

ネットにつながれば,それこそsystemdやおおもとのハンドブックの手順で設定していけます.

しかし,遅い😓

今,rustとかいう言語ツールのコンパイル中ですが,rustc自身がツールの何かひとつをコンパイルするのに,2つのCPUをフルに使い,メモリーを4割使って既に80分以上コンパイル中です.他の3つのタスクも長時間多くのメモリーを使い,swap領域もかなり使っています.これじゃ時間がかかるわけです.

はたしていつ終わるのだろうか😓