Vine Linuxのカーネルパッケージは、他のパッケージと同様に RPM 形式で配 布されていますが、他のパッケージのように rpm -Uvhでアップグレードする ことはできません。以下の手順に従ってアップグレードしてください。
最低限必要なパッケージは、
kernel-VER-REL.i386.rpm
kernel-headers-VER-REL.i386.rpm
です。必要なパッケージにアクセスできるようにしておいてください。/root にコピーしておくのが最も安全でしょう。
もし,SMPカーネルを必要とする場合は, kernel-VER-REL.i386.rpm ではなく, kernel-smp-VER-REL.i386.rpmをお使い下さい.また,以下では適宜読み変えて下さい.
まず、新しいカーネルパッケージをインストールします。
# rpm -ivh kernel-VER-REL.i386.rpm
または,
# apt-get install kernel
apt-getを使用した場合,インストール可能なカーネルパッケージの候補がインストール済カーネルとともに表示されます。
# apt-get install kernel パッケージリストを読みこんでいます... 完了 依存情報ツリーを作成しています... 完了 kernel は以下のパッケージで提供されているバーチャルパッケージです。 kernel#2.4.27-0vl1 2.4.27-0vl1 [インストール済] kernel-smp#2.4.27-0vl1 2.4.27-0vl1 [インストール済] kernel#2.4.27-0vl4 2.4.27-0vl4 kernel-smp#2.4.27-0vl4 2.4.27-0vl4 インストールするパッケージを明示的に選択する必要があります。 E: パッケージ kernel は複数で提供されているバーチャルパッケージです。
この場合,インストールするパッケージを選択する必要があります.例えば,最後のパッケージをインストールする場合,以下のようにバージョンを指定します.
# apt-get install kernel-smp#2.4.27-0vl4 パッケージリストを読みこんでいます... 完了 依存情報ツリーを作成しています... 完了 以下のパッケージが新たにインストールされます: kernel-smp#2.4.27-0vl4 アップグレード: 0 個, 新規インストール: 1 個, 削除: 0 個, 保留: 19 個 11.6MB のアーカイブを取得する必要があります。 展開後に 26.1MB のディスク容量が追加消費されます。 取得:1 http://updates.vinelinux.org/apt 3.1/i386/main kernel-smp#2.4.27-0vl4 2.4.27-0vl4 [11.6MB] 11.6MB を 0s 秒で取得しました (20.8MB/s) 変更を適用しています... Preparing... ########################################### [100%] 1:kernel ########################################### [100%] 完了
/ (ルートパーティション)を SCSI ディスクに置いてある場合、mkinitrdを実行しなければなりません。
# mkinitrd /boot/initrd-VER-REL.img VER-REL
インストールされたカーネルで起動できるように、ブートローダである LILO の設定をします。LILO の設定ファイルは /etc/lilo.conf ですので、これを編集します。詳しくは jman lilo.conf を参照してください。
このファイルの編集は、シングルユーザモードに移行する前に行っていてもかまいません。
boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=50 message=/boot/message default=linux 追加 image = /boot/vmlinuz-VER-REL 追加 label = linux 追加 read-only 追加 root = /dev/hda5 # mkinitrd した場合は次の1行を追加 追加 initrd=/boot/initrd-VER-REL.img image = /boot/vmlinuz-2.4.27-0vl1smp 変更 label = Linux.old initrd=/boot/initrd-2.4.27-0vl1smp.img read-only root = /dev/hda5 other=/dev/hda1 label=dos
次に LILO を有効にします。ここでエラーが出たら、lilo.conf を見直しましょう。
# /sbin/lilo
ヘッダファイルをインストールします。
# rpm -Uvh kernel-headers-VER-REL.i386.rpm
または
# apt-get install kernel-headers
カーネルソースやドキュメントが必要ならばインストールします。
# rpm -Uvh kernel-doc-VER-REL.i386.rpm # rpm -Uvh kernel-source-VER-REL.i386.rpm
または
# apt-get install kernel-{doc,source}
これでパッケージのアップグレードは終了です。マシンを再起動します。
# /sbin/shutdown -r now
標準の設定ではハードウェアが動かない場合、必要なサービスが設定されてい ない場合、カーネルをシェイプアップしたい場合などには、カーネルを自分の 設定で作りなおすことができます。自分でカーネルソースを取ってきてコンパ イルすることもできますが、Vine Linux 用に配布されているカーネルパッケー ジから自分用のカーネルパッケージを作成しなおすほうが安全で簡単です。
Project Vine から配布されているカーネルパッケージから、自分で設定をしなおしたパッケージを作成することができます。生成したパッケージは、「カーネルパッケージのアップグレード」の手順に従って扱うことができます。
Vine Linuxには mkkpkg というスクリプトが含まれており、これを利用することで簡単にカーネルパッケージを作成することができます。
カーネルの設定方法はデフォルトで menuconfig です。変更したい場合は、引数の最後に「config」や「xconfig」をつけ加えることができます。
$ /usr/sbin/mkkpkg <ソースパッケージのあるディレクトリ>/kernel-VER-REL.src.rpm
このスクリプトでは、生成するパッケージのリビジョン番号を指定できます。バー ジョン管理のために、「.<自分用のリビジョン>」を付加するのがお勧め です。例えば、kernel-2.2.17-0vl8 に対しては、リビジョンを「0vl8.1」 「0vl8.2」「0vl8.3」…とするのがお勧めです。
カーネルパッケージは標準で ~/rpm/RPMS/i386/ と ~/rpm/SRPMS/ ディレクトリ内に作成され ます。
インストールされたカーネルソースや、自分で取ってきたカーネルソースを利用してカーネルを作ることもできますが、RPM の管理を壊してしまう可能性があるため、あまりお勧めできません。Vine Linuxのシステム構成やカーネルについて熟知した上で行ってください。
標準のカーネルパッケージに含まれていないパッチを利用したい場合はにこの方法がお手軽ですが、mkkpkg の途中で spec ファイルを編集してちゃんとしたパッケージを作るのが理想的です。
# cd /usr/src/linux # make menuconfig
で自分好みの設定に変えます。設定を保存したら、
# make dep clean bzImage modules modules_install
とします.
/が SCSI ディスク上にある場合
/ (ルートパーティション)が SCSI ディスク上にある場合は
# /sbin/mkinitrd /boot/initrd-VER.img VERを実行します。
最後に作成された vmlinuz-VER を /boot にコピーします。
# /sbin/installkernel VER arch/i386/boot/bzImage System.map
あとは、/etc/lilo.conf を編集して /sbin/lilo を実行してください。