Tweet


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

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS