Top > カーネルの再構築

広告

以下のものをインストール

  • gcc
  • make
  • bin86(i386の時)
  • libncurses-dev(menuconfigを使うとき)
  • kernel-package
  • kernel-source-version(versionはカーネルのバージョン)
    • sargeになってからか、2.6.xのカーネルパッケージは「linux-source-2.6.x」になった。2.4.xは前のまま。

/usr/src/にkernel-source-version.tar.bz2というのがでる。このカーネルのソースはtar+bzip2で圧縮されているので、

tar xjvf kernel-source-version.tar.bz2

として展開する。
/usr/src/kernel-source-version
に移ってrootになった後、 make xconfig または make menuconfig などでカーネルの設定を行う

# make-kpkg clean 
# make-kpkg --revision=ver1 kernel-image

と順番にやる。ver1の部分はアルファベットから始まり数字が入っていれば何でも良い。 また、「=」を取って、「make-kpkg --revision ver1 kernel-image」でもOK

/usr/src/に移って

# dpkg -i kernel-image-2.2.14_ver1_i386.deb

を実行。
モージュールの関係で「kernel panic」が出る場合は

# make-kpkg --initrd --revision=ver080719 kernel-image

とやって「initrd」イメージを作っておく。

lilo.confをDebianのデフォルトのまま、/vmlinuzと/vmlinuz.old (実際はそれぞれ/bootの下のvmlinuz-2.4.18等へのシンボリックリンク)を使うように設定していれば勝手に/sbin/liloが実行されて、新しいカーネルを使って起動出来るようになる。 liloを止めてgrubにしているときは、dpkg -iの後で/boot/grub/menu.lstを編集する。
最近はこういった設定は自動に行われるので問題がない限りは必要ない。

一般的にrootで作業をするのは推奨されないので、一般ユーザが自分のディレクトリの下に展開して作業した方がrootでの作業が少なくなって良いようです。例えば~/kernel-2.4を作って展開して作業する。 ftpサイトからkernelのtar ballを拾って来るか、Debianパッケージのkernel-source-versionをインストールする。 この場合は/usr/srcの下にtar ballが置いてある。

$ make-kpkg clean
$ fakeroot make-kpkg --revision=....

とする。

最新のカーネルのバージョンを確かめる時は

$ finger @kernel.org

前に一度カーネルを作っていると /lib/modules/2.4.18 みたいにモジュールのディレクトリができているので、再構築するときは名前を変えるか消す。

参考リンク


広告

リロード   差分   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Thu, 05 Jan 2012 18:51:56 JST (4942d)