2009年9月20日日曜日

玄箱PROのカーネル再構築(2.6.31)

玄箱PROカーネルを再構築する。

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


ライブラリが古いとのエラーが出たので先にtzdatalibc6をインストール。

⇒libc6を2.7-18にしたらmake menuconfigで怒られたので、mkimageのコンパイル後に2.6.31に戻した。

0 件のコメント: