差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

linux:compiling-ubuntu-kernel [2012/02/10 22:41] (現在)
nogajun 作成
ライン 1: ライン 1:
 +====== ubuntuのカーネルをコンパイルする ======
  
 +ubuntuのカーネルの設定を変えたくてコンパイルしたのでメモ。
 +
 +  * 参考: How to compile a Ubuntu Lucid kernel | My Thoughts : http://​blog.avirtualhome.com/​2010/​05/​05/​how-to-compile-a-ubuntu-lucid-kernel/​
 +
 +  $ sudo apt-get install linux-image-2.6.32-26-generic
 +
 +ビルド環境一式は入れてあったので書かないけど、たぶんbuild-depオプションで入るんじゃないかな?​こういう感じ。
 +
 +  $ sudo apt-get build-dep linux-image-2.6.32-26-generic
 +
 +戻ってメモ。changelogを書く
 +
 +  $ dch -i
 +
 +flavourのファイルをコピー。便宜上新しいカーネルをnewkernelとしています。適当に置き換えてください。
 +
 +  $ cp debian.master/​config/​i386/​config.flavour.generic debian.master/​config/​i386/​config.flavour.newkernel
 +
 +ユーティリティのスクリプトに実行属性がついてないのでつけて
 +
 +  $ find debian/​scripts/​ -type f -exec chmod 755 {} \;
 +
 +configをアップデートします。
 +
 +  $ ./​debian/​rules updateconfigs
 +
 +カーネルの設定をします。
 +
 +  $ ./​debian/​rules editconfigs
 +
 +どのカーネルのflavourを設定するか一つづつ尋ねられますが、自分が作った設定以外はNoでスキップして自分の設定だけYと答えます。
 +
 +  * Run menuconfig on i386/​config.flavour.newkernel... Press a key.
 +
 +make menuconfigの画面になるので適宜設定して保存します。
 +
 +ネタ元のところにはバックアップするならと書いてるので、とりあえず作った設定をコピっとく。
 +
 +  $ cp debian.master/​config/​i386/​config.flavour.newkernel ../.
 +
 +===== コンパイル前の設定を作る =====
 +
 +コンパイルのための設定をコピーして作る。
 +
 +  $ cp debian.master/​abi/​2.6.35/​i386/​generic debian.master/​abi/​2.6.35/​i386/​newkernel
 +  $ cp debian.master/​abi/​2.6.35/​i386/​generic.modules debian.master/​abi/​2.6.35/​i386/​newkernel.modules
 +
 +debian.master/​etc/​getabisファイルを編集する。
 +
 +  $ vi debian.master/​etc/​getabis
 +
 +作った設定ファイル名を追加。
 +
 +  getall i386 generic generic-pae 386
 +  ↓
 +  getall i386 generic generic-pae 386 newkernel
 +
 +同じくdebian.master/​rules.d/​i386.mkファイルも編集。
 +
 +  $ debian.master/​rules.d/​i386.mk
 +
 +  flavours ​       = generic generic-pae 386
 +  ↓
 +  flavours ​       = generic generic-pae 386 newkernel
 +
 +設定ファイルをコピー。コピーしたファイルを適当に編集。
 +
 +  $ cp debian.master/​control.d/​vars.generic debian.master/​control.d/​vars.newkernel
 +
 +===== コンパイル =====
 +
 +make-kpkgだとCONCURRENCY_LEVEL=が、ubuntuのカーネルソースパッケージだと、DEB_BUILD_OPTIONS=parallel=にCPU数を入れると並列コンパイルできるみたいです。 デュアルコアなのでとりあえず3にしておきました。
 +
 +  $ fakeroot debian/​rules clean
 +  $ DEB_BUILD_OPTIONS=parallel=2 skipabi=true skipmodule=true fakeroot debian/​rules binary-newkernel
 +
 +{{tag>​ubuntu linux}}
  • linux/compiling-ubuntu-kernel.txt
  • 最終更新: 2012/02/10 22:41
  • by nogajun