6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RaspberryPi5 で FreeBSD を起動する

6
Last updated at Posted at 2025-11-30

一ひねりしないとできない RaspberryPi5 での FreeBSD 起動

 RaspberryPi5 が登場して結構立ちますが、2025年12月 現在でも公式イメージをSDに書き込んだだけでは起動できません。同じ aarch64 の RasPi でも Pi4/Pi3/Pi Zero 2 W は大丈夫です。Pi5で起動の部分で大きな変更があり、FreeBSDだけでなく、NetBSD などでも従来のようなSDでの起動はできなくなっています。
 ではどうにもならないかというとそこをどうにかするプロジェクトがあって、それが rpi5-uefi です。FreeBSD に限らず様々な OS を UEFI でブートできるようにするプロジェクトです。当初

で開発されていましたが開発停止し、その後 fork した

で引き継いで開発がされています。

実際の手順

では実際の手順です。以下の手順は FreeBSD マシン上での作業を仮定しています。

イメージを USB メディアに焼く

 まずは FreeBSD のイメージです。記事作成時では出たてほやほやの 15-RELEASE のイメージ

をダウンロードして使ってみます。
 このイメージを microSD ではなく USBストレージに書き込みます。まぁカードリーダー経由で USB に接続すれば microSD カードも使えますが、microSD スロットにさして起動はできません。なぜUSB 経由じゃないとだめなのかというと、UEFI 起動中は SD カードがアクセスできるのですが、FreeBSD カーネルロード後にカーネルから SD カードにアクセスできず、root ファイルシステムにアクセスできずに止まってしまうためです。

以下では、USB ストレージは作業PC上では /dev/da0 にあると仮定してコマンドを記述します。

FreeBSD で /dev/da0 へのイメージの書き込み例

# xzcat FreeBSD-15.0-RELEASE-arm64-aarch64-RPI.img.xz | dd of=/dev/da0 bs=2m progress=status

rpi5-uefi を FAT領域に書き込み

 rpi5-uefi の配布物である RPI5_D0.zip を https://github.com/NumberOneGit/rpi5-uefi/releases/tag/v0.1 の https://github.com/NumberOneGit/rpi5-uefi/releases/download/v0.1/RPI5_D0.zip からダウンロードします。
 RPI5_D0.zip はディレクトリなしで圧縮されているので、他のファイルとごっちゃにならないようにRPI5_D0 ディレクトリに展開するため unzip -d RPI5_D0 RPI5_D0.zip などと実行します。そして展開したファイルを先程焼いた USB ストレージの FAT 領域に書き込みます。

# fetch https://github.com/NumberOneGit/rpi5-uefi/releases/download/v0.1/RPI5_D0.zip
# unzip -d RPI5_D0 RPI5_D0.zip
# mount_msdosfs /dev/da0s1 /mnt
# cp -r RPI5_D0/* /mnt
# umount /mnt

rootfs を指定

 更にひと手間。このままだとイメージを root ファイルシステムが USBストレージ(/dev/da0)にあることがわからず止まってしまう(手打ちで指定できますが面倒)なので、予め設定を変更しておきます。
 root ファイルシステム /dev/da0s2a を mount して、boot/loader.confvfs.root.mountfrom="ufs:/dev/da0s2a"の行を追加します。

# mount /dev/da0s2a /mnt
# echo 'vfs.root.mountfrom="ufs:/dev/da0s2a"' >> /mnt/boot/loader.conf
# umount /mnt

USB にストレージを接続して起動 

 RaspberryPi5 はデフォルトで USB ストレージからのブートが有効なので、microSD に何も入っていない状態で USB ストレージを挿しておけば起動します。

 以上の手順で FreeBSD が立ち上がるはずです。

できないこと

 起動はしましたが現状ではいろいろとできません。RaspberryPi4 なども動かないものがありましたが、その比ではありません。

WiFi/Bluetooth

 これは RaspberryPi4 などでも動かないのでまぁ現状はどうにもならない感じです。

microSD カードスロット

 上記の起動手順からもわかるとおり microSD カードスロットは使えません。

GPIO pin

 GPIO pin は全く使えません。GPIO pin 上のシリアルポートなどもつかえないので、シリアルコンソールで操作できません。

有線 LAN

 有線 LAN ポートも使えません。


 ということで RaspberryPi4 までで動いていたものも色々動きません。

動くもの

 逆に何が動くかというと、

HDMI

 HDMI ポートは使えるので画面出力は OK です。Xorg も起動できます。

USB ポート

 USB 接続のデバイスは動きます。マウス、キーボード、WiFiドングルなどは動作しました。USB が動けばそれなりに逃げ道があるかなぁという感じです。

実際の起動動画

 15 Beta3 の頃の起動してアプリが動くまでの動画です。HDMI を USB キャプチャしています。
 起動している環境は、上記の手順でイメージを作成後に、USB WiFiドングルでネットワーク接続できるようにし、Xorg / XFce4(デスクトップ環境) / sddm(ログインマネージャ) / firefox (ブラウザ)を pkg でインストールし、以下を実行しています。 

 WebGL Aquarium は動作スピードがどんなもんかの参考になるだろうということで最後に参照してみました。動画では 魚500匹で FPS12くらいです。

6
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?