Fedora 7のカーネルを再構築する
出典: PS3 Linux Information Site / Cell/B.E.のパワーを体験しよう
Fedora 7 インストール時のパーティション設定はデフォルトでは LVM 形式となっています。 この状態で、20070831版のアドオンCDからカーネル(rpm)をインストールすると、ブート時にLVMボリュームの認識に失敗し、OSが起動できなくなってしまいます。( yum update でも同様)
ここでは特に LVM 設定でインストールされた Fedora 7 に対する
カーネル再構築手順について説明します。カーネルソースは
20070831版のアドオンCD
に入っている 2.6.23-rc3 を使用します。
※kernel.orgで配布されている 2.6.23 を利用した場合でも、同様の方法でkernelの再構築が可能です。ただし、wireless LANのドライバが入っていなかったり、一部のドライバが古い可能性があります。
準備
再構築の前に以下の準備を行います。
dtc コマンドを用意します。
(ソースコードはこちら)
# wget http://cell.fixstars.com/opencv/images/1/1b/Dtc.zip # unzip Dtc.zip # mv dtc /usr/local/bin/ # chmod 755 /usr/local/bin/dtc
Device-mapper をアップデートします。(--enable-static_linkは必須)
# wget ftp://sources.redhat.com/pub/dm/device-mapper.1.02.22.tgz # tar xvf device-mapper.1.02.22.tgz # device-mapper.1.02.22 # ./configure --enable-static_link # make # make install
LVM をアップデートします。(--enable-static_linkは必須)
# wget ftp://sources.redhat.com/pub/lvm2/LVM2.2.02.28.tgz # tar xvf LVM2.2.02.28.tgz # cd LVM2.2.02.28 # ./configure --enable-static_link # make # make install
※--enable-static_link指定がないと/sbin/lvm.staticが更新されないため これを使うコマンド( installkernel から呼ばれる /sbin/mkinitrd など)が正しく動作しなくなります。
カーネル再構築
カーネルソースを /usr/src に展開します。
# mount -o loop /dev/cdrom /mnt # cd /usr/src # tar jxvf /mnt/src/linux-2.6.23-20070817.tar.bz2 # cd linux-2.6.23-20070817/ # make ps3_defconfig
menuconfig を起動します。
# make menuconfig
LVM デバイスドライバを有効にします。
Device Drivers --->
[*] Multiple devices driver support (RAID and LVM) --->
<*> Device mapper support
カーネルを make します。
# make # make modules_install # installkernel 2.6.23-rc3 vmlinux System.map
installkernel を何度か繰り返していると /boot パーティションが容量不足になり installkernel が失敗することがあります。不要なファイル(*.old など)を 削除するなどして対処してください。
最後に /boot/etc/yaboot.conf に起動設定を行います。(注意:/boot/yaboot/yaboot.conf と間違えないように)
起動に失敗したときのために元の設定(linux)は残しておきましょう。
# vi /boot/etc/yaboot.conf
以下は設定例です。
boot=/dev/sda
init-message=Welcome to Fedora!\nHit <TAB> for boot options
partition=1
timeout=80
install=/usr/lib/yaboot/yaboot
delay=5
enablecdboot
enableofboot
enablenetboot
nonvram
mntpoint=/boot/yaboot
usemount
default=2.6.23-rc3
#default=linux
image=/vmlinuz-2.6.21-1.3194.fc7
label=linux
read-only
initrd=/initrd-2.6.21-1.3194.fc7.img
root=/dev/VolGroup00/LogVol00
append="video=720p rhgb"
image=/vmlinux-2.6.23-rc3
label=2.6.23-rc3
read-only
initrd=/initrd-2.6.23-rc3.img
root=/dev/VolGroup00/LogVol00
append="video=720p rhgb"
リブートします。(最後に電源ボタン長押しが必要です・・・)
# reboot
・・・うまく起動できたでしょうか。
うまくいけば次回から安全にリブート/シャットダウンができるようになります。
もし起動に失敗してしまった場合は、再度電源を入れなおし、 起動時の kboot プロンプトで
kboot:linux
を入力して元のカーネルを起動してください。(上記 yaboot.conf の場合)
再度、手順を確認してみましょう。
- make menuconfig の LVM デバイスドライバ設定
- yaboot.conf の video 設定
など見直してみてください。
