Vine Linuxのカーネルパッケージは、他のパッケージと同様に RPM 形式で配 布されていますが、他のパッケージのように rpm -Uvhでアップグレードする ことはできません。以下の手順に従ってアップグレードしてください。
最低限必要なパッケージは、
kernel-VER-REL.i386.rpm
です。必要なパッケージにアクセスできるようにしておいてください。/root にコピーしておくのが最も安全でしょう。
まず、新しいカーネルパッケージをインストールします。
# rpm -ivh kernel-VER-REL.i386.rpm
または、
# apt-get install kernel-VER-REL.i386.rpm
apt-cacheを使用した場合、
インストール可能なカーネルパッケージの候補がインストール済みカーネルとともに表示されます。
どのバージョンのパッケージがインストール済みかについては
rpmコマンドの-qオプション を利用してください。
$ apt-cache show kernelkernel は以下のパッケージで提供されているバーチャルパッケージです。 kernel#2.6.16-0vl60 2.6.16-0vl60 kernel#2.6.16-0vl60 2.6.16-0vl60 kernel#2.6.16-0vl61 2.6.16-0vl61 kernel#2.6.16-0vl61 2.6.16-0vl61 kernel#2.6.16-0vl62 2.6.16-0vl62 kernel#2.6.16-0vl62 2.6.16-0vl62 表示するパッケージを明示的に選択する必要があります。 E: パッケージ kernel は複数のパッケージで提供されているバーチャルパッケージです。$ rpm -q kernelkernel-2.6.16-0vl60
この場合、インストールするパッケージを選択する必要があります。例えば、最後のパッケージをインストールする場合、以下のようにバージョンを指定します。
# apt-get install kernel#2.6.16-0vl62
パッケージリストを読みこんでいます... 完了
依存情報ツリーを作成しています... 完了
以下のパッケージが新たにインストールされます:
kernel#2.6.16-0vl62
アップグレード: 0 個, 新規インストール: 1 個, 削除: 0 個, 保留: 19 個
11.6MB のアーカイブを取得する必要があります。
展開後に 26.1MB のディスク容量が追加消費されます。
取得:1 http://updates.vinelinux.org/apt 4.1/i386/main kernel#2.6.16-0vl62 2.6.16-0vl62 [11.6MB]
11.6MB を 0s 秒で取得しました (20.8MB/s)
変更を適用しています...
Preparing... ########################################### [100%]
1:kernel ########################################### [100%]
完了
インストールするパッケージを選択しなかった場合には、 まだインストールされていないものの中でバージョンの一番新しいものがインストールされます。
kernel#2.6.16-0vl62 をインストールしてなければ kernel#2.6.16-0vl62 が、 kernel#2.6.16-0vl62 をインストールしてあれば kernel#2.6.16-0vl61 がインストールされることになります。
# apt-get install kernel
パッケージリストを読みこんでいます... 完了
依存情報ツリーを作成しています... 完了
'kernel' として kernel#2.6.16-0vl61 を選択しました
以下のパッケージが新たにインストールされます:
kernel#2.6.16-0vl61
アップグレード: 0 個, 新規インストール: 1 個, 削除: 0 個, 保留: 1 個
11.6MB のアーカイブを取得する必要があります。
展開後に 46.1MB のディスク容量が追加消費されます。
取得:1 http://updates.vinelinux.org/apt 4.1/i386/main kernel#2.6.16-0vl61 2.6.16-0vl61 [11.6MB]
11.6MB を 0s 秒で取得しました (20.8MB/s)
変更を適用しています...
準備中... ########################################### [100%]
1:kernel ########################################### [100%]
完了
カーネルソースやドキュメントやモジュール構築用の開発パッケージが必要ならばインストールします。
# rpm -Uvh kernel-doc-VER-REL.i386.rpm # rpm -Uvh kernel-source-VER-REL.i386.rpm # rpm -Uvh kernel-devel-VER-REL.i386.rpm
または
# apt-get install kernel-{doc,source,devel}これでパッケージのアップグレードは終了です。マシンを再起動します。
# /sbin/shutdown -r now
ブートローダの設定について (i386)
Vine Linux 4.1から導入されたカーネルパッケージのアップグレード機構とブートローダGRUBの組合せにより、インストールされたままの設定であれば、特にブートローダの設定を変更する必要がありません。
なお、GRUBの設定ファイルは/boot/grub/menu.lstです。LILOと違い、設定ファイルを変更してもブートレコードの書き換えが必要ないのが特徴です。
GRUBの設定ファイルは最後にインストールしたカーネルで起動するように設計されています。
また、選択肢として、その一つ前にインストールしたカーネルがメニューにあります。
インストールした順番が基準となるので、バージョンを比較して新しいものを起動するわけではありませんが、 通常のアップグレードであれば、最後にインストールしたカーネルが最新のバージョンのカーネルとなります。
最後にインストールしたカーネル、その前にインストールしたカーネルのような指定ではなく、特定のバージョンのカーネルで起動できるようにするには、ブートローダである GRUB の設定ファイル /boot/grub/menu.lst をエディタを使って編集します。GNOME をインストールしてあれば、boot-adminコマンドを利用することもできます。menu.lst の書式などについては info grub を参照してください。
安定バージョン(STABLE KERNEL)が 2.6.16-0vl60、テストバージョン(TEST KERNEL)が 2.6.16-0vl60.1 として Grub のメニューに追加するには次のようにします。
もともとある (Current kernel) のエントリをコピーして title の行と kernel の行の vmlinuz のバージョン と initrd の行の initrd.img のバージョンを指定します。
例 15.1. GRUB の設定ファイル menu.lst に新しいエントリを追加する
default=0 timeout=5 title Vine Linux (Current kernel) root (hd0,1) kernel /boot/vmlinuz ro root=/dev/hda2 resume2=swap:/dev/hda3 vga=0x314 initrd /boot/initrd.img savedefault title Vine Linux (Previous kernel) root (hd0,1) kernel /boot/vmlinuz.old ro root=/dev/hda2 resume2=swap:/dev/hda3 vga=0x314 initrd /boot/initrd.old.img savedefault 追加title Vine Linux (STABLE KERNEL) 追加 root (hd0,1) 追加 kernel /boot/vmlinuz-2.6.16-0vl60 ro root=/dev/hda2 resume2=swap:/dev/hda3 vga=0x314 追加 initrd /boot/initrd-2.6.16-0vl60.img 追加 追加title Vine Linux (TEST KERNEL) 追加 root (hd0,1) 追加 kernel /boot/vmlinuz-2.6.16-0vl60.1 ro root=/dev/hda2 resume2=swap:/dev/hda3 vga=0x314 追加 initrd /boot/initrd-2.6.16-0vl60.1.img
ブートローダの設定について (ppc)
Vine Linux 4.1から導入されたカーネルパッケージのアップグレード機構とブートローダyabootの組合せにより、インストールされたままの設定であれば、特にブートローダの設定を変更する必要がありません。ただし、yabootの設定ファイルに変更を加えた場合は、必ずroot権限で以下のコマンドを実行し、ブートストラップパーティションに反映させて下さい。
# /sbin/mkofboot -v
なお、yabootの設定ファイルは/etc/yaboot.confです。
yabootの設定ファイルは最後にインストールしたカーネルで起動するように設計されています。
また、選択肢として、その一つ前にインストールしたカーネルがメニューにあります。
インストールした順番が基準となるので、バージョンを比較して新しいものを起動するわけではありませんが、 通常のアップグレードであれば、最後にインストールしたカーネルが最新のバージョンのカーネルとなります。
最後にインストールしたカーネル、その前にインストールしたカーネルのような指定ではなく、特定のバージョンのカーネルで起動できるようにするには、ブートローダである yaboot の設定ファイル /etc/yaboot.conf をエディタを使って編集します。yaboot.conf の書式などについては man yaboot.conf を参照してください。この yaboot.conf の設定を変更することにより、デフォルトで起動する OS (Mac OS / Mac OS X / Linux など) を切替えたりすることもできます。
安定バージョン(STABLE KERNEL)が 2.6.16-0vl60、テストバージョン(TEST KERNEL)が 2.6.16-0vl60.1 として yaboot のメニューに追加するには次のようにします。
もともとある、ラベル linux のエントリをコピーして image の行の vmlinux のバージョン と initrd の行の initrd.img のバージョンを指定します。
例 15.2. yaboot の設定ファイル yaboot.conf に新しいエントリを追加する
(...前半は省略...) image=hd:11,/boot/vmlinux label=linux read-only initrd=/boot/initrd.img append="root=LABEL=/" image=hd:11,/boot/vmlinux.old label=linux-old read-only initrd=/boot/initrd.old.img append="root=LABEL=/" 追加image=hd:11,/boot/vmlinux-2.6.16-0vl60 追加 label=linux-2.6.16-0vl60 追加 read-only 追加 initrd=/boot/initrd-2.6.16-0vl60.img 追加 append="root=LABEL=/" 追加image=hd:11,/boot/vmlinux-2.6.16-0vl60.1 追加 label=linux-2.6.16-0vl60.1 追加 read-only 追加 initrd=/boot/initrd-2.6.16-0vl60.1.img 追加 append="root=LABEL=/"
標準の設定ではハードウェアが動かない場合、必要なサービスが設定されてい ない場合、カーネルをシェイプアップしたい場合などには、カーネルを自分の 設定で作りなおすことができます。自分でカーネルソースを取ってきてコンパ イルすることもできますが、Vine Linux 用に配布されているカーネルパッケー ジから自分用のカーネルパッケージを作成しなおすほうが安全で簡単です。
- ■カーネルパッケージを作り直す
Project Vine から配布されているカーネルパッケージから、自分で設定をしなおしたパッケージを作成することができます。生成したパッケージは、「カーネルパッケージのアップグレード」の手順に従って扱うことができます。
Vine Linuxには mkkpkg というスクリプトが含まれており、これを利用することで簡単にカーネルパッケージを作成することができます。
カーネルの設定方法はデフォルトで menuconfig です。変更したい場合は、引数の最後に「config」や「xconfig」をつけ加えることができます。
$ /usr/sbin/mkkpkg
<ソースパッケージのあるディレクトリ>/kernel-VER-REL.src.rpmこのスクリプトでは、生成するパッケージのリビジョン番号を指定できます。バー ジョン管理のために、「.<自分用のリビジョン>」を付加するのがお勧め です。例えば、kernel-2.6.16-0vl2 に対しては、リビジョンを「0vl2.1」 「0vl2.2」「0vl2.3」…とするのがお勧めです。
カーネルパッケージは標準で
~/rpm/RPMS/i386/と~/rpm/SRPMS/ディレクトリ内に作成され ます。- ■ソースツリーから作成する
インストールされたカーネルソースや、自分で取ってきたカーネルソースを利用してカーネルを作ることもできますが、RPM の管理を壊してしまう可能性があるため、あまりお勧めできません。Vine Linuxのシステム構成やカーネルについて熟知した上で行ってください。
標準のカーネルパッケージに含まれていないパッチを利用したい場合はにこの方法がお手軽ですが、mkkpkg の途中で spec ファイルを編集してちゃんとしたパッケージを作るのが理想的です。
# cd /usr/src/linux-VER # make
menuconfigで自分好みの設定に変えます。設定を保存したら、
# make dep clean bzImage modules modules_install
とします。
make menuconfig の前に
# cp configs/kernel-VERSION-ARC.config .config # make oldconfig
とすると、あらかじめ Vine Linux 用に設定されたものを用いることができます。 そのあとで make menuconfig などを行って自分好みの設定を行ってください。
/ (ルートパーティション)が SCSI ディスク上や SATA のディスク上にある場合は
# /sbin/mkinitrd /boot/initrd-
VER.imgVERを実行します。
- ■仕上げ
最後に作成された vmlinuz と System.map を
/bootにインストールします。# make install
/boot/vmlinuzと/boot/System.mapといったようにバージョンなどのつかない名前になるので、必要であればcp /boot/vmlinuz /boot/vmlinuz-
VER-RELcp /boot/System.map /boot/System.map-VER-RELのようにバージョンも付けた名前でコピーを作成してください。
以上の作業が終了したら、新しいカーネルで起動できる様に
/boot/grub/menu.lstを編集してください。
