Fedora のカーネルコンパイル
覚書。
基本的には
http://fedoraproject.org/wiki/Docs/CustomKernel
の要約&和訳なり
ソースの入手
なお、以下は一般ユーザでの実行が推奨されている。
1. 環境の構築
$ rpmdev-setuptree
これでホームにrpmbuildというディレクトリができる。
このrpmbuildがカーネルをコンパイルする作業場所になる。
2. カーネルソースのダウンロード
$ yumdownloader --source kernel
3. カーネルソースに関する依存関係の解決
なお、手元のFedora9では
4. カーネルソースのインストール
当然ながら kernel-
このコマンドにより rpmbuild内にソース関連のファイルが作られる。
なお, ユーザがいないからrootにしとくぜ 的な警告は無視してOKらしい。
カーネルソースツリーの生成
$ cd ~/rpmbuild/SPECS
$ rpmbuild -bp --target=`uname -m` kernel.spec
これでソースツリーが rpmbuild/BUILD/kernel-
オプションの設定
1. ディレクトリ rpmbuild/BUILD/kernel-
手元の環境だと linus-2.6.27.i586
ちなみに rpmbuild/BUILD/kernel-
2. .configファイルをコピー
$ cp configs/kernel-
- .config .config
$ make oldconfig
3. .configファイルの編集
コンソールなら
$ make menuconfig
Xなら
$ make xconfig
rpmの生成
1. .configの先頭に以下の一行を追加
# `uname -i の出力結果`
例)
# i386
2. .configファイルを rpmbuild/SOURCES にコピー
$ cp .config ~/rpmbuild/SOURCES/config-
3. ~/rpmbuild/SPECSに移動して、kernel.specを編集
以下の一行を追加
%define buildid .<好きな文字列>
要するにカーネルを区別するための名前
たとえば
%define buildid .custom_kernel_20090217
4. rpmのビルド
$ rpmbuild -bb --target=`uname -m` kernel.spec
あたりまえだけどすげー時間かかります。
カーネルのインストール
$ rpm -ivh ~/rpmbuild/RPMS/
/kernel- . .rpm
しかし、なぜか手元の環境では alredy installed となりインストールに失敗。
原因は調査中