HEAD に取り込まれた RaspberyPi3 対応
以前 RaspberryPi3 に関する記事 Raspberry Pi 3で FreeBSD(ARM64) をお試しする で紹介したOSイメージは、一発芸的に「とりあえず動いたでー」といった感じで、HDMI出力も有線LANもないかなりハードなものでした。
それから数ヶ月、ついに今年10月、RaspberryPi3対応のコードが正式に FreeBSD の HEAD にマージされました(freebsd-arm でのアナウンス)。
arm64 対応で、HDMIも有線LANもふつうに動きます。GPIO も動いてLチカもOK(i2cはまだだめ)。SMPや、 Pi3 の売りである WiFi や Bluetooth はまだ未対応ですがこれだけ動けば随分と気楽にいじれるようになったと思います~~(SMP対応については後述)~~。
2018/12/01 追記
SMP は既に普通に動いています。
インストール
FreeBSD wikiにビルド手順などがありますが、SDイメージを既に RaspBSDで配布しているので、それを試すのが楽だと思います。
http://www.raspbsd.org/raspberrypi.html (ダウンロードページ)
http://download.raspbsd.org/FreeBSD-aarch64-12.0-GENERIC-UP-308109M.img.gz (2016/12/02時点の最新イメージ)
2018/12/01 追記
RaspBSD の更新が止まってしまっていて、ダウンロードできるファイルが今となってはとても古いイメージとなってしまいました。最新イメージは
https://download.freebsd.org/ftp/snapshots/arm64/aarch64/ISO-IMAGES/12.0/
以下の
FreeBSD-12.0-*-arm64-aarch64-RPI3-(日付)-r(リビジョン).img.xz
なファイルです。
上記はcurrent を定期的にビルドして機械的にアップロードされているイメージなので、しばらく日にちが経つと自動的に消えてしまう点は注意してください(安定して動いてたイメージはローカルで保持しておくとか)。
イメージをダウンロードしたら、microSD に(gz解凍しながら)dd して RaspberryPi3に挿入して起動するだけです(dd等は過去記事:FreeBSD で Raspberry Pi インストール参照)。
wiki手順通りのビルドに関しては slug さんがこちらの記事 Raspberry Pi 3 Model BにFreeBSD 12-CURRENTを入れてみたを書かれているので参考になると思います。
# pkg は11-stable版を使う
ソフトのインストールに便利な pkg も使えます。しかし上記のRaspBSDのダウンロードページの下に書いてあるとおり、現時点では12-current向けpkg が配布されて無いので、11-stable版を使うよう pkg を設定してあげる必要があります。
RaspBSDのダウンロードページの注意書き通り
~~```
env ABI=FreeBSD:11:aarch64 pkg bootstrap
~~を実行したあと、/usr/local/etc/pkg.confに~~
~~```
ABI = "FreeBSD:11:aarch64";
```~~
~~という行を追加します。~~
---
**2018/12/01 追記**
**上記の小細工は不要になりました。**
---
pkg はかなりそろっていて、ビルド無しで Xorg 環境が構築できます。構築手順は他の Raspberry Pi と同じです(参考: [FreeBSD/RaspberryPi での Xorg のインストール](http://qiita.com/s_mitu/items/be2d994ae731a5c98be6))。
~~# ビルドするためには devel/aarch64-binutils が必要
このイメージの初期状態ですとcc はあるのですが、いざコンパイルしようとすると「ldが無いよ」エラーが出てリンクできずに終わってしまいます。
リンクに必要な binutilsが入ってないためで、pkg で devel/aarch64-binutils をインストールすればコンパイルとリンクが行われ、実行ファイルが生成できるようになります。~~
---
**2018/12/01 追記**
**上記のような手間は不要になりました。**
---
~~# SMP 対応きちゃった
上の方でSMP対応がまだと書きましたが、2016/11/29 freebsd-arm ML に
「SMP対応が使えるレベルになったでー」
という投稿がありました。現時点で早速試したい人向け手順も書いてあります。
https://lists.freebsd.org/pipermail/freebsd-arm/2016-November/015092.html
というわけで試してみた結果については別記事にしたいと思います(小出しにしていくスタイル)。~~