2005-08-27 (土)
*FreeBSD上で組み込みLinuxをmake
昨日の続き.MIPS用のクロスコンパイラも一緒に公開されていたのでダウンロードしてくる.当然のようにLinux用のバイナリなのでlinux_baseを動かしてmakeするためのスクリプトを動かす.って,やっぱBSDのmakeじゃ駄目ですか.まぁ,この辺は予想通りなので,makeをgmakeへのリンクで置き換え.
とりあえずmake開始.……なんでファイルの位置をフルパスで書いてある場所があるかな….よく分からないので,とりあえず,ln -sでリンクを作って無理やり通す.多分,configureスクリプトみたいなのがどこかに入っているのだろうけど….
で,make再開.ranlib関係でおかしなことに.この辺もLinuxとBSDで互換性が無いのか.arコマンドがツールとして付いてきたので,-sオプションをつけて実行してファイルに適用.
make再開.途中でいきなりgccが見つからないとか言い出す?Makefileを読んで見るとPATHが通ってないと駄目っぽい.なんで,コンパイラを見つけるのに環境変数を使ってくれる場所と使ってくれない場所があるんだ.
で,またmake再開.今度はヘッダファイルが見つからないっぽい.とりあえず,Makefileを編集してソースに含まれるincludeディレクトリを探すように.
…今度こそ,と思ってmake再開.BSDのsys/_types.hとダウンロードしてきたtypes.hが衝突してる?.少しソースをいじって見たけど,簡単には解決しそうもない.そろそろ泥沼に入りそうだと感じたので,本物のLinux環境でmakeすることに.某サーバにソースをコピー…と思ったら,100MBまでしか使わせてくれないのか.というわけで断念.
最後の手段(?)ということで,linux_devtoolsを入れる.まず,最初にやれということですが,できる限りBSD上で組み込みLinuxをmakeすることを目指していたのでちょっと反則だと思ったわけです(普通の人はこの方法をとるでしょうが).
とりあえず,必要なリンクを作ってパスを通して,スクリプトを実行….なんか,何も問題が起きる気配は無い.
ただ,ファームウェアのイメージを作ろうとすると,mountのloopオプションが使われてエラーになるので,mdconfigで書き直す.ってか,ext2なファイルシステムはnewfsできないじゃないか.というわけで,某サーバでmkfsしたイメージファイルをコピーしてくる.newfs_ext2とかmke2fsを何処からか調達するべきなのだろうけど,何処で公開されてるんだろうか.
何でmakeするだけで,こんなに苦労してるんだろうか.ここからが本番なのに….
そういえば,シリアルのレベル変換基板は何処にあるんだろう.大学に置きっぱなしかな.そうだとすると鍵が閉められているような….