本サイトは、マルチコア トータルソリューションカンパニー -フィックスターズの技術者有志が運営するサイトです。

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 設定

など見直してみてください。

表示
個人用ツール
オープンソースプロジェクト
ツールボックス