• 検索結果がありません。

カーネルの入れ替え

ドキュメント内 M11-JZSH01 (ページ 67-72)

第 4 章  カーネル構築 58

4.3  カーネルの入れ替え

■HZの変更方法

HZを変更するには、Linuxカーネルのヘッダーファイルを書き換えて、カーネルの再コンパイルが

必要になります。

1.

ヘッダーファイルの変更

/usr/src/cpz-2.6/linux-2.6.11.12/include/asm-sh/param.hをテキストエディターで開いて、斜線の箇所を 100〜1000の間で変更します。

#ifndef __ASM_SH_PARAM_H

#define __ASM_SH_PARAM_H

#ifdef __KERNEL__

# ifdef CONFIG_SH_WDT

# define HZ 1000 /* Needed for high-res WOVF */

# else

# define HZ 100

# endif

# define USER_HZ 100 /* User interfaces are in "ticks" */

# define CLOCKS_PER_SEC (USER_HZ) /* frequency at which times() counts */

#endif

2.

カーネルコンパイル

まず、make ARCH=sh CROSS_COMPILE=sh4-linux- cleanを実行して、予め中間ファイルを削除しま す。その後、make ARCH=sh CROSS_COMPILE=sh4-linux- と実行することで行います。

kitty:/usr/src/cpz-2.6/linux-2.6.11.12# make ARCH=sh CROSS_COMPILE=sh4-linux - clean

      :

kitty:/usr/src/cpz-2.6/linux-2.6.11.12# make ARCH=sh CROSS_COMPILE=sh4-linux -

      :

kitty:/usr/src/linux-2.6.11.12# mkdir mod-dir

kitty:/usr/src/linux-2.6.11.12# make ARCH=sh CROSS_COMPILE=sh4-linux- INST ALL_MOD_PATH=/usr/src/linux-2.6.11.12/mod-dir/ modules_install

ここでは、コンパイルした後、./mod-dir/にモジュールをインストールしています。

4.3 カーネルの入れ替え

4.3.1 USB 接続の CF リーダ / ライタを使う場合

CPZ-SH03搭載のCFを、 USB接続のCFリーダ/ライタにセットし、

ホストマシンに接続します。

(以降、

CFを/dev/sdaと認識したものとして説明します。)

1.

カーネルとモジュールの書き込み

以下の手順で、構築したカーネルとモジュールを、CFにコピーします。

SH-Linux kernel ver. 2.4.17 i

kitty:~# cd /usr/src/linux-2.4.17

kitty:/usr/src/linux-2.4.17# mount -t ext3 /dev/sda1 /mnt/

kitty:/usr/src/linux-2.4.17# cp -a arch/sh/boot/zImage /mnt/boot/vmlinuz kitty:/usr/src/linux-2.4.17# rm -rf /mnt/lib/modules

kitty:/usr/src/linux-2.4.17# cp -a mod-dir/lib/modules /mnt/lib/

SH-Linux kernel ver. 2.6.11 i

kitty:~# cd /usr/src/cpz-2.6/linux-2.6.11.12

kitty:/usr/src/cpz-2.6/linux-2.6.11.12# mount -t ext3 /dev/sda1 /mnt/

kitty:/usr/src/cpz-2.6/linux-2.6.11.12# cp -a arch/sh/boot/zImage /mnt/boot/vmlinuz kitty:/usr/src/cpz-2.6/linux-2.6.11.12# rm -rf /mnt/lib/modules

kitty:/usr/src/cpz-2.6/linux-2.6.11.12# cp -a mod-dir/lib/modules /mnt/lib/

もし、CF内の/lib/modules/以下に、カーネル以外のモジュールを組み込んだ場合は、一旦、別のデ ィレクトリに退避し、カーネルモジュールをコピーした後、再度 元の場所にコピーし直してくだ さい。

2.

ブートローダの書き込み

クロスで実行できるように、/mnt/etc/lilo.confと/mnt/boot/boot.bを変更します。

kitty:~# cd /mnt

kitty:/mnt# cp -a etc/lilo.conf etc/lilo.conf-orig kitty:/mnt# mv boot/boot.b boot/boot.b-orig kitty:/mnt# gedit etc/lilo.conf

kitty:/mnt# cp -a /opt/cpz-usbcf/boot.b-21.4 boot/boot.b kitty:/mnt# /opt/cpz-usbcf/lilo -r /mnt/

Added linux * kitty:/mnt#

この例では、

/mnt/etc/lilo.confをlilo.conf-origとして、 /mnt/boot/boot.bをboot.b-origとして保存していま

す。

その後、/mnt/etc/lilo.confを変更します。変更内容は、『29ページ 

2.4  CFのリカバリ手順』の

『29ページ 

2.4.1  USB接続のCFリーダ/ライタを使う場合』を、参照してください。

3.

終了処理

セルフでliloを実行しても問題ないように、/mnt/etc/lilo.confと

/mnt/boot/boot.bを元のファイルに戻し、

umountすれば完了です。

kitty:/mnt# cp etc/lilo.conf-orig etc/lilo.conf kitty:/mnt# cp boot/boot.b-orig boot/boot.b kitty:/mnt# cd

kitty:~# umount /mnt/

kitty:~#

以上で、カーネルの書き込みは完了です。

4.3.2 ネットワークを使用する場合

ここでは、『29ページ 

2.4  CFのリカバリ手順』のネットワークを使用する場合で説明したホス

トマシンの準備ができているものとして説明します。 

なお、ホストマトン上の/etc/exportsの設定で、

CPZ-SH03からmountできるディレクトリを /optとして

いますので、構築したカーネルとモジュールを、

cp -aコマンドで、 /opt/tmp/に移動させておきます。

SH-Linux kernel ver. 2.4.17 i

kitty:~# cd /opt kitty:/opt# mkdir tmp

kitty:/opt/tmp# cp -a /usr/src/linux-2.4.17/arch/sh/boot/zImage ./

kitty:/opt/tmp# cp –a /usr/src/linux-2.4.17/mod-dir ./

kitty:/opt/tmp# cd kitty:~#

SH-Linux kernel ver. 2.6.11 i

kitty:~# cd /opt kitty:/opt# mkdir tmp

kitty:/opt/tmp# cp -a /usr/src/cpz-2.6/linux-2.6.11.12/arch/sh/boot/zImage ./

kitty:/opt/tmp# cp –a /usr/src/cpz-2.6/linux-2.6.11.12/mod-dir ./

kitty:/opt/tmp# cd kitty:~#

1.

ネットワーク経由でCPZ-SH03を起動

CPZ-SH03基板上のDSW2の1,2をOFF、3,4をONにします。

CPZ-SH03のLAN1とホストマシンのLAN、およびクロスのシリアルで接続し、ホストマシン上で、

ターミナルエミュレータ(minicom)を起動後、CPZ-SH03の電源を入れます。

(ネットワーク経由でCPZ-SH03を起動する場合、ホストマシン上で、nfsサーバ、dhcpdが動いて

いる必要があります。動いていない場合、/etc/init.dディレクトリの関連するデーモンをスタート してください。)

起動メッセージが表示され、loginプロンプト状態になりますので、rootでログインします。

Linux version 2.4.17 (root@kitty) (gcc version 3.0.4) #1 Mon Jun 27 15:24:43 JST 2005 On node 0 totalpages: 16384

On node 0 totalpages: 16384         ・

        ・         ・

Starting internet superserver: inetd.

Starting deferred execution scheduler: atd.

Starting periodic command scheduler: cron.

Debian GNU/Linux testing/unstable greenart ttySC1 greenart login: root

        ・         ・         ・ greenart:~#

2.

カーネルとモジュール

以下の手順で、構築したカーネルとモジュールを、CFにコピーします。

greenart:~# mkdir /host

greenart:~# mount kitty:/opt /host greenart:~# mount -t ext3 /dev/hda1 /mnt

greenart:~# cp -a /host/tmp/zImage /mnt/boot/vmlinuz greenart:~# rm -rf /mnt/lib/modules

greenart:~# cp -a /host/tmp/mod-dir/lib/modules /mnt/lib/

greenart:~# umount /host greenart:~#

もし、CF内の/lib/modules/以下に、カーネル以外のモジュールを組み込んだ場合は、一旦、別のデ ィレクトリに退避し、カーネルモジュールをコピーした後、再度 元の場所にコピーし直してくだ さい。

3.

ブートローダの書き込み

liloコマンドでブートローダをCFに書き込みます。

4.

終了処理

最後にCFをアンマウントし、シャットダウンします。

greenart:/mnt# cd greenart:~# umount /mnt/

greenart:~# shutdown -h now

Broadcast message from root (ttySC1) (Thu Jun 30 10:43:10 2005):

The system is going down for system halt NOW!

INIT: Switching to runlevel: 0

INIT: Sending processes the TERM signal INIT: Sending processes the KILL signal       ・

      ・       ・

Unmounting remote filesystems... done.

Deconfiguring network interfaces: done.

Deactivating swap... done.

Unmounting local filesystems... done.

Power down.

以上で、カーネルの書き込みは完了です。

ドキュメント内 M11-JZSH01 (ページ 67-72)

関連したドキュメント