|
ソース入手先:updates
のミラー
# rpm -ivh kernel-<version>.src.rpm # cd /usr/src/redhat/SPECS # rpmbuild -bp --target=<arch> kernel-2.6.spec
参考 rpmbuildのオプションについて
-bp
|
オプションはspec ファイルから "%prep" 段階を実行してソースを展開、パッチを適用する。
|
-ba
|
%prep, %build, %install を実行した後にバイナリパッケージとソースパッケージをビルドする。
|
| -bb |
%prep, %build, %install
を実行した後にバイナリパッケージをビルドする。 |
| -bc |
%prep を実行した後にspec ファイルから
"%build" 段階を実行する。
一般的には "make" と同じである。 |
| -bi |
- %prep, %build を実行した後に spec ファイルから "%install" 段階を実行する。
- "make install" と同じである。
|
| -bl |
"list check" を実行する。
spec ファイルの "%files" セクションのマクロが展開され、
各ファイルが存在す るかの検証をするためのチェックが行われる。 |
| -bs |
ソースパッケージだけをビルドする。 |
- ※カーネルソースは、/usr/src/redhat/BUILD/kernel-<version>/linux
-
<version>のように/usr/src/redhat/BUILD以下に展開されます。
- もしカーネルのrpmを作成したい場合は rpmbuild コマンドに -ba
または -bb のオプションを使用するとできます。ただしソースの変更が必要な場合は patch
ファイルの作成とその適応をspecファイルに記述
する必要があります。
# cd /usr/src
# cp -R -p
/usr/src/redhat/BUILD/kernel-<version>/linux-<version>
/usr/src
# ln -s
/linux-<version>
/usr/src/linux
ここまででソースインストールは完了です。この後
configファイルに設定を行い作業を進めるとカーネルの
再構築という事になります。
# cd /usr/src/linux
# make mrproper
# ls configs/
kernel-2.6.14-i586.config
kernel-2.6.14-i686-xenU.config
kernel-2.6.14-i686-smp.config kernel-2.6.14-i686.config
kernel-2.6.14-i686-xen0.config
# cp configs/kernel-2.6.14-i686.config .config
FedoraCore 4の場合、上のような設定ファイルが用意されています。
例えば、私のCPUは Pentium
M なのでkernel-2.6.14-i686.configを選択します。カーネルを再構築しないのであれば、この後に
(※# make gconfig configファイルに設定コマンド)
# make bzImage && make modules
これで終わりにしておけば sprm のリビルド時にカーネルソースが必要になっても問題ないはずです。
もし再構築するのであれば※ make bzImage && make modules の前に make
gconfig を実行して条件を入力した後にmake bzImage && make
modules を実行してその後に
# make modules_install
# installkernel (kernel-<version>
+ EXTRAVERSION =で指定した名前) arch/i386/boot/bzImage
System.map
これで再構築したカーネルがインストールされます。またこの方法でインストールすると/usr/src/linux/Makefile
の EXTRAVERSION
= で指定した名前で /boot/grub/menu.lst に反映されます。
参考ページ
http://mcn.oops.jp/linux/topic1.5/kernel_rebuild.htm
http://www.stackasterisk.jp/tech/systemConstruction/fedoracore302_02.jsp
http://park15.wakwak.com/~unixlife/linux/kernel.html
http://www.sip.eee.yamaguchi-u.ac.jp/kou/diff-patch.html
|