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して行う作業を,実際の起動環境で行っていきます.

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