1. 開発環境の準備
# apt-get install gcc make libc6-dev patch libncurses5-dev devio git
2. カーネルソースの入手
Kernel v2.6から最新のカーネルをダウンロードする。
3. カーネルソースの展開
# LANG=c #tar zxvf linux-2.6.31.tar.gz -C /usr/src/
4. カーネルソースのリンク作成
/usr/src/linuxにカーネルソースがあると仮定しているアプリケーションがあるため、以下のようにカーネルソースへのリンクを作成する。
# ln -s /usr/src/linux-2.6.31 /usr/src/linux
5. パッチを当てる
玄箱PROのフラッシュメモリに書き込まれたu-bootでは、パッチを当てないと起動できないらしい。
Kernel 2.6.25以降は玄箱に対応しているようなので、パッチは必要ないかも??
force_match-type.patchを当てる。
# cat force_match-type.patch | patch -p1
6. モジュール設定
組み込むモジュールを選択する。
# make mecuconfig
[File System] [DOS/FAT/NT Filesystems] [Networking supporting] [Networking options] [TCP/IP Networking] [IP: tunneling] [Network packet filtering framework (Netfilter) ] [Network packet filtering debugging] [Advanced netfilter configuration] [Core Netfilter Configuration]以下全部 [IP: Netfilter Configuration]以下全部
7. カーネルのコンパイル
# make uImage #make modules
u-boot用のカーネルイメージを作成するためには、mkImageが必要なので、なければ入手しておく。
玄箱PROのCD-ROMにもソースファイルが収録されている模様。
今回はDebianパッケージでmkImageがあったのでそちらを使用。
# dpkg -i uboot-mkimage_0.4_arm.deb
ライブラリが古いとのエラーが出たので先にtzdata、libc6をインストール。
⇒libc6を2.7-18にしたらmake menuconfigで怒られたので、mkimageのコンパイル後に2.6.31に戻した。
0 件のコメント:
コメントを投稿