- 追加された行はこの色です。
- 削除された行はこの色です。
* ソース [#p3f431b7]
http://jr0bak.homelinux.net/~imai/linux/HDL-GXR/source/kernel/ ディレクトリにあります.
:linux-2.6.12.6.tar.gz|オリジナルのソース.
もちろん,アイ・オー・データにソースコード請求しても入手できます.
:ignore_commandline_from_bootloader.patch|カーネルコマンドラインをカーネル埋め込みにするパッチ.
:dot.config|linux-2.6.12.6/.config ファイルです.[[../debian インストールキット]] のカーネルをビルドした際のものです.設定を変更する場合は,これをベースにするといいでしょう.
* ツールチェーンなど [#a5c7c9c2]
gcc の 3.x 系のコンパイラを用意しましょう.
4.x 系はエラーチェックが厳しくなったようで,コンパイルが通りません.
また,u-boot 形式のバイナリを作成するために mkimage プログラムも必要です.
u-boot のソースを入手し,Makefile をだまくらかして mkimage だけ作成しておきましょう.
* Makefile の編集 [#s4e5877e]
配布ソースの linux-2.6.12.6/Makefile では
- セルフコンパイルでは gcc-3.4
- クロスコンパイルでは arm-linux-gcc-3.4
という名前でターゲットアーキテクチャ用の gcc を呼び出しています.
自分の環境に合わせて書き換えましょう.
* コンパイル [#s8c4d948]
$ make menuconfig
$ make uImage
$ make modules modules_install
uImage ファイルは arch/arm/boot/ の下に生成されます.
ここらは x86 の make bzImage と同様ですね.
カーネルモジュールは linux-2.6.12.6/modules/lib/modules/2.6.12.6/… にインストールされます.
この下にできるディレクトリを丸ごとターゲット環境の /lib/modules 以下に持っていきましょう.
セルフ環境でコンパイルする場合は linux-2.6.12.6/Makefile の
INSTALL_MOD_PATH=$(TOPDIR)/modules
の行をコメントアウトしてやれば,/lib/modules …に直接インストールすることもできるでしょう.
* インストール [#wa7873cb]
生成された uImage を /boot/uImage.gxr という名前でコピーします.
/boot は HDD の1番目のパーティションにあるので,HDD を取り外して別マシンで作業する時は
# mount /dev/sdX1 どこか
# cp べつのどこか/linux-2.6.12.6/arch/arm/boot/uImage uImage.gxr
# cp べつのどこか/linux-2.6.12.6/arch/arm/boot/uImage どこか/uImage.gxr
# umount どこか
となります.