Kernel Upgrade/Configure Guide for Vine MATSUMOTO Shoji 著 Written: <1999/03/17 00:51 on parasite.privnet> Vine のカーネルには、標準で配布されているカーネルソースに加えて、様々 な改良、コンフィギュアが施されています。また、種々のシステムのサービス を簡単に利用できるように、多くのハードウェアに対応できるようになってい ます。配布されているカーネルを自分でコンパイルして利用することもできま すが、様々な不整合が起こる可能性もあるため、あまりお勧めできません。こ の文書には、Project Vine が配布しているカーネルパッケージのアップグレ ードと設定方法が書いてあります。ここでは、対応アーキテクチャを i386 に 限定します。 1. カーネルパッケージ 1.1. カーネルパッケージのバージョン rpm パッケージの名前付けの規則は、<パッケージ名>-<バージョン>-<リリー ス番号> となっています。Vine のカーネルパッケージでは、<バージョン>に はカーネルのバージョン、<リリース番号>は、ベースになる Red Hat Linux のリリース番号の後に vl を付加したものになってい ます。 この文書では、カーネルのバージョンをVER、リリース番号をRELとしま す。kernel-2.0.36-3vl1 であれば、VER を 2.0.36、REL を 3vl1 と読み換え てください。 1.2. カーネルパッケージの構成 kernel-VER-REL.src.rpm カーネルのソースパッケージです。カーネルを自分でコンパイルする場 合に利用され、以下のバイナリパッケージすべてを生成します kernel-VER-REL.i386.rpm カーネル本体とカーネルモジュールが含まれています。複数のカーネル パッケージを同時にインストールすることができます。 kernel-pcmcia-cs-VER-REL.i386.rpm PCMCIA 用のモジュールとツールが含まれています。PCMCIA を利用する 場合に必要です。複数のパッケージを同時にインストールすることはで きません。 ドキュメントは /usr/doc/kerne-pcmcia-cs-VER-REL にインストールさ れます。 kernel-ibcs-VER-REL.i386.rpm iBCS2(Intel Binary Compatibility Standard, version2) を実行する ために必要なモジュールとツールが含まれています。複数のパッケージ を同時にインストールすることはできません。 ドキュメントは /usr/doc/kerne-ibcs-VER-REL にインストールされま す。 kernel-source-VER-REL.i386.rpm カーネルのソースです。/usr/src/linux にインストールされます。複 数のリビジョンを同時にインストールすることはできませんが、複数の バージョンをインストールすることはできます。 kernel-documents-VER-REL.i386.rpm カーネルのドキュメントです。/usr/src/linux/Documents および /usr/src/linux/VFAT-jp にインストールされ、カーネルの設定などに 必要な情報が書かれています。複数のリビジョンを同時にインストール することはできませんが、複数のバージョンをインストールすることは できます。 kernel-headers-VER-REL.i386.rpm カーネルのヘッダファイルです。/usr/src/linux にインストールさ れ、カーネルの様々なドキュメントも含まれています。複数のパッケー ジをインストールすることはできません。様々なプログラムをコンパイ ルするために必要です。 2. カーネルパッケージのアップグレード Vine のカーネルパッケージは、他のパッケージと同様に RPM 形式で配布され ていますが、他のパッケージのように「RPM -Uvh」でアップグレードすること はできません。以下の手順に従ってアップグレードしてください。 最低限必要なパッケージは、kernel-VER-REL.i386.rpm と kernel-headers- VER-REL.i386.rpm です。PCMCIA が必要な場合は kernel-pcmcia-cs-VER- REL.i386.rpm も必要になります。必要なパッケージにアクセスできるように しておいてください。/root にコピーしておくのが最も安全でしょう。 これらの他、Vine の標準 PPP クライアントである PPxP を利用している人 は、userlink パッケージも必要になることがありますの で、userlink-*.src.rpm も手元に持ってきておきましょう。 まず、安全のためにシングルユーザモードに移行します。シングルユーザモー ドでは不必要なサービスはすべて停止されます。ネットワークにはアクセスで きます。 すべてのユーザはログアウトし、コンソールから root でログインし、以下の 手順でシングルユーザモードに移行し、パッケージ群のあるディレクトリに cd します。 # init S # cd <パッケージのあるディレクトリ> 次に新しいカーネルパッケージをインストールします。 # rpm -ivh kernel-VER-REL.i386.rpm o ノートユーザの場合、PCMCIA パッケージもインストールしま す。/etc/sysconfig/pcmcia の記述に注意してください。 # rpm -Uvh kernel-pcmcia-cs-VER-REL.i386.rpm o / (ルートパーティション)を SCSI ディスクに置いてある場合、mkinitrd を実行しなければなりません。 # mkinitrd /boot/initrd-VER-REL.img VER-REL インストールされたカーネルで起動できるように、ブートローダである 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.0.36-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 # /etc/rc.d/init.d/ppxp restart 3. カーネルを自分の設定で作りなおす 標準の設定ではハードウェアが動かない場合、必要なサービスが設定されてい ない場合、カーネルをシェイプアップしたい場合などには、カーネルを自分の 設定で作りなおすことができます。自分でカーネルソースを取ってきてコンパ イルすることもできますが、Project Vine より配布されているカーネルパッ ケージから自分用のカーネルパッケージを作成しなおすほうが安全で簡単で す。 3.1. カーネルパッケージを作りなおす Project Vine から配布されているカーネルパッケージから、自分で設定をし なおしたパッケージを作成することができます。生成したパッケージは、``カ ーネルパッケージのアップグレード''の手順に従って扱うことができます。 Vine には 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/ ディレクトリ内に作成されます。 3.2. ソースツリーから作成する インストールされたカーネルソースや、自分で取ってきたカーネルソースを利 用してカーネルを作ることもできますが、RPM の管理を壊してしまう可能性が あるため、あまりお勧めできません。Vine のシステム構成やカーネルについ て熟知した上で行ってください。 標準のカーネルパッケージに含まれていないパッチを利用したい場合はにこの 方法がお手軽ですが、mkkpkg の途中で spec ファイルを編集してちゃんとし たパッケージを作るのが理想的です。 # cd /usr/src/linux # make menuconfig で自分好みの設定に変えます。設定を保存したら、 # make dep clean zImage modules modules_install o pcmcia を作る場合は # cd pcmcia-cs-* # make config all install を実行します。 o / (ルートパーティション)が SCSI ディスク上にある場合は # mkinitrd /boot/initrd-VER.img VER を実行します。 最後に作成された vmlinuz-VER を /boot にコピーします。 # /sbin/installkernel VER arch/i386/boot/zImage System.map あとは lilo を編集して再起動します。 4. 著作権 この文書は松本庄司(MATSUMOTO Shoji)による著作物で、著作権は著者が有し ます。改変、再配布についての許諾、バグ報告は Project Vine までお願いします。