Kernelの移植


kernelをそのままmakeしてもKompressorボードでは動かないので、まずkernelのソースコードをKompressorボード向けに書き換えてからmakeする必要がある。
また、makeして出来たkernel(zImage)をRedBootでFlash上の適当な場所に書き込む必要がある。
ここではその手順を説明する。

ソースファイルの書き換え

書き換えたファイルは以下の14個である。 これらをlinux_kompressor_patch.tar.gzとして用意した。
作業手順は、
  1. linux_kompressor_patch.tar.gzをダウンロードして~/cross_compile/src/linux-2.4.19-rmk7/に置く。
  2. linux_kompressor_patch.tar.gzを解凍する。
     $ cd ~/cross_compile/src/linux-2.4.19-rmk7/
     $ tar zxvf linux_kompressor_patch.tar.gz
    
以上で書き換えが完了する。

make

  1. make oldconfigでコンフィギュレーションを行う。
     $ make oldconfig
    
    として、質問にはすべてリターンを押せばよい。
  2. 必要に応じてmake menuconfigでコンフィギュレーションを変える。ここではコンフィギュレーション済みの.configを用意しているのでとりあえず省略。
  3. 依存情報を生成する。
     $ make dep
    
  4. makeする。生成するカーネルイメージの形式は圧縮済みのzImageにしておく。
     $ make zImage
    
これで、~/cross_compile/src/linux-2.4.19-rmk7/arch/arm/boot/zImageが出来る。

Flashへの書き込み

作成したカーネルを、Redbootを使用してFlashROMに書き込む。
  1. Kompressorボードを立ち上げ、RedBootのプロンプトを出す。
  2. FlashROMのRedBootが管理するファイルシステムを初期化する。
    RedBoot> fis init
    
  3. RedBootの設定を初期化する。
    RedBoot> fconfig -i
    
  4. Linuxのカーネルを転送する。
    RedBoot> load -r -m xmodem -b 0x00100000
    
    ここでPC上の通信ソフトからxmodemプロトコルでカーネルのイメージファイル(zImage)を転送する。転送したカーネルはRAMの0x00100000番地に置かれる。
    RedBoot> fis create kernel
    
    これで転送したカーネルがFlashROMに書き込まれる。

カーネルを起動してみる

このままではrootファイルシステムが無く、カーネルしか起動しないが、動作確認のために起動してみる。
RedBoot> fis load kernel
RedBoot> exec
とすればカーネルが起動してメッセージが流れ、
VFS: Cannot open root device "mtdblock2" or 1f:02
Please append a correct "root=" boot option
Kernel panic: VFS: Unable to mount root fs on 1f:02
というようなメッセージを出して止まるはずである。 (mtdblock2や1f:02の部分はカーネルのコンフィギュレーションによって異なる。)

[△ Kompressor BoardでLinuxのページへ]
[<< 開発ツールのコンパイル] [ユーティリティのコンパイル >>]

[藤田研究室 トップページへ]

SASAKI Shunsuke