LoginSignup
3
1

More than 5 years have passed since last update.

NanoPi Neo でFreeBSD (ビルド編)

Last updated at Posted at 2018-12-07

NanoPi Neo とは

Raspberry Pi より ちっちゃい ARM ボードです。
P_20181203_000726.jpg
上が Raspberry Pi 2、下が NanoPi Neoです。

ちっちゃいですが、CPUは クアッドコア1.2Gのプロセッサ(Allwinner H3 Quad-core Cortex-A7)で、結構パワフルです。
具体的なスペックはこちらNanoPi Neoのスペック

RaspberryPi などと違って、HDMIなどの画面出力はありません。シリアルコンソールやネットワーク経由で操作します。

デスクトップ用途も考えられているRaspberryPiと違い、USBコネクタ(最初からついている1つとヘッダピンから自前で配線する形で2つ)や GPIO ピンなどに外部機器を繋いで、色々制御することに特化しています。小さいボードですからいろんな所に忍び込ませやすそうです。

秋月で NAS として使うキット なんかも売られてます。

FreeBSD イメージビルド

NanoPi Neoで FreeBSD を動かすには、イメージのビルドから始める必要があります。Raspberry Pi などと違って予めビルドされたイメージを FreeBSD公式で配布していないためです。

ビルドは crochet ツールを使います(crochet 公式)。Raspberry Pi などのARMボードをお手軽にビルドするスクリプト群です。
crochet ツールには予めいくつかのボードの設定ファイルが入っているのですが、そこにも NanoPi Neoはありません。
ですが、同じAllwinner H3 を使用した Orange Pi Oneの設定をちょっとだけ修正するだけで、設定ファイルはだいたいそのまま流用することが出来ます。
Orange Pi One の設定をコピーしてNanoPi Neo の設定を追加した crochet ツールのリポジトリをgithubに作りましたの( https://github.com/s-mitu/crochet )。以下はそれを使ったビルド手順です。FreeBSD amd64 環境(current r341355で確認しています)で以下の手順を実行します。

ビルド手順

  • NanoPi Neo用 u-boot のインストール pkg/ports の sysutils/u-boot-nanopi-neo をインストールします。crochet ツールで使用します。
# pkg install sysutils/u-boot-nanopi-neo
  • /usr/src に FreeBSDソースを用意

current のソースなら


# cd /usr
# svn co svn://svn.freebsd.org/base/head src

とりあえず r341355 でビルド成功しています。

  • crochet ツールをダウンロード
# git clone https://github.com/s-mitu/crochet
  • crochet 実行
# cd crochet
# sh crochet.sh -c config.sh.nanopineo

これでビルド開始です。
数時間放置すれば、work ディレクリ以下に

# ls work/*.img
work/FreeBSD-armv7-13.0-GENERIC-341355M-NanoPi-NEO.img

というような感じのイメージが出来上がるはずです。
4GB 以上のmicroSDに dd コマンドでイメージを書き込みます。

# dd of=/dev/(microSDディスクのデバイスノード) of=work/FreeBSD-armv7-13.0-GENERIC-341355M-NanoPi-NEO.img bs=2m

(microSDディスクのデバイスノード)は da? とか mmcsd? とか環境に合わせて。間違って他のディスクに書き込むと悲惨なことになるのでなるべく不要な外部ストレージは引っこ抜いておいて実行したほうが安心です。

次回は実際に書き込んだイメージでブートして、何が動いて何が動かないのか確認します。

3
1
0

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
3
1