はじめに
FreeBSD/ARMのイメージファイル作成を補助するcrochet-freebsdを使ってBeagleBone Black向けのイメージファイルを作成した手順を書いておきます。
用意するモノ
- BeagleBone Black
- microSDHCカード
- USBシリアル変換ケーブル(FTDI USB・シリアル変換ケーブル(3.3V)など)
- FreeBSDが動作する環境(VirtualBox、Hyper-Vなどの仮想環境も可)
- MicroSDのイメージファイルが書き込める環境
イメージを作成した環境はFreeBSD 10.0p5/AMD64。
VirtualBox及びHyper-Vの仮想マシンに用意しました。
crochet-freebsdの実行環境を準備
クロス開発ツール(XDEV)を構築
ソースディレクトリ(/usr/src)に移動し、以下のようにクロスコンパイラとライブラリをビルドします。
# cd /usr/src
# make XDEV=arm XDEV_ARCH=armv6 xdev
依存パッケージのインストール
ブートローダーのu-bootのビルド等に必要となるアプリケーションをパッケージからインストールします。
# pkg install gsed gcc gmake git
gccはgcc47というコマンド名でインストールされるので、gccで参照できるようにシンボリックリンクを張る。
# ln -s /usr/local/bin/gcc47 /usr/local/bin/gcc
crochet-freebsdの取得
イメージ作成支援ツールのcrochet-freebsdをgithubのリポジトリからcloneします。
# git clone https://github.com/kientzle/crochet-freebsd.git
作成するイメージの設定
crochet-freebsdの設定サンプルをコピーし、作成するイメージにあった設定に変更します。
# cd crochet-freebsd
# cp config.sh.sample config.sh
# vi config.sh
今回はとりあえず動作するイメージを作るので、デフォルトに対して以下の変更をします。
- Beaglebone Blackをターゲットにする(board_setup BeagleBoneのコメント(#)を外す)
- イメージサイズを4GBカードに合わせる(option ImageSize 3900mbのコメントを外す)
- 初回ブート後にSDカードの容量に合わせてファイルシステムをリサイズする(option AutoSize のコメントを外す)
- 1GBスワップファイルを作成(option SwapFile 1024mbを追加)
イメージファイルを作成
crochet-freebsdを実行してイメージファイルを作成します。
# ./crochet-freebsd -c config.sh
イメージの作成まで自動で実行されます。
Core i5のWindows 8.1 Pro 64bit + VirtualBox環境でも待ち時間は相当長い(4時間から6時間ぐらいかかります)のでゆっくりと落ち着いて待ちましょう。
ユーザーランドのビルド、カーネルのビルド、ブートローダ(uBoot)のビルド、イメージの作成の各段階ごとにログが出力されます。
イメージファイルの書き込み
crochet-freebsdのディレクトリ以下に作成されたworkディレクトリにFreeBSD-BEAGLEBONE.imgという名前でイメージファイルが作成されます。
ddコマンドなどでMicroSDカードに書き込みます。
VirtualBoxからの書き込みでは約20分程かかります。
ここも焦らずに待ちましょう。
起動の確認
書き込みが終わったMicroSDカードをBeagleBone BlackのSDカードスロットにセットします。
MicroSDカード近くのS2ボタンを押下しながら電源を接続します。
初期のrootパスワードはナシですのでユーザー名の入力のみでログインできます。
ここまで来れば基本的にタダのFreeBSDです。
まとめ
以前、トライした時に比べてFreeBSDのARMサポートも良くなっていますしcrochet-freebsdもだいぶ整理されていて良くなっています。
USBストレージが安定しないなど使えるレベルでは無いと思いますが評価はイケルかと。