Raspberry Pi2 を2台所有していて、一台が Raspberry Pi Model B V1.1 と基板上に印刷されていて、もう一台は Model B V1.2。
外観は同じで、違いは、印刷文字のV1.1とV1.2 という最後の一文字だけですが、FreeBSDを動かす場合には、とてつもなく大きな違いになります。
V1.2 のボードは、64bit OSが動き、freebsd-update によるバイナリーメンテナンスが出来るのに対し、 Raspberry Pi Model B V1.1 はSDイメージファイルが異なり、32bit FreeBSDしか起動しないし、freebsd-update コマンドでメンテナンスできない。pkg は動くので、ports コレクションはバイナリーメンテナンス可能なので、デスクトップ風には使えそうだけど、、、、
root@rpi2-32:~ # uname -a FreeBSD rpi2-32 13.2-RELEASE FreeBSD 13.2-RELEASE releng/13.2-n254617-525ecfdad597 GENERIC arm root@rpi2-32:~ # freebsd-update fetch install src component not installed, skipped Looking up update.FreeBSD.org mirrors... 2 mirrors found. Fetching public key from update2.freebsd.org... failed. Fetching public key from update1.freebsd.org... failed. No mirrors remaining, giving up. This may be because upgrading from this platform (arm) or release (13.2-RELEASE) is unsupported by freebsd-update. Only platforms with Tier 1 support can be upgraded by freebsd-update. See https://www.freebsd.org/platforms/ for more info. If unsupported, FreeBSD must be upgraded by source.
同じ Raspberry Pi2 なのに、すごく紛らわしいので情報をメモしておくことにしました。
Raspberry Pi2 Model B v1.1 限定
FreeBSD 13.2 インストールイメージファイルのありか
https://download.freebsd.org/releases/arm/armv7/ISO-IMAGES/13.2/
FreeBSD-13.2-RELEASE-arm-armv7-GENERICSD.img.xz
SDメモリライター
Linuxじゃないけど、Raspberry Pi Imager を使える。
圧縮ファイルからそのままSDメモリへ書き込めるのでディスクスペースの節約になる。
失敗談
CPU が ARM Cortex-A7 r0p5 で、ARM6互換ということなので、armv6 インストールイメージを使ってみたら画面に虹色マークが表示されるだけでOSは起動しなかった。(なんか前にも一度同じ失敗をした記憶がある。)
そういえば、64bit機能がない CoreDuo や Athlon など i386 CPUで動作する FreeBSDは、Tier 2サポートに後退してしまい、OSメンテナンスはソースメンテナンスになってしまうと発表されており、FreeBSD13.2 で確認したところ、実際にそうなっていたってこと。
HDDにOSを入れて稼働させる場合は、ソースメンテナンスでもいいんですよ。/usr/src にソースをため込んでおいて、脆弱性が見つかったというセキュリティーレポートが届いた時だけソースからビルドして、更新すればいいから。
SSDなら多少ましかもしれないけど、SDメモリ上でソースビルドは行いたくない!あっという間にSDメモリがすり減ってしまいそう。
HDDで稼働するFreeBSDマシンに、クロス環境をビルドして、そっちからバイナリー供給するという手はあるかもしれないけど。
Raspberry Pi2 にHDDをつなぐ?
Raspberry Pi で FreeBSDを動かそうとして、ここまで数年待って、ようやく使い物になりそうな バージョン 13.2 が出てきて、Raspberry Pi 3,4 はなんとかなりそうなものの、Pi2 V1.1はいきなり終息モードに入ってしまった!