Raspberry Pi 2 v1.2 上で FreeBSD 13.4 を使おうとして、またまたダウンロードするイメージ探しに時間を浪費してしまったので、メモしておくことにします。
Raspberry Pi 2 は、基本的には32bit ボードと思っておけばいいのですが、v1.2ボードは、実は64bit ARM。64bit FreeBSD が使えます。Raspberry Pi Imager を使って、Linux OSイメージを作る場合、RPI2 は32bit Linuxしか選択できません。64bit Linux を選択できるのはRaspberry Pi 3 以上。
FreeBSD/ARM の場合も、RPI3,4 は64bit FreeBSD イメージをダウンロードするようにダウンロードページが作られているものの、64bit Raspberry Pi 2 を動かすための明確なFreeBSD イメージへのリンクはありません。
毎回、どのイメージだったっけ?となって、32bit イメージをダウンロードしたり、arm v6 用イメージを焼いてみたり、RPI以外の組み込みボード用のものをダウンロードしてみたり、正しいイメージを選択するために数時間ロスしたりします。SDメモリに書き込んで実際にブートさせてみないと、本当に正しい選択だったのかどうかがわかりませんからね。32bit → 64bitの更新は上書きは出来ず、再インストールになっちゃう。
RELEASE-arm64-aarch64-RPI
という単語を含んだイメージをダウンロードしてSDメモリに書き込めば、それが 64bit FreeBSD for RPI2v1.2。これは RPI3, RPI4 用イメージと同一。具体的に 13.4 の場合は、FreeBSD-13.4-RELEASE-arm64-aarch64-RPI.img.xz が目的イメージとなります。
RPI2 v1.2 なんて、どうせメインメモリ 1GBしか積んでないんだから、32bit でもいいでしょ!と思うかもしれませんけど、v1.2 とv1.1 の違いは大きい。
一つは、USBブート。v1.2 は SDスロット空っぽで、USB接続外部HDD(や USBメモリ)から起動できるので、SDメモリの寿命を気にする必要なくビルド作業ができる。
それから、FreeBSDの場合、32bit OSはTier2 になってしまったため、パッケージメンテナンスが置いてけぼりになるものがある。例えば、MySQLサーバー。64bit OS用にはPortパッケージが準備されているが、32bit 用にMySQLサーバーが存在しないタイミングがあります。(今は、復活したようですが。)つまり、64bit では使えるけど、32bit ではパッケージが無い!ってことが起きる。
基本的に主記憶が3GB以下なら、32bit でも 64bit でも、使っているユーザーには速度さなんてわからない。丸々使えるパッケージが同じなら、SDメモリで起動して、HDDファイルシステムをマウントすればいいから、あまりこだわる必要はない。しかし、メインパッケージの有る無しという違いが起きるのはありがたくない。
長くなりましたけど、次回、イメージを作る時の時間ロスを避けるための情報メモでした。