Tweet

ソース

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 インストールキット のカーネルをビルドした際のものです.設定を変更する場合は,これをベースにするといいでしょう.

ツールチェーンなど

gcc の 3.x 系のコンパイラを用意しましょう. 4.x 系はエラーチェックが厳しくなったようで,コンパイルが通りません.

また,u-boot 形式のバイナリを作成するために mkimage プログラムも必要です. u-boot のソースを入手し,Makefile をだまくらかして mkimage だけ作成しておきましょう.

Makefile の編集

配布ソースの linux-2.6.12.6/Makefile では

  • セルフコンパイルでは gcc-3.4
  • クロスコンパイルでは arm-linux-gcc-3.4

という名前でターゲットアーキテクチャ用の gcc を呼び出しています. 自分の環境に合わせて書き換えましょう.

コンパイル

$ 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 …に直接インストールすることもできるでしょう.

インストール

生成された uImage を /boot/uImage.gxr という名前でコピーします. /boot は HDD の1番目のパーティションにあるので,HDD を取り外して別マシンで作業する時は

# mount /dev/sdX1 どこか
# cp べつのどこか/linux-2.6.12.6/arch/arm/boot/uImage どこか/uImage.gxr
# umount どこか

となります.


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-09-30 (日) 08:21:37 (4035d)