今回の場合はバージョンのアップもかねてlinux-2.6.17をダウンロードして/usr/src/に展開して
いる.なお、ここからの説明はすべて/usr/src/linux-2.6.17での作業としている.
VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 17 EXTRAVERSION = -mycustom ・・・
このコマンドは.configファイルも削除するので前の設定を用いたいのならばバックアップをとって おく.ちなみに新しくダウンロードしてきたkernelにおいては特にこの作業をする必要は無い.%make mrproper
64-bit kernel | 64ビット用のカーネルにするかどうかの設定 |
Processor suport | PPC系列のprocessorの選択やmulti processorのサポート |
Code maturity level option | 開発中や試験的に使用している機能の項目の選択をできるようにする |
General setup | 一般設定の項目 |
Loadable module support | ローダブルモジュールを利用するための設定.モジュールのロードに関する項目やkernelのモジュールの自動読みこみなどがある |
Block layer | ブロックデバイスのサイズのサポートなど |
Platform support | Prossecer Typeによって変化する. |
Kernel options | サーバ向けかデスクトップ向けにするかの選択(?)他にも電源管理とか,サスペンドとか. |
Bus options | 拡張カードバスに関する設定 |
Advanced setup | さらに細かい設定を行えるようにするかどうかの設定 |
Nerworking | TCP/IPを使用するかどうかなどのネットワークの設定項目 |
Device Drivers | デバイスドライバに関する設定.さまざまなデバイスの必要かどうかを設定する. |
File systems | サポートするファイルシステムに関する設定. |
Library routines | CRCチェックに関する設定 |
Instrumentation Support | |
Kernel hacking | 強制リブートやダンプなどの機能をつける.主にkernelのデバッグに利用する機能. |
Security options | セキュリティ機能に関する項目 |
Cryptographic options | 暗号化アルゴリズムに関する設定 |
makeをするとkernelとmoduleのコンパイルが同時に行われる.もし,別々でコンパイルしたいのなら%make
とのようにすることでコンパイルが可能.2.6より下のバージョンでコンパイルを行う場合は make zImage,make modulesを行う前にmake depをして変更をカーネルツリーに反映させる必要がある. コンパイルが通ればvmlinuxやSystem.map,arch/powerpc/boot/zImageなどが生成されているはずだ.%make zImage %make modules
これによって/lib/modulesのディレクトリ下に設定したリリースの名前のフォルダができ,モジュールが インストールされる.%make modules_install
この時,zImage及びvmlinuxというファイルがkernel本体である.zImageはvmlinuxを圧縮したものである. System.mapはsymbol情報を格納したファイルである.これらを/bootのディレクトリ下に適当に名前を変更 してコピーする.%cp arch/powerpc/boot/zImage /boot/vmlinuz-2.6.17.mycustom %cp vmlinux /boot/vmlinux-2.6.17.mycustom %cp System.map-2.6.17.mycustom
Suseの場合は以上のようにして作成する,もしくはmkinitrdコマンドだけを行う事で現在/bootにあるそれぞれの kernelについてのinitrdを作成してくれる.%mkinitrd -i initrd-2.6.17.mycustom -k vmlinux-2.6.17.mycustom -M System.map-2.6.17.mycustom
これを以下のようにし,作成したkernelの設定を追加する.activate timeout = 80 default = linux boot = /dev/hda3 image = /boot/vmlinux ###Don't change this comment - YaST2 identifier: Original name: linux### label = linux append = " quiet sysrq=1" initrd = /boot/initrd root = /dev/hda6
赤く表示しているところが追加した部分.labelはPCを起動した際にどのkernelをブートするのかを選択する 時に表示される名前.imageはブートするkernel本体を指してしている.appendはkernelのブート時にkernel に渡す引数で,rootがこのlinuxの通常時にルートとして扱われるデバイスを表している.activate timeout = 80 default = linux boot = /dev/hda3 image = /boot/vmlinux ###Don't change this comment - YaST2 identifier: Original name: linux### label = linux append = " quiet sysrq=1" initrd = /boot/initrd root = /dev/hda6 image = /boot/vmlinux-2.6.17.mycustom ### mycustom linux ### label = mycustom append = " quiet sysrq=1" initrd = /boot/initrd-2.6.17.mycustom root = /dev/hda6
これでエラーがでなかったら再起動をする.%/sbin/lilo
ちゃんと設定したkernelが動いている事が伺える.%uname -r 2.6.17.mycustom