次のページ 前のページ 目次へ

2. カーネルパッケージのアップグレード

Vine Linuxのカーネルパッケージは、他のパッケージと同様に RPM 形式で配布されていますが、他のパッケージのように「rpm -Uvh」でアップグレードすることはできません。以下の手順に従ってアップグレードしてください。

最低限必要なパッケージは、

です。PCMCIA が必要な場合は

も必要になります。必要なパッケージにアクセスできるようにしておいてください。/root にコピーしておくのが最も安全でしょう。

これらのほかに、Vine Linuxの標準 PPP クライアントである PPxP を利用している人は、userlink パッケージも必要になることがありますので、userlink-*.src.rpm も手元に持ってきておきましょう。

まず、安全のためにシングルユーザモードに移行します。シングルユーザモードでは不必要なサービスはすべて停止されます。ネットワークにはアクセスできます。

すべてのユーザはログアウトし、コンソールから root でログインし、以下の手順でシングルユーザモードに移行し、パッケージ群のあるディレクトリに cd します。

# init S
# cd <パッケージのあるディレクトリ>

次に新しいカーネルパッケージをインストールします。

# rpm -ivh kernel-VER-REL.i386.rpm

■LILOの設定

インストールされたカーネルで起動できるように、ブートローダである LILO の設定をします。LILO の設定ファイルは /etc/lilo.conf ですので、これを編集します。詳しくは jman lilo.conf を参照してください。

このファイルの編集は、シングルユーザモードに移行する前に行っていてもかまいません。

(略)
       install=/boot/boot.b
追加   image = /boot/vmlinuz-VER-REL
追加     label = Linux
追加     vga = normal
追加     root = /dev/hda5
(mkinitrd した場合は
追加     initrd=/boot/initrd-VER-REL.i386.rpm
)
(apm をデフォルトで有効にしたい場合は
追加     append= "apm=on"
)
       image = /boot/vmlinuz-2.2.13-3vl0.2
変更     label = Linux.old
         vga = normal
         root = /dev/hda5
(略)

次に LILO を有効にします。ここでエラーが出たら、lilo.conf を見直しましょう。

# /sbin/lilo

■アップグレード作業の終了

ヘッダファイルをインストールします。

# rpm -Uvh kernel-header-VER-REL.i386.rpm

カーネルソースやドキュメントが必要ならばインストールします。

# rpm -Uvh kernel-documents-VER-REL.i386.rpm
# rpm -Uvh kernel-source-VER-REL.i386.rpm

これでパッケージのアップグレードは終了です。マシンを再起動します。

# /sbin/shutdown -r now

ppxp を使っている人は、再起動後に userlink パッケージを作りなおさなければならない場合があります。起動時に userlink が「unresolved symbol」というメッセージを表示したら、userlink パッケージを作りなおしましょう。

userlink モジュールがうまく動いているかどうかは、lsmod コマン ドで判断できます。/sbin/lsmod の出力に「userlink」が含まれて いれば、以下の手順は必要ありません。

# rpm --rebuild userlink-<バージョン>-<リリース>.src.rpm
# rpm --force -Uvh /usr/src/redhat/RPMS/i386/userlink-<バージョン>-<リリース>.i386.rpm<newline>
# /etc/rc.d/init.d/ppxp restart

2.1 カーネルを自分の設定で作り直す

標準の設定ではハードウェアが動かない場合、必要なサービスが設定されていない場合、カーネルをシェイプアップしたい場合などには、カーネルを自分の設定で作りなおすことができます。自分でカーネルソースを取ってきてコンパイルすることもできますが、Project Vine より配布されているカーネルパッケージから自分用のカーネルパッケージを作成しなおすほうが安全で簡単です。

■カーネルパッケージを作り直す

Project Vine から配布されているカーネルパッケージから、自分で設定をしなおしたパッケージを作成することができます。生成したパッケージは、「 カーネルパッケージのアップグレード」の手順に従って扱うことができます。

Vine Linuxには mkkpkg というスクリプトが含まれており、これを利用することで簡単にカーネルパッケージを作成することができます。このスクリプトは、root ユーザで実行してください。

カーネルの設定方法はデフォルトで menuconfig です。変更したい場合は、引数の最後に「config」や「xconfig」をつけ加えることができます。

# /sbin/mkkpkg <ソースパッケージのあるディレクトリ>/kernel-VER-REL.src.rpm

このスクリプトでは、生成するパッケージのリビジョン番号を指定できます。バージョン管理のために、「.<自分用のリビジョン>」を付加するのがお勧めです。例えば、kernel-2.0.36-3vl1 に対しては、リビジョンを「3vl1.1」「3vl1.2」「3vl1.3」…とするのがお勧めです。

カーネルパッケージは標準で /usr/src/redhat/RPMS/i386//usr/src/redhat/SRPMS/ ディレクトリ内に作成されます。

■ソースツリーから作成する

インストールされたカーネルソースや、自分で取ってきたカーネルソースを利用してカーネルを作ることもできますが、RPM の管理を壊してしまう可能性があるため、あまりお勧めできません。Vine Linuxのシステム構成やカーネルについて熟知した上で行ってください。

標準のカーネルパッケージに含まれていないパッチを利用したい場合はにこの方法がお手軽ですが、mkkpkg の途中で spec ファイルを編集してちゃんとしたパッケージを作るのが理想的です。

# cd /usr/src/linux
# make menuconfig
で自分好みの設定に変えます。設定を保存したら、

# make dep clean zImage modules modules_install
とします.

  • ノートパソコンユーザの場合

    pcmcia を作る場合は

    # cd pcmcia-cs-*
    # make config all install
    を実行します。

  • /が SCSI ディスク上にある場合

    / (ルートパーティション)が SCSI ディスク上にある場合は

    # mkinitrd /boot/initrd-VER.img VER
    を実行します。

■仕上げ

最後に作成された vmlinuz-VER を /boot にコピーします。

# /sbin/installkernel VER arch/i386/boot/zImage System.map

あとは LILO を編集して再起動します。


次のページ 前のページ 目次へ