カーネル再構築


現在カーネルは2.4系を使っています。
これを2.6系のカーネルに入れ替えます。

2.4と2.6系の違いは何?って聞かれても筆者もよく分かっていません。
筆者に一つ違いを挙げよと言うのであれば、カーネルのノンプリエンティブからプリエンティブ化を答えますが・・・
(カーネル部分が、Win3.1からWin95になったと考えてもらえればいいかと)

将来的には、このサーバーにPPPoE機能を持たせ、ルータ(PPPoE+IPマスカレード+DHCP)にしたいと考えています。
そのときには、カーネルの再構築が必要です。
カーネルバージョンアップを兼ねてカーネルの再構築の練習をここでしておきます。

準備


カーネル再構築に必要なツールやライブラリをインストールします。

<ツールのインストール>
# apt-get update
# apt-get install kernel-package

<ライブラリのインストール>
apt-get install libncurses5-dev


カーネルソースの取得


取得可能なカーネルソースを調べます。

# apt-cache search kernel-source←kernel-sourceの文字列を持つパッケージ一覧の表示
cpad-kernel-source - source for the Synaptics cPad driver
freeswan - IPSEC utilities for FreeSWan
kernel-patch-debian-2.4.27 - Debian patches to Linux 2.4.27
kernel-patch-debian-2.6.8 - Debian patches to Linux 2.6.8
kernel-patch-usagi - Another IPv6 implementation for Linux
kernel-source-2.2.25 - Linux kernel source for version 2.2.25
kernel-source-2.4.27 - Linux kernel source for version 2.4.27 with Debian patches
kernel-source-2.6.8 - Linux kernel source for version 2.6.8 with Debian patches
misdn-kernel-source - Source code for the mISDN modules
oprofile - system-wide profiler for Linux systems
wacom-kernel-source - Source for the wacom binary modules
wacom-tools - Utilities for wacom tablets and other hid devices

kernel-source-2.6.8を取得し展開します。
# cd /usr/src
# apt-get install kernel-source-2.6.8←ソースの取得
# tar jxvf kernel-source-2.6.8.tar.bz2←ソースの展開
# cd kernel-source-2.6.8←カレントディレクトリを展開されたディレクトリにしておく
下記ディレクトリ内にカーネルのソースが展開されます。
/usr/src/kernel-source-2.6.8


カーネル環境設定とコンパイル


# cp /boot/config-2.4.27-1-686 .config←現在のカーネル環境ファイルをコピーする
# make oldconfig←カーネルの環境の設定:膨大な質問があるが全てデフォルトとした
# make menuconfig←カーネルの環境の調整:今回はPCMCIAだけを外した
# make-kpkg clean←コンパイル環境の初期化
# make-kpkg --append_to_version -1-i686 --initrd --revision alk.1.2 kernel_image←カーネルコンパイル開始:initrdオプションを指定

debian の場合 initrdは、cramfs を組み込んだkernel で仮の root filesystem を mount し必要な module を load します。
その後、実際の root を mount するという仕組みです。
このように、2段打ち上げ的なブート方法を使用しています。

カーネルのインストール


cd ..
# dpkg -i kernel-image-2.6.8-1-i686_alk.1.2_i386.deb

これで、カーネルのバージョンアップは終了です。
再起動させます。
grubのカーネル選択メニューが増えているはずです。