NetBSDクロス開発環境構築
NetBSDは、互いに異なるアーキテクチャのコンピュータの実行バイナリのみ
ならず、それを実行するOS自体もクロス開発可能である。ホスト側もターゲット側
も、互いに任意の組合せで可能である…ように作ろうと意図されている。
これをロボットや、センサネットワーク等の組込機器の開発に活用しない
わけにはいかない。1.6.xの頃から急速に環境が整備されて実用性が高まって
来たが、2.0でとうとうクロス開発環境として完成の域に達した。これを利用
してクロス開発環境を構築する備忘録として、このページを書く。
おそらく、UNIX Magazineの連載「ロボットのある暮らし」に登場するSpeecys
(スピーシーズ)ロボット等の開発者にも役立つだろうと期待している。
前提条件
NetBSD 2.0で、ホスト側i386(IBM ThinkPad A21e), ターゲット側ブレインズ
mmeyeとする。作業は、スーパユーザ(root)で行い、一般ユーザ権限ではOSの
開発は行わないものとする。ただし、一般のユーザランドアプリは、一般
ユーザ権限でも開発する。
OSインストール
まずホスト側PCに、NetBSD2.0.2をインストールした。0.8の頃のようにtar玉
が転がってるのではなく、一応インストーラが付属している。実にそっけ無い
インストーラだが、案外使い易かった。ただしパーティションエディタの吐く
C/H/SはWindowsと両立しなかったので、MBMをパーティションエディタ兼ブート
セレクタとして使用した。MBMは、これで後、FDだけでなくCDも起動デバイスに
選べたら言うこと無しだね。
簡単なガイドを見つつ、初起動、2度目の起動の設定を済ませる。
ソースツリーの展開
xsrc以外のソース(gnusrc.tgz, src.tgz, sharesrc.tgz, syssrc.tgz)
を/usr/srcに展開。
クロス開発用の環境変数設定
setenv TOOLDIR /usr/tool
setenv DESTDIR /usr/dest
set path=($TOOLDIR/bin $path)
|
をrootの.cshrcに追加。念の為、loginし直す。pathには$TOOLDIRではなく、
$TOOLDIR/binを追加するのを間違えないこと。
次いで作業ディレクトリを用意する。
# cd /usr
# mkdir tool dest obj
|
クロス開発ツールの作成
クロス開発用のツールを/usr/toolに構築する。
# cd /usr/src
# ./build.sh| less # usageを読む
# ./build.sh -m mmeye tools >& tools.log &
# tail -f tools.log
暫し待たれよ
|
成功したら、/usr/tool/binに開発ツールが出来てるはずである。そこで、
rehash するか、loginし直す。
クロス開発環境の構築
いよいよ最終段階。ライブラリ等の諸々を含めたクロス開発環境を構築する。
# ./build.sh -m mmeye build >& build.log &
# tail -f build.log
|
これで完成。しかし、IBM ThinkPad A21e(Celeron/600MHz)で4.5時間掛かった。
クロス開発
ユーザランドアプリ
通常のmakeの代わりに nbmake-mmeyeを使うだけ。ただし、一応Makefileを作る。
環境変数の設定を忘れないこと。
% cat >jkl.c
#include <stdio.h>
main(){
printf("hello, world!\n");
}
^D
% cat >Makefile
PROG= jkl
.include <bsd.prog.mk>
^D
% nbmake-mmeye jkl
|
後はftp等でターゲットに送り込んで実行する。
一般ユーザ側も、環境変数の設定を忘れないように。
kernelの再構築
通常のconfigの代わりに nbconfig-mmeyeを使う。
通常のmakeの代わりに nbmake-mmeyeを使う。
環境変数の設定を忘れないこと。
# cd /usr/src
# cd sys/arch/mmeye/conf
# cp -ip MMEYE MYKERNEL
# nbconfig MYKERNEL
# cd ../compile/MYKERNEL
# nbmake-mmeye depend && nbmake-mmeye
|
参考文献
以上、及びNetBSD,GNUのソースコード寄贈者に感謝。いや、本当に。
中村和志のNetBSDページ
このページ<http://www.kobe1995.jp/~kaz/NetBSD/cross.html>はリンク
フリーです。無断でリンクして構いません。
Absolutely No Warranty!
またこのページの内容について、正確を期すよう努力は致しますが、
全くの無保証です。ここで得た情報は、全て自分の責任でご利用下さい。
For questions or comments, please send mail to:
kaz@kobe1995.net