2009/01/01

OpenWrtのkernelをカスタマイズする

OpenWrtで OCNIPv6につなごうと思ってゴソゴソやっていたら、n_hdlcがkernelに入っていなくてl2tpが 動かせなかった。
ないのならいれてしまえぃ、と思ったら、結構手間取ったので、メモ。

クロスコンパイル環境が必要。VMware上に作ってあったwww.centos.org - The Community ENTerprise Operating Systemに作る。OpenWrtのクロスコンパイル環境をDebianに構築してhello,worldするよ! - sdkt4aの日記OpenWrt/BuildRoot - PukiWikiなどを参考にする。一度最新版のコードをチェックアウトしてきて、用意されているスクリプトを動かして必要なツール類を一通り揃えてしまうのが楽。

WLR-G54では最新版(kamikaze)は動かないようなので、whiterussianと呼ばれる1つ前のバージョンをチェックアウトする。

svn checkout https://svn.openwrt.org/openwrt/tags/whiterussian_0.9
そして、一通りビルドしてみる。
 make world
bin/の下にあるopenwrt-~.trxが出来上がったfirmware。これをWLR-G54にインストールして、起動することを確認する。

一度make worldすると、build_mipselというディレクトリが作成されている。build_mipsel/linux/Makefile にある DRIVERS-y += ~drivers/char/n_hdlc.oを追加する。

また、build_mipsel/linux/drivers/char/Makefile にあるobj-y += ~export-objsにn_hdlc.oを追加する。

これで再コンパイルすればよいのだが、make cleanしてしまうとbuild_mipselディレクトリが消されてしまう。

rm build_mipsel/linux/vmlinux
rm build_mipsel/linux/drivers/char/*.o
してからmakeしなおすことで、書き換えたMakefileでkernelを作り直す。

おそらく、target/linux/linux-2.4/patches/ にパッチを置けば、make buildworld一発で済むのだろうけど…。



0 件のコメント :

コメントを投稿

Comments on Google+: