Gentoo RPi (1) ブートする

Raspberry Pi 4 Model B 4GB(以下RPi4)に,Gentooをインストールしはじめました.

GentooのWikiに,Raspberry Pi 3 Model B(+)(以下RPi3)と,RPi4のインストールメモ書きのようなものがあります.RPi4のページでは,RPi3で既知なことは省略して,RPi4 specificなことしか書いてないので,行ったり来たりしなければなりません.

とにかく,ブート用のイメージがないので,他のマシン,というか,AMD64かx86のGentooの実マシン(以下GentooPC)がないと始まりません.

記憶メディアは,RPi3だとSDカードとなりますが,RPi4は,SSD/HDDからブートできますので,作業効率も考えてSSDにしました.たまたま1TBのSSDが1つ余っているのでそれを使います.

パーティションは,Wikiの記事に逆らってGPTにして,VFAT 512MB, swap 4GB, 残りをrootにしました.

GentooPCでいろいろ準備して,そろそろできた頃合いと思ってSSDをRPi4につないで電源を入れますが起動してくれません.まあ,一発完動しないのはやむを得ません.

Wikiを読み返しながら,なぜかGentooPCの/bootに入ってしまったfirmwareを/mnt/gentoo/bootに移し替えたら,どうやらSSDのVFATからブートしました.

しかし,四角い虹色の画面から進まず,緑のLEDが7回連続して点滅するのを繰り返します.

これは,Raspberry Piのサイトから,「Kernelが見つからない」と判明しました.

これまでは,何かやっても手応えのない,糠に釘状態でしたが,ようやく,症状から原因の端緒につながりそうな弱々しい一条の光が見えてきました

Kernelはクロスコンパイルして仕立てて/mnt/gentoo/bootに,kernel8.imgとしておいてあるのですが,他のkernel*.imgのうちで,関係なさそうなのをimg-orgという拡張子にしてしまいました.

その結果ようやくKernelがブートしますが,Kernel Panicを起こします.

その時のメッセージで検索してみると,「64bitのinitがインストールしてあるのにKernelは32bit」の場合に出るメッセージだということです.

そこで話を簡単にするため,/mnt/gentoo/bootの,クロスコンパイルして作ったイメージをkernel.imgにして,その他のkernelを全てimgでない拡張子にしました(注: この記述ははなはだ疑わしいというか,たぶん勘違いです.RPi 4はkernel8.imgを使うので,コンパイルして作ったイメージをkernel.imgにしてもブートしないはずです).

これでなんとかCUIのログイン待ちになりました.

しかし,rootでログインできません.デフォルトでは,rootのアカウントがロックされているそうです.これも,ネット検索すると,「/mnt/gentooにchroot」するなんていう答えばかりで,「それができないから苦労しているんだ」と思わず叫びたくなります.

これは,shadowのrootの行を生きているマシン(GentooPC)からコピーすれば解決します.

これから,x86やAMD64では,chrootして行う作業を,実際の起動環境で行っていきます.

実マシンではあまりに手応えがないので,AMD64のGentoo実マシンのQEMUで動かしてみようかと思いましたが,RPi4のプロファイルがないのでやめときました.RPi3では,SSDからブートするように仕立てられません.
GentooPCにマウントした状態で.
GentooPCにマウントした状態で.

Gentoo (32) crossdev

Linuxインストール遊びという趣味は,一つインストールが終わると次のインストールをしたくなるものです.しかも,前よりも難易度の高いインストールでないと気がすまない😥

そこで,ちょっと考えてもどうやっていいのかさっぱり見当がつかないほど難しい,Raspberry Pi 4へのGentooのインストールをすることにしました.

ドキュメントはあるんですが,全く不親切極まりない内容で😥,四苦八苦していますが,ようやく,クロスコンパイラーのインストールに(たぶん)成功したようです.

この[1] aarch64というのが,どうやらARM64らしいです.[2] AMD64よりも,新しいバージョンですね.

続きは明日以降にします😥

イメージからブートして,と思ってイメージを探しても存在しないのです😓 たぶん,これが元々のGentooの姿なんじゃないかと思います.

Gentoo (30) 仮想マシン関係のバグ

仮想マシンの整理をしていて,32bit版のDebianがまだVerision 9 (Stretch)であることに気が付きました.あまり32bit版を残しておく意味はないのですが,多分ずいぶん前に仕立てた仮想マシンなので,記念にとっておくことにしました.動かないのでは意味はなく,メンテは必要なので,Busterにupgradeすることにしました.その前に,スナップショットを,と思ったらエラーが出てできません.

どうも,現在のGentooにおける安定版のバグのようです.

バグが解消される新しい安定版のリリースを待つことにします.その間は,rsyncでコピーを取ることにします.

追記

当該の32bit Debianは,4度目くらいのトライで,Debian 10 Busterにupgradeできました😓

Debian(Raspberry Pi OSを含む)のupgradeはよく失敗しますので😥

Debian: update-initramfs

実マシンから仮想マシンに変換したDebian (AMD64)が,起動時に30秒ほど何かのタイムアウトを待ち,ほかが速いのに残念に思っていました.これは,

sudo update-initramfs -u

というコマンドで,initrdを作り直すことで解消しました.

たぶん,仮想マシンから実マシンに変換するときも必要になると思うので,記録しました.