| 1.How to compile the kernel ディストリビューションはRedHatを前提に話を進めます。 ソースファイルは カーネル2.2系の場合:/usr/src/linux カーネル2.4系の場合:/usr/src/linux-2.4 で作業をします。 @ ソースディレクトリをお掃除! カーネルをコンパイルする前は実行しましょう! $make mrproper A カーネルパラメータ設定 RedHatが提供しているカーネルパラメータをベースとする場合は configというディレクトリ以下にサンプルがあるのでそれをコピーして使いましょう! $cp -p config/XXXXX .config 上記でコピーした設定を反映させるには $make oldconfigとすることで自動的に読込まれます。 新規に作成もしくは編集する場合は、下記の3つの方法があるのでお好きな方法でどうぞ! @.コマンドライン対話方式によるパラメータ設定 $make config A.テキストメニュー形式によるパラメータ設定 $make menuconfig B.GUIベースのメニュー形式パラメータ設定(X Windowsが起動していること) $make xconfig B Makefileを編集 Makefileの中にEXTRAVERSIONという項目がありますので、任意に設定します。 最近のMakefileは-XXcustomという設定になっているので特に設定しなくても問題ないです。 ちなみにこの項目はモジュールファイルのディレクトリ名などに影響します。 例)カーネル2.4.20でEXTRAVERSIONが-8customの場合 /lib/modules/2.4.20-8customというディレクトリ以下にモジュールファイルが導入されます。 C .dependファイルの作成と不要ファイルの削除 カーネルパラメータを元に.dependファイルを作成します $make dep ここはCPUによって時間がかかります。 不要ファイルの削除 $make clean D カーネルの作成 $make bzImage 遅いCPUやSMPマシンの場合は下記の様にするとコンパイルの効率が上がります。 $make -j2 bzImage しばらく待ちましょう! E カーネルとSystem.mapのコピー 作成されたファイルを/bootへコピーします。 $cp -p arch/i386/boot/bzImage /boot/vmlinuz-2.X.XX-Xxxxxx $cp -p System.map /boot/System.map-2.X.XX-Xxxxxx F モジュールのコンパイルと導入 カーネルパラメータで<M>を選択したものがあればここを実施しなければなりません。 $make modules モジュールファイルの導入 $make modules_install /lib/modules/以下にコピーされます。 G initrdファイル作成 SCSIなどを使っている場合はinitrdファイルが必要な場合があります。 $cd /boot $mkinitrd initrd-2.X.XX-Xxxxxx.img 2.X.XX-Xxxxxx initrdファイル名 カーネル名 |