Changes between Initial Version and Version 1 of docs/vl7/cui-guide/kernel-upgrade


Ignore:
Timestamp:
2013/05/25 09:55:10 (11 years ago)
Author:
yasumichi
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • docs/vl7/cui-guide/kernel-upgrade

    v1 v1  
     1[wiki:docs Vine Linux ドキュメント] / [wiki:../../ Vine Linux 7.x] / [wiki:../ CUI ユーザーズガイド] / カーネルのアップグレード、設定の方法 
     2 
     3= カーネルのアップグレード、設定の方法 = 
     4 
     5== カーネルパッケージ == 
     6 
     7=== カーネルパッケージのバージョン === 
     8 
     9Vine Linuxのカーネルパッケージでは、<バージョン>にはカーネルのバージョン、<リリース番号>は、 0vl<Vine のリリース番号> の形になっています。 
     10 
     11この文書では、カーネルのバージョンをVER、 リリース番号をREL、 アーキテクチャをARCとします。kernel-2.6.16-0vl60.i386 であれば、 VER を 2.6.16、REL を 0vl60、ARC を i386 と読み換えてください。 
     12 
     13=== カーネルパッケージの構成 === 
     14 
     15 kernel-VER-REL.src.rpm:: カーネルのソースRPMパッケージです。カーネルRPMを自分でコンパイルする場合に利用され、 以下のバイナリパッケージすべてを生成します。 
     16 kernel-VER-REL.ARC.rpm:: カーネル本体とカーネルモジュールが含まれています。複数のカーネルパッケージを同時にインストールすることができます。Vine 3.x までは SMPカーネルがありましたが、Vine Linux 4.0 からは標準のカーネルで SMP 対応になっています。 
     17 kernel-source-VER-REL.ARC.rpm:: カーネルのソースです。/usr/src/linux-VER にインストールされます。複数のリビジョンを同時にインストールすることはできませんが、複数のバージョンをインストールすることはできます。 
     18 kernel-doc-VER-REL.ARC.rpm:: カーネルのドキュメントです。/usr/share/doc/kernel-VER にインストールされ、カーネルの設定などに必要な情報が書かれています。複数のリビジョンを同時にインストールすることはできませんが、複数のバージョンをインストールすることはできます。 
     19 kernel-devel-VER-REL.ARC.rpm:: カーネル用のモジュールを構築するための開発パッケージです。/usr/src/kernels/VER-REL-ARC にインストールされます。複数のリビジョンを同時にインストールすることはできませんが、複数のバージョンをインストールすることはできます。 
     20 
     21{{{ 
     22#!Admonition 
     23==== 一般的なアプリケーションの開発に必要なパッケージについて ==== 
     24 
     25kernel 2.4 の時の kernel-headers のパッケージは、 kernel 2.6 では kernel-devel と glibc-kernheaders の 2つのパッケージになりました。 
     26 
     27glibc-devel が必要としていた kernel-headers の中の一般的なアプリケーション用のヘッダーファイルは glibc-kernheaders のパッケージに含まれるようになりました。 
     28 
     29glibc-kernheaders は kernel-VER-REL.src.rpm からは作成されません。 そのため、kernel の特定のバージョンに依存することはなくなりました。 
     30}}} 
     31 
     32== カーネルパッケージのアップグレード == 
     33 
     34Vine Linuxのカーネルパッケージは、他のパッケージと同様に RPM 形式で配布されていますが、他のパッケージのように rpm -Uvh でアップグレードすることはできません。以下の手順に従ってアップグレードしてください。 
     35 
     36最低限必要なパッケージは、 
     37{{{ 
     38kernel-VER-REL.ARC.rpm  
     39}}} 
     40です。必要なパッケージにアクセスできるようにしておいてください。/root にコピーしておくのが最も安全でしょう。 
     41 
     42まず、新しいカーネルパッケージをインストールします。 
     43 
     44{{{ 
     45#!sh 
     46$ sudo rpm -ivh kernel-VER-REL.ARC.rpm 
     47}}} 
     48 
     49または 
     50 
     51{{{ 
     52#!sh 
     53$ sudo apt-get install kernel-VER-REL.ARC.rpm 
     54}}} 
     55 
     56apt-cache を使用した場合、インストール可能なカーネルパッケージの候補がインストール済みカーネルとともに表示されます。どのバージョンのパッケージがインストール済みかについては rpm コマンドの -q オプションを利用してください。 
     57 
     58{{{ 
     59#!sh 
     60$ apt-cache show kernel 
     61kernel は以下のパッケージで提供されているバーチャルパッケージです。 
     62  kernel#2.6.16-0vl60 2.6.16-0vl60 
     63  kernel#2.6.16-0vl60 2.6.16-0vl60 
     64  kernel#2.6.16-0vl61 2.6.16-0vl61 
     65  kernel#2.6.16-0vl61 2.6.16-0vl61 
     66  kernel#2.6.16-0vl62 2.6.16-0vl62 
     67  kernel#2.6.16-0vl62 2.6.16-0vl62 
     68表示するパッケージを明示的に選択する必要があります。 
     69E: パッケージ kernel は複数のパッケージで提供されているバーチャルパッケージです。 
     70E: パッケージがみつかりません 
     71 
     72$ rpm -q kernel 
     73kernel-2.6.16-0vl60 
     74}}} 
     75 
     76この場合、インストールするパッケージを選択する必要があります。例えば、最後のパッケージをインストールする場合、以下のようにバージョンを指定します。 
     77 
     78{{{ 
     79#!sh 
     80$ sudo apt-get install kernel#2.6.16-0vl62 
     81パッケージリストを読みこんでいます... 完了 
     82依存情報ツリーを作成しています... 完了 
     83以下のパッケージが新たにインストールされます: 
     84  kernel#2.6.16-0vl62 
     85アップグレード: 0 個, 新規インストール: 1 個, 削除: 0 個, 保留: 19 個 
     8611.6MB のアーカイブを取得する必要があります。 
     87展開後に 26.1MB のディスク容量が追加消費されます。 
     88取得:1 http://updates.vinelinux.org/apt 4.1/i386/main kernel#2.6.16-0vl62 2.6.16-0vl62 [11.6MB] 
     8911.6MB を 0s 秒で取得しました (20.8MB/s) 
     90変更を適用しています... 
     91Preparing...                ########################################### [100%] 
     92   1:kernel                 ########################################### [100%] 
     93完了 
     94}}} 
     95 
     96インストールするパッケージを選択しなかった場合には、 まだインストールされていないものの中でバージョンの一番新しいものがインストールされます。 
     97 
     98kernel!#2.6.16-0vl62 をインストールしてなければ kernel!#2.6.16-0vl62 が、 kernel!#2.6.16-0vl62 をインストールしてあれば kernel!#2.6.16-0vl61 がインストールされることになります。 
     99 
     100{{{ 
     101#!sh 
     102$ sudo apt-get install kernel 
     103パッケージリストを読みこんでいます... 完了 
     104依存情報ツリーを作成しています... 完了 
     105'kernel' として kernel#2.6.16-0vl61 を選択しました 
     106以下のパッケージが新たにインストールされます: 
     107  kernel#2.6.16-0vl61 
     108アップグレード: 0 個, 新規インストール: 1 個, 削除: 0 個, 保留: 1 個 
     10911.6MB のアーカイブを取得する必要があります。 
     110展開後に 46.1MB のディスク容量が追加消費されます。 
     111取得:1 http://updates.vinelinux.org/apt 4.1/ARC/main kernel#2.6.16-0vl61 2.6.16-0vl61 [11.6MB] 
     11211.6MB を 0s 秒で取得しました (20.8MB/s) 
     113変更を適用しています... 
     114準備中...                   ########################################### [100%] 
     115   1:kernel                 ########################################### [100%] 
     116完了 
     117}}} 
     118 
     119=== アップグレード作業の終了 === 
     120 
     121カーネルソースやドキュメントやモジュール構築用の開発パッケージが必要ならばインストールします。 
     122 
     123{{{ 
     124#!sh 
     125$ sudo rpm -Uvh kernel-doc-VER-REL.ARC.rpm 
     126$ sudo rpm -Uvh kernel-source-VER-REL.ARC.rpm 
     127$ sudo rpm -Uvh kernel-devel-VER-REL.ARC.rpm 
     128}}} 
     129 
     130または 
     131 
     132{{{ 
     133#!sh 
     134$ sudo apt-get install kernel-{doc,source,devel} 
     135}}} 
     136 
     137これでパッケージのアップグレードは終了です。マシンを再起動します。 
     138 
     139{{{ 
     140#!sh 
     141$ /sbin/shutdown -r now 
     142}}} 
     143 
     144{{{ 
     145#!Admonition 
     146==== ブートローダの設定について (i686,x86_64) ==== 
     147 
     148Vine Linux 4.0から導入されたカーネルパッケージのアップグレード機構とブートローダGRUBの組合せにより、インストールされたままの設定であれば、特にブートローダの設定を変更する必要がありません。 
     149 
     150なお、GRUBの設定ファイルは/boot/grub/menu.lstです。LILOと違い、設定ファイルを変更してもブートレコードの書き換えが必要ないのが特徴です。 
     151 
     152GRUBの設定ファイルは最後にインストールしたカーネルで起動するように設計されています。 
     153 
     154また、選択肢として、その一つ前にインストールしたカーネルがメニューにあります。 
     155 
     156インストールした順番が基準となるので、バージョンを比較して新しいものを起動するわけではありませんが、 通常のアップグレードであれば、最後にインストールしたカーネルが最新のバージョンのカーネルとなります。 
     157}}} 
     158 
     159==== GRUBの設定 ==== 
     160 
     161最後にインストールしたカーネル、その前にインストールしたカーネルのような指定ではなく、特定のバージョンのカーネルで起動できるようにするには、ブートローダである GRUB の設定ファイル /boot/grub/menu.lst をエディタを使って編集します。GNOME をインストールしてあれば、boot-adminコマンドを利用することもできます。menu.lst の書式などについては info grub を参照してください。 
     162 
     163安定バージョン(STABLE KERNEL)が 2.6.16-0vl60、テストバージョン(TEST KERNEL)が 2.6.16-0vl60.1 として Grub のメニューに追加するには次のようにします。 
     164 
     165もともとある (Current kernel) のエントリをコピーして title の行と kernel の行の vmlinuz のバージョン と initrd の行の initrd.img のバージョンを指定します。 
     166 
     167例 IV.19-1 GRUB の設定ファイル menu.lst に新しいエントリを追加する 
     168 
     169{{{ 
     170default=0 
     171timeout=5 
     172 
     173title Vine Linux (Current kernel) 
     174        root (hd0,1) 
     175        kernel /boot/vmlinuz ro root=/dev/hda2 resume2=swap:/dev/hda3 vga=0x314 
     176        initrd /boot/initrd.img 
     177        savedefault 
     178 
     179title Vine Linux (Previous kernel) 
     180        root (hd0,1) 
     181        kernel /boot/vmlinuz.old ro root=/dev/hda2 resume2=swap:/dev/hda3 vga=0x314 
     182        initrd /boot/initrd.old.img 
     183        savedefault 
     184 
     185追加title Vine Linux (STABLE KERNEL) 
     186追加      root (hd0,1) 
     187追加      kernel /boot/vmlinuz-2.6.16-0vl60 ro root=/dev/hda2 resume2=swap:/dev/hda3 vga=0x314 
     188追加      initrd /boot/initrd-2.6.16-0vl60.img 
     189追加 
     190追加title Vine Linux (TEST KERNEL) 
     191追加      root (hd0,1) 
     192追加      kernel /boot/vmlinuz-2.6.16-0vl60.1 ro root=/dev/hda2 resume2=swap:/dev/hda3 vga=0x314 
     193追加      initrd /boot/initrd-2.6.16-0vl60.1.img 
     194}}} 
     195 
     196=== カーネルを自分の設定で作り直す === 
     197 
     198標準の設定ではハードウェアが動かない場合、必要なサービスが設定されてい ない場合、カーネルをシェイプアップしたい場合などには、カーネルを自分の 設定で作りなおすことができます。自分でカーネルソースを取ってきてコンパ イルすることもできますが、Vine Linux 用に配布されているカーネルパッケー ジから自分用のカーネルパッケージを作成しなおすほうが安全で簡単です。 
     199 
     200==== カーネルパッケージを作り直す ==== 
     201 
     202Project Vine から配布されているカーネルパッケージから、自分で設定をしなおしたパッケージを作成することができます。生成したパッケージは、「カーネルパッケージのアップグレード」の手順に従って扱うことができます。 
     203 
     204Vine Linuxには mkkpkg というスクリプトが含まれており、これを利用することで簡単にカーネルパッケージを作成することができます。 
     205 
     206カーネルの設定方法はデフォルトで menuconfig です。変更したい場合は、引数の最後に「config」や「xconfig」をつけ加えることができます。 
     207 
     208$ /usr/sbin/mkkpkg <ソースパッケージのあるディレクトリ>/kernel-VER-REL.src.rpm 
     209 
     210このスクリプトでは、生成するパッケージのリビジョン番号を指定できます。バー ジョン管理のために、「.<自分用のリビジョン>」を付加するのがお勧め です。例えば、kernel-2.6.16-0vl2 に対しては、リビジョンを「0vl2.1」 「0vl2.2」「0vl2.3」…とするのがお勧めです。 
     211 
     212カーネルパッケージは標準で ~/rpm/RPMS/i386/ と ~/rpm/SRPMS/ ディレクトリ内に作成され ます。 
     213 
     214==== ソースツリーから作成する ==== 
     215 
     216インストールされたカーネルソースや、自分で取ってきたカーネルソースを利用してカーネルを作ることもできますが、RPM の管理を壊してしまう可能性があるため、あまりお勧めできません。Vine Linuxのシステム構成やカーネルについて熟知した上で行ってください。 
     217 
     218標準のカーネルパッケージに含まれていないパッチを利用したい場合はにこの方法がお手軽ですが、mkkpkg の途中で spec ファイルを編集してちゃんとしたパッケージを作るのが理想的です。 
     219 
     220{{{ 
     221#!sh 
     222$ cd /usr/src/linux-VER 
     223$ sudo make menuconfig 
     224}}} 
     225で自分好みの設定に変えます。設定を保存したら、 
     226{{{ 
     227#!sh 
     228$ sudo make dep clean bzImage modules modules_install 
     229}}} 
     230とします。 
     231 
     232make menuconfig の前に 
     233{{{ 
     234#!/sh 
     235$ sudo cp configs/kernel-VERSION-ARC.config .config 
     236$ sudo make oldconfig 
     237}}} 
     238とすると、あらかじめ Vine Linux 用に設定されたものを用いることができます。 そのあとで make menuconfig などを行って自分好みの設定を行ってください。 
     239 
     240/ (ルートパーティション)が SCSI ディスク上や SATA のディスク上にある場合は 
     241{{{ 
     242#!sh 
     243$ sudo /sbin/mkinitrd /boot/initrd-VER.img VER 
     244}}} 
     245を実行します。 
     246 
     247==== 仕上げ ==== 
     248 
     249最後に作成された vmlinuz と System.map を /boot にインストールします。 
     250 
     251{{{ 
     252#!sh 
     253$ sudo make install 
     254}}} 
     255 
     256/boot/vmlinuz と /boot/System.map といったようにバージョンなどのつかない名前になるので、必要であれば 
     257{{{ 
     258#!sh 
     259$ sudo cp /boot/vmlinuz /boot/vmlinuz-VER-REL 
     260$ sudo cp /boot/System.map /boot/System.map-VER-REL 
     261}}} 
     262のようにバージョンも付けた名前でコピーを作成してください。 
     263 
     264以上の作業が終了したら、新しいカーネルで起動できる様に/boot/grub/menu.lstを編集してください。 
     265