32bit PowerPC におけるカーネル構築

32ビット PowerPC のマシンにインストールした Gentoo Linuxカーネルコンパイルし、アップデートする方法を示す。x86AMD64 の場合とは主にブートローダに対する操作が異なる。

Gentoo Linux Kernel Upgrade Guidex86 を前提として書かれており、適宜読み替えが必要となる。

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 ディレクトリの下にコピーする。

例えば、AppleIBM のマシンならば

# 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