* ソース [#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 どこか となります.