fc2ブログ

物好き者

物好き者が行ったことを載せています。

OpenWRTベースでのクロスコンパイル1

クロスコンパイル では、tinyproxyのクロスコンパイルに挑戦していましたが、うまくできないままでした。
tinyproxyのfilter制御ができるバイナリファイルが入手できたため、tinyproxyのクロスコンパイルは中断したままでした。

今回、delegateを使うことでsmtp認証が行えることがわかり、delegateのクロスコンパイルを行う必要が出ました。
このため、再度クロスコンパイルに挑戦することにしました。

前回は、LaFoneraベースの環境でクロスコンパイルに挑戦しましたが、今回は OpenWrt/BuildRoot - PukiWiki を参考に、OpenWRTベースの環境で行うことにしました。

イントロダクションの手順を行いましたが、./scripts/feeds update を実行したときにrootユーザーではだめとメッセージが表示されたため、ユーザーを作成して再度実行しました。
svn checkout https://svn.openwrt.org/openwrt/trunk kamikaze/
cd ~/kamikaze/
./scripts/feeds update
make defconfig
make package/symlinks
make menuconfig
make world

しかし、make menuconfigで表示されるコンパイルオプションメニューで、Atheros 231x/5312を選択して、make worldを行うと、下記のえらーが表示されて中断してしまいました。
Checking 'sdcc'... failed

下記を見ると、sdccが含まれていないようです。
Asterisk on OpenWrt, Kamikaze 7.09 | VoIP Hype: Guides, News, Solutions, Free Calls Worldwide
OpenWrt / Kamikaze 7.09 Packages available for download
[OpenWrt-Tickets] [OpenWrt] #2850: firmwarehotplug package requires "sdcc" command under Fedora, which is not available.

下記を見るとsdccが入手できるようです。
ほげほげ ssk: コンピュータ アーカイブ のPIC用Cコンパイラー
PIC Field
MacOS X 上に PIC の開発環境を構築

とりあえず、make menuconfig でCPUをデフォルト設定にし make world をしてみましたが、エラーとなりました。V=99 オプションをつけると詳細がわかるということでつけてみたところ、エラー無く進んでいきます。
途中で止めて再度CPUをAtherosに変更してmake worldをしてもエラーとなりません。
念のため、make cleanをしても、問題なく進むようです。ただし、途中でなにかダウンロードしているようです。

一度 ./kamikaze以下を削除して再度行ってみます。
make menuconfigでデフォルト設定のままmake worldを実行すると、エラー無く終了しました。
make clena後に、make menuconfigでAthelrosに変えてからmake worldを実行すると、下記のエラーで中断します。
make -r world: build failed. Please re-run make with V=99 to see what's goin on
V=99つけてmake worldを実行してもエラーで中断します。
make[3] -C tool/chain/binutils compile
kamikaze/staging_dir/mips/stamp/.toolchain_install] Error 2
make prereqを行うと、エラー無く終了しました。
make tools/installを行うと、エラー無く終了しました。
make toolchain/installを行うと、同じエラーで中断します。
binutilとsdccの問題かと思い、必要なファイルをダウンロードしてみようとmake donwloadを実行してみると、空き容量が無いと表示されました。
チェックすると、diskがいっぱいで、./kamikaze以下で2Gもありました。

容量を増やして再実行したのですが、エラーが出ます。
make [4] -C target/linux/atheros install

23 Dec. 2007 を参考に、make menuconfigではCPU変更とbuild the OpenWrt SDK を build-in にしただけにしたところ、make worldが問題なく終了しました。

これでクロスコンパイル環境の構築が完了しました。

スポンサーサイト



PageTop

コメント


管理者にだけ表示を許可する