6月 222015
 

遅ればせながらですが、Raspberry Pi2 MODEL B を購入しました。まぁ、世の中はボーナスセール開催中ですしねぇ。

と、いうことで Amazon で手頃な値段で売っていたのでゲットです。ケース付き本体が 5,980yen 、 そこにヒートシンク 850yen が無料で付くというのでそれをそのまま購入。翌日には配送されました。

筐体が届き OS はどうすんべかいのお・・。などと悩んでいたのですが FreeBSD/arm をインストールすることにしました。

と、いうことで初めての FreeBSD/arm です。今回から数回に分けて Raspberry Pi2 で FreeBSD/arm が動くまで、動いた後について書いて行きたいと思います。

 
1). 購入
まぁ、 Amazon でボタン押しただけですf(^^;;。
届いたのはこんな感じ。

IMG_2092_raspi2_1

箱とケース付きの本体と、そして、ヒートシンクパック。これで送料込み 5,980yen だったのでまぁ、ボチボチかな。

電源ケーブルがありません。どうすんねん? とか思ったら MicroUSB から電源供給できるんですね。スマホの充電ケーブルとかが代用できます。僕は docomo の MEDIAS N-04D 購入したときに合わせて購入した電源コンセント -> MicroUSB で無事に起動しました。ふふふ。

 
2). OS は FreeBSD/arm をチョイス
ウェブなどで調べたのですが、まぁ、以下の URL が参考になるでしょうか。

FreeBSDarmRaspberry Pi 2 image

ここを見て色々やろうとしました。まず rpi2.img ってのはなんだべ? ってことろから入るのですが、それはつまりは、以下の URL からダウンロードしてきた USB スティックイメージのことなんですね。

ftp://ftp.freebsd.org/pub/FreeBSD/snapshots/arm/armv6/ISO-IMAGES/11.0

僕は今回は FreeBSD-CURRENT をチョイスしました。そして FreeBSD-11.0-CURRENT-arm-armv6-RPI2-20150618-r284544.img というファイルを利用しました。
ダウンロードした img ファイルを上記 URL のように mdconfig とか打ったりしたんですが、面倒になったのでいきなり手持ちであった 8GByte の MicroSD カードに素の img ファイルを dd コマンドを叩き書き込んでみました。

# dd if=FreeBSD-11.0-CURRENT-arm-armv6-RPI2-20150618-r284544.img of=/dev/da1 bs=10240

 
of= は自分のデバイスに合わせてください。あ。上記コマンドは FreeBSD/amd64 上で実行しています。

MicroSD カードに OS が入ったので Raspberry Pi2 に突っ込んで電源投入です。あ。 USB キーボードと HDMI のディスプレーを用意してから電源投入しました。

するとな。なんとっ!! サクっと OS が起動しました。すげー。今の FreeBSD-CURRENT はスゲーよっ!!

USB キーボードも認識するし、 USB Wi-Fi を接続したら run0 で認識するし、 CPU は四つ認識しているし、あっと言う間に Raspberry Pi2 から FreeBSD/arm が起動しました。

あ。一点だけ。 root パーティションが見つからないのでブートは途中で止まります。

boot> ufs:/dev/mmcsd0s2a

 
として起動するとサクっとブートして login プロンプトが出ました。
default のユーザ名 root でパスワードも root でサクッとログインできました。ログイン後に /etc/fstab を以下のように変更します。

# Custom /etc/fstab for FreeBSD embedded images
#/dev/ufs/rootfs /       ufs     rw      1       1
/dev/mmcsd0s2a   /       ufs     rw      1       1
/dev/msdosfs/MSDOSBOOT /boot/msdos msdosfs rw,noatime 0 0
md /tmp mfs rw,noatime,-s30m 0 0
md /var/log mfs rw,noatime,-s15m 0 0
md /var/tmp mfs rw,noatime,-s12m 0 0

 
これで無事に起動します。 8GByte MicroSD は 8GByte よりちょっと小さい / バーティションが用意されます。

あとは freebsd という su できる一般ユーザがあるのでこれを適当に利用したり削除して自分のアカウントを作成したりして、 /etc/rc.conf を書き換えたりとか、自分の好みの FreeBSD に仕上げて完成。

dmesg は以下になります。

dmesg

FreeBSD/arm には PCI BUS ってのは無いようですね。pciconf -lv は表示してくれません。
あと、 sysctl -a を見ると dev.cpu.0.freq で CPU 速度が 900MHz と 600MHz で可変のようですが、 900MHz で動作しているところを見たことがありませんf(^^;;。
dev.cpu.0.temperature もきっちりとあって、温度が取れます。僕のはヒートシンク付きなので高いときで大体 44゜C くらいでしょうかね。

 
Raspberry Pi2 を知らなくて FreeBSD にうんと詳しい人(あ。それは僕のことです;-P)が接すると大体一時間くらいで遊べるようになります。

 
3). /usr/prots どうするよ?
一応 NFS まで動かして自宅の ports サーバの /usr/ports を NFS マウントして /usr/ports/ports-mgt/pkg/ を make してみたのですが、やはり遅くてダメですね。途中で Ctrl-C して止めてしまいました。

クロスコンパイル環境を FreeBSD/amd64 に作らないとダメっぽい。

とわ言いつつ、一応、自分で make した packages を用意しました。以下の URL にあるので欲しい方はダウンロードして pkg add してみてください。

http://distfiles.icmpv6.org/distfiles/packages/All.armv6/

拡張子が tbz なのは僕が make したモノ、 txz は README.txt に書かれている URL からダウンロードしたモノになります。
上にも書いている通り僕は FreeBSD-11.0-CURRENT の r284544 を利用しています。そこでコンパイルしたモノになります。 make config は自分の趣味で指定してます。極力余計なモノをインストールしないオプションを指定しています;-)。

 
と、いうことで今回はここまで。

FreeBSD-CURRENT の image ファイルを持ってきて dd して Raspberry Pi2 で起動すると、あっと言う間に起動します。すげー簡単に FreeBSD/arm が遊べるようになります。

次は FreeBSD/amd64 でクロスコンパイル環境が作れた。と、いうネタで書けると良いなぁ;-)。

 
僕はヒートシンク(プロモーションだった;-)付きで 5,980yen で購入したんだけど、タイミングが良かったのかな?