Fedora16kernel source【Fedora15】

linuxのソースコードのコンパイル。
linuxを利用するところまでは行きません。
linuxはFedora15上でFedora16をコンパイルする形になります。

使うコマンド


単純に好みと興味で、ディレクトリ移動に

%pushd/popd


を使ってみた。移動したディレクトリをスタックに積むコマンドである。
ということを確認するために一度調べて、たった今

%pushd


と言った感じで、引数なしで実行すると履歴が表示されることを知った。cdを引数なしで実行すると、ホームディレクトリに行くことも最近知ったのでもういろいろと切ない。
検索には

%grep -R "検索目標" .(カレントディレクトリ)


を使用した。-Rオプションでディレクトリを再帰的に検索する。"検索目標"は、ファイル内部のテキストまで拾ってくる。

準備


%su -c 'yum install rpmdevtools yum-utils'


rpmdevtoolsは面倒なrpmをビルドする環境づくりの手助けをしてくれる。
yum-utilsはリポジトリ利用のためのコマンド。

rpmのビルド環境を構築する。ホームディレクトリで行うのがいいらしい。

%rpmdev-setuptree


実行後は

/rpmbuild% ls
BUILD BUILDROOT RPMS SOURCES SPECS SRPMS


というディレクトリ群ができる。
次はカーネルソースのダウンロード。

%yumdownloader --source kernel


ほいほいと取れる。
次はソースの依存関係を構築する。

%su -c 'yum-builddep kernel-.src.rpm'


最後に

%rpm -Uvh kernel-.src.rpm


おなじみrpm。そんなに馴染んでないか。

警告: ユーザー mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します


みたいなメッセージが大量に出てくるけどスルーで大丈夫。

%pushd ~/home/rpmbuild/SPECS


とSPECSへ。

%rpmbuild -bp --target=$(uname -m) kernel.spec


ビルドする。

%pushd /rpmbuild/BUILD/kernel-3.1.fc15/linux-3.1.x86_64


ディレクトリ移動。pushdの便利さには気付けない。いつになるかわからないけど使い続けてみる。

%cp configs/kernel-3.1.0-x86_64-debug.config .config


これで準備は終了。

ソースさえ見れればよかったのでここまでする必要はなかった。けどせっかくここまで来たのでとりあえず

make


%make oldconfig

%make menuconfig


おお、GUIっぽくなった……。

ここまで。
完全にコンパイルするわけではなかった。

コメント

このブログの人気の投稿

相互インクルード対策

make error "Circular"

gdb操作