E-Kit 電子工作 Electronic Toys, Devices and Circuits
電子工作と電子おもちゃのサイト

Produced by Keio University, Takefuji Lab
Device Drivers Limited
Tokyo Japan
製品情報
一覧から注文
ダウンロード
開発情報
e-kit とは?

E!Kit-1100 組み込みLinuxボードへのLinux Kernel 2.6の組み込み

製品情報→
開発情報→
ご注文→


E!Kit-1100用最新版カーネル2.6の配布

カーネルのソースとバイナリ

バージョン ソースコード・ツリー zImage圧縮カーネル(Sレコード形式) カーネルモジュール linux-mips.orgとの差分Patch 一般用config
2.6.11-ek1 linux-2.6.11-ek1.tar.bz2 2.6.11-ek1.srec.gz lib-modules-2.6.11-ek1.tar.gz 2.6.11-ek1.patch.gz config-2.6.11-ek1.gz
2.6.12-ek1 linux-2.6.12-ek1.tar.bz2 2.6.12-ek1.srec.gz lib-modules-2.6.12-ek1.tar.gz 2.6.12-ek1.patch.gz config-2.6.12-ek1.gz
2.6.12-ek2 linux-2.6.12-ek2.tar.bz2 2.6.12-ek2.srec.gz lib-modules-2.6.12-ek2.tar.gz 2.6.12-ek2.patch.gz config-2.6.12-ek2.gz
2.6.13-ek1 linux-2.6.13-ek1.tar.bz2 2.6.13-ek1.srec.gz lib-modules-2.6.13-ek1.tar.gz 2.6.13-ek1.patch.gz config-2.6.13-ek1.gz

その他のファイル

内容 ファイル名
zImage圧縮カーネル作成用Patch(各バージョン共通) zImage_2_6_10.patch.gz
initramfsイメージ(各バージョン共通) initramfs-2.6.11.tar.gz
initramfs作成用シェル(各バージョン共通) mk_initramfs.sh.gz

E!Kit-1100用カーネル2.6の作成方法

★最新のカーネルをlinux-mips.orgからダウンロードして使用する作業をまとめました。上記ソースコード・ツリーを利用する場合は必要ありません。

linux-mips.orgのCVSからカーネル2.6ソースの取得(Linux が動作している開発用Hostマシンで実行)

# cvs -d :pserver:cvs@ftp.linux-mips.org:/home/cvs login
(Only needed the first time you use anonymous CVS, the password is "cvs")
# cvs -d :pserver:cvs@ftp.linux-mips.org:/home/cvs co linux

パッチによるソースの修正とinitramfsイメージの展開

linux-2.6.11をlinux-mips.orgから、/(downloaded-dir)にダウンロードした場合の例を示します。また、他のPatch等のファイルも同じディレクトリにダウンロードした場合です。

# cd /export/src
# cp /(downloaded-dir)/zImage_2_6_10.patch.gz .
# cp /(downloaded-dir)/2.6.11-ek1.patch.gz .
# cp /(downloaded-dir)/mk_initramfs.sh.gz .
# cp -a /(downloaded-dir)/linux linux-2.6.11-ek1
# vi linux-2.6.11-ek1/Makefile
 (Makefile中のカーネルのバージョン番号を確認し、修正します)

# cd linux-2.6.11-ek1
# zcat ../zImage_2_6_10.patch | patch -p1
# zcat ../2.6.11-ek1.patch.gz | patch -p1
# tar xzf ../initramfs-2.6.11.tar.gz
 (これでカーネルソースの準備が出来ました)

カーネル2.6のコンパイル(Linux が動作している開発用Hostマシンでクロスコンパイルする場合)

ここまでの手順で作成したソースコードをクロスコンパイル・ビルドしてカーネルイメージを作成します。 上記のカーネル・ソ−スコード・ツリーを利用しても同様の手順でコンパイルできます。 コンパイルの際には、クロスコンパイル用のツールチェインが/export以下にインストールしてある必要があります。

# . /export/tar/mipsel-env.sh
 (環境変数の設定)
# cp arch/mips/configs/ekit1100_defconfig .config
 (または、上記configファイルをコピーしても良い)
# make oldconfig
 (または、menuconfigで設定を確認、修正、あるいは外部から読み込んでも良い)
# make modules
# ../mk_initramfs.sh
# make zImage
 (ここまででエラーが無ければ、正常にカーネルが作成されています。)

以下はNFSでマウントする/home/rootfs/rootfsにモジュールをインストールし、/tftpbootにSレコードイメージを転送する場合の例です。

# make INSTALL_MOD_PATH=/home/rootfs/rootfs modules_install
# cp -f arch/mips/boot/compressed/images/zImage.srec /tftpboot/.

Largeシステム(rootfs-aml3)へのカーネル2.6の組み込み方法

Largeシステム(rootfs-aml3)へのカーネル2.6の組み込んで、同じルートファイルシステムを使用して、ブート時に従来のカーネル2.4系とり切り替えて起動させる手順を示します。この手順は参考例ですので、他の方法で設定して頂いても構いません。ルートファイルシステムに変更を加えますので、必要であれば作業の前にルートファイルシステム全体をバックアップすることをお奨めします。

準備

以下のファイルを用意しておきます。ご自身でカーネルをコンパイルして組み込む事も可能ですが、ここではコンパイル・作成済のカーネルSレコード・イメージと、モジュール・ライブラリを使用します。なお、ここで示す例は、ルートファイルシステムをNFSサーバに置いて、tftpでブートすることを想定して記述してあります。しかし、ほとんど同様の手順でLargeシステム(rootfs-aml3.tar.bz2)をインストールして起動を確認してあるMicroDrive、大容量CF、外付け大容量USBストレージ等からカーネル2.6で起動することが可能です。
  • カーネル2.6のイメージ、モジュール・ライブラリと2.6用設定パッチ
    以下のカーネル2.6関連ファイルと、設定用パッチをダウンロードしておきます。
    カーネル2.6 ブート用Sレコードファイル 2.6.11-ek1.srec.gz
    カーネル2.6ローダブル・モジュール lib-modules-2.6.11-ek1.tar.gz
    カーネル2.6用ルートファイルシステムの変更 rootfs-aml3-26.patch.gz
  • Module init tools
    kernel.orgから、module-init-tools (V3.0) のソースをダウンロードしておきます。(ミラーサイトには無いようです)
    module-init-tools-3.0.tar.bz2

組み込み作業

以下に、ダウンロードしたファイルを/tmpに置いた場合の手順を示します。
  1. 従来のLargeシステム(rootfs-aml3)をカーネル2.4で起動して、以下の手順でmodule-init-tools-3.0をコンパイルして組み込みます。

    セルフコンパイルでコンパイルして、そのまま組み込んでください。
    3.0以外のバージョンでは動作検証をしていませんので、注意して下さい。(例えば、module-init-tools-3.1ではうまく動作しない事が判明しています。)

    # cd /tmp
    # tar xjf module-init-tools-3.0.tar.bz2
    # cd module-init-tools-3.0
    # ./configure --prefix=/
    # make moveold
    # make
    # make install
  2. /lib/modules以下にダウンロードした、カーネルのモジュール・ライブラリを組み込みます。
    # cd /lib/modules
    # tar xzf /tmp/lib-modules-2.6.11-ek1.tar.gz
    
  3. /etc以下のスクリプト・ファイルに必要なパッチを当てます。
    # cd /
    # zcat /tmp/rootfs-aml3-26.patch.gz | patch -p1

    このPatchは、NFSのルートファイルシステム用ですので、Microdrive, 大容量CF、外付け大容量USBストレージ等の場合には、ご利用されている環境に合せて、fstabの記述部分を変更して、手作業でPatchを当てる必要があります。 Patchを見ればわかるように、fstabの修正は既存のファイルに対して/sysのマウントを加えているるだけです。

  4. カーネル2.6で使用するマウントポイントを作ります。

    # cd /
    # mkdir sys initramfs
  5. ブートに必要なカーネル・イメージを配置します。

    tftpブートしている場合: tftpサーバ側で操作します。

    # zcat /tmp/2.6.11-ek1.srec.gz > /tftpboot/2.6.11-ek1.srec

    microdrive等の大容量CFドライブから直接ブートしている場合: 動作中のLargeシステムで操作してファイルを展開します。

    # zcat /tmp/2.6.11-ek1.srec.gz > /boot/2.6.11-ek1.srec
  6. 再起動して、YAMONの設定を行います。
    # shutdown -r now

カーネル2.6の起動

カーネル2.6を起動する場合には、カーネル2.6用のカーネル・パラメータを設定する必要があるため、ブートROM(YAMON)の設定が異なりますので、注意して下さい。以下はブート時にコントロールCを押して、YAMONで行う作業です。
  1. 起動するカーネル名を変更します。
    setenv bootfile 2.6.11-ek1.srec
  2. startで自動実行する、起動時のカーネル・パラメータを変更します。

    ルートファイルシステムをNFSにしている場合: NFSサーバのIPアドレスやルートディレクトリは環境に合わせて変更して下さい。

    setenv start "load; go . root=/dev/nfs nfsroot=192.168.1.201:\
    /home/rootfs/rootfs2 ipadr=:::eth0"

    ルートファイルシステムを大容量CF等のローカルドライブにしている場合: ルートディレクトリは環境に合わせて起動ドライブとパーティション名を変更して下さい。以下は/dev/hda1からの起動例です。

    setenv start "load //hda1; go . root=/dev/hda1"
  3. 設定内容の確認です。tftpでブートする場合は、以下のようになっているはずです。
    MAC         (R/W)  0
    bootfile    (R/W)  2.6.11-ek1.srec
    bootprot    (R/W)  tftp
    bootserport (R/W)  tty1
    bootserver  (R/W)  192.168.1.201
    ethaddr     (R/W)  00.0e.6c.00.00.1d
    gateway     (R/W)  0.0.0.0
    ipaddr      (R/W)  192.168.1.150
    memsize     (RO)   0x08000000
    modetty0    (R/W)  115200,n,8,1,none
    modetty1    (R/W)  115200,n,8,1,none
    prompt      (R/W)  YAMON
    start       (R/W)  load; go . root=/dev/nfs nfsroot=192.168.1.201:/home/rootfs/
                       rootfs2 ipadr=:::eth0
    subnetmask  (R/W)  255.255.255.0
    
  4. 設定内容の確認です。大容量CF等のローカルドライブでブートする場合は、以下のようになっているはずです。
    MAC         (R/W)  0
    bootfile    (R/W)  /boot/2.6.11-ek1.srec
    bootprot    (R/W)  file
    bootserport (R/W)  tty1
    bootserver  (R/W)  192.168.1.201
    ethaddr     (R/W)  00.0e.6c.00.00.1d
    gateway     (R/W)  0.0.0.0
    ipaddr      (R/W)  192.168.1.150
    memsize     (RO)   0x08000000
    modetty0    (R/W)  115200,n,8,1,none
    modetty1    (R/W)  115200,n,8,1,none
    prompt      (R/W)  YAMON
    start       (R/W)  load //hda1; go . root=/dev/hda1
    subnetmask  (R/W)  255.255.255.0

カーネルのビルド(オプション項目)

ここまでは、カーネルをコンパイルせずにルートファイルシステムに組み込む手順を紹介しましたが、必要であれば、以下の手順でカーネルのコンフィグレーションと、ビルドを行う事も可能です)
以下にクロスコンパイル環境での作業例を示します。
# tar xjf linux-2.6.11-ek1.tar.bz2
# rm -f linux
# ln -s linux-2.6.11 linux
# cd linux
# cp arch/mips/configs/ekit1100_defconfig .config
# make oldconfig
# make modules
# ./mk_initramfs.sh
# make zImage
# make INSTALL_MOD_PATH=/home/rootfs/rootfs modules_install
# cp -f arch/mips/boot/compressed/images/zImage.srec /tftpboot/
2005年11月21日更新 (最新カーネルを公開)

株式会社デバイスドライバーズ
販売元 株式会社デバイスドライバーズ
東京都府中市若松町1-5-1-103 tel: 042-363-8294 fax: 042-363-8255
Copyright(c) 2002-2005 Device Drivers Limited & Yoshiyasu Takefuji, All rights reserved.