32bit PowerPC におけるカーネル構築
32ビット PowerPC のマシンにインストールした Gentoo Linux でカーネルコンパイルし、アップデートする方法を示す。x86 や AMD64 の場合とは主にブートローダに対する操作が異なる。
Gentoo Linux Kernel Upgrade Guide は x86 を前提として書かれており、適宜読み替えが必要となる。
32ビット PowerPC 環境でのカーネルのアップグレードを行う際は、基本的に
Gentoo Linux PPC Handbook を参考にすればいい。ハンドブックでは複数の方法が記述されているが、ここではその中で最も一般的な方法を選んでいる。
まずは、7. Configuring the Kernel を参照し、カーネルのソースをアップデートする。Gentoo なので当然 emerge コマンドを使う。
# emerge -u gentoo-sources
言うまでもなく、プロンプトの `#' は root で実行するという意味である。それに対して `$' や `%' は一般ユーザを示す。
そして、ソースをインストールした場所へ移動する。
# cd /usr/src/linux
その場所で
# make pmac32_defconfig
を実行し32ビット PowerPC 向けに設定する。
必要ならば
# make menuconfig
で設定を変える。問題なければ、これを行わなくても構わない。
そして、コンパイルする
# make && make modules_install
できあがったカーネルイメージを /boot ディレクトリの下にコピーする。
# cp vmlinux /boot/kernel-2.6.28-gentoo-r5
となる。
Pegasos ならば
# cp arch/powerpc/boot/images/zImage /boot/kernel-2.6.28-gentoo-r5
になるらしい。
ここではカーネルのバージョン (2.6.28-gentoo-r5) に基づいてファイル名を kernel-2.6.28-gentoo-r5 としたが、まったく別の名前でも構わない。
自動的に読み込むカーネルモジュールを設定する。2.6 系のカーネルならば /etc/modules.autoload.d/kernel-2.6 に編集すればよい。今使っているカーネルと設定が同じならば、何もする必要はない。
ここからは 10. Configuring the Bootloader を見ながら、作業することになる。
ブートローダとして yaboot を使うことにする。GRUB は GRUB2 になってから PowerPC に対応したが、今のところ GRUB2 の安定版は出ていないので使わない方がよい。ただし、Open Firmware に詳しい人はこの限りではない。
yabootconfig で yaboot の設定を行う。Gentoo Linux インストール時とは異なり、オプションに --chroot /mnt/gentoo を付けない。
# yabootconfig yaboot is the Linux Loader for PowerPC. yabootconfig sets up your system to boot directly from your hard disk, without the need for a boot CD, floppy or a network boot. Install yaboot bootstrap on /dev/hda2 to boot Linux from /dev/hda4? [Yes] y Creating a simple /etc/yaboot.conf... yabootconfig: Cannot find a kernel, please provide one Enter path to a kernel image: /boot/kernel-2.6.28-gentoo-r5 Enter path to an initrd image (hit Enter for none): Running mkofboot to make the disk bootable... Done
上ではユーザからの入力を太字で表している。yabootconfig を起動するとパーティションについて聞かれる。確認して問題なければ y を入力する。次に、カーネルイメージの場所について訊かれるので、先ほどの cp コマンドで最後の引数として渡した場所(この場合は /boot/kernel-2.6.28-gentoo-r5)を入力する。最後に initrd イメージの場所が訊かれるが、指定せず単に Enter (Return) キーを押すだけでいい。
ブートローダの設定が終わったら再起動する。
# reboot
新しいカーネルで起動されたかを確認するには uname コマンドを使えばよい。
$ uname -r