2011年8月5日金曜日

Fedora 15 で Linux 3.0

Fedora 15 の最新カーネル 2.6.40-4.fc15 は、実質は Linux 3.0 です。
rpm の changelog に次のようにあります。
# rpm -q --changelog kernel-2.6.40-4.fc15 | head -14
* Fri Jul 29 2011 Dave Jones  2.6.40-4
- Re-add utrace, which got accidentally dropped during the rebase.

* Thu Jul 28 2011 Dave Jones  2.6.40-3
- Fix module-init-tools conflict:

* Thu Jul 28 2011 Dave Jones  2.6.40-2
- fix crash in scsi_dispatch_cmd()

* Thu Jul 28 2011 Dave Jones  2.6.40-1
- Turn off debugging options. (make release)

* Tue Jul 26 2011 Dave Jones  2.6.40-0
- Rebase to final 3.0 (munge to 2.6.40-0)
おそらく、カーネルのバージョンにより処理内容を変えるアプリケーションへの配慮のためか、2.6.40 ということにしてあります。
以下、この 2.6.40-4.fc15 に含まれる config を使って、Linux 3.0 をビルドする手順です。バージョン表示だけのことではありますが、新鮮な気分を味わえます。

(1) Fedora 15 の動作環境を用意して、カーネル 2.6.40-4.fc15 までアップデートする。ただし、ビルドのためには、空き領域が 8GB 程度必要です。

(2) 開発用ツールをインストールする。
# yum groupinstall "Development Tools"

(3) http://www.kernel.org/ から linux-3.0.tar.bz2 を入手して展開する。
# cd /usr/src  ※これは例です。ほかの場所でも良い
# tar xf /tmp/linux-3.0.tar.bz2

(4) Makefile の EXTRAVERSION を設定する。
VERSION = 3
PATCHLEVEL = 0
SUBLEVEL = 0
EXTRAVERSION = -0.my15.x86_64  ※これは例です。自分の好みの文字列を指定すれば良い
...

(5) 2.6.40-4.fc15 の config をコピーする。
# cd /usr/src/linux-3.0
# cp /boot/config-2.6.40-4.fc15.x86_64 .config

(6) ビルドを実行する。もしも、2.6.38.8-35.fc15 等の少し古い config を用いた場合、新しく増えたオプションをどう設定するか問い合わせて来ます。2.6.40-4.fc15 であれば、オプション集合が一致しているので、何も聞かれることはなく、そのままコンパイルが進行します。
# make HOSTCXX="ccache g++" CC="ccache gcc"

(7) 出来上がったモジュールとカーネルをインストールする。
# make modules_install
# make install

(8) grub.conf の default を修正して再起動する。または、再起動時に GRUB メニューから作成した Linux 3.0 のエントリーを選択して起動する。

(9) uname -a で、カーネルバージョンを確認する!
# uname -a
Linux fedora15 3.0.0-0.my15.x86_64 #1 SMP Thu Aug 4 05:21:08 JST 2011 x86_64 x86_64 x86_64 GNU/Linux

2011-08-06追記
2.6.40-4.fc15 のアナウンス内容です。
http://lists.fedoraproject.org/pipermail/package-announce/2011-August/063271.html
Rebase to 3.0. Version reports as 2.6.40 for compatibility with older userspace.

だそうです。

2011-08-07追記
Linux のバージョン番号と歴史について、次の記事にまとめられています。
http://gihyo.jp/lifestyle/serial/01/ganshiki-soushi/0023

2011-08-09追記
手順 (6) で、make の並列化オプション --jobs=N (N は core 数 x 2 程度の自然数) を指定すると、ビルド時間を短縮できるようです。手元の 2core の環境で、--jobs=4 を指定したところ、確かにコンパイル時間が半分程度で済みました。

2011-08-14追記
ccache についての解説が下記にあります。
http://www.ibm.com/developerworks/jp/linux/library/l-ccache/

2011-09-09追記
Fedora 16 Alpha が出ており、そちらのカーネルは既に 3.0 になっているので、ビルドまではしたくない方は、そちらを試してみては。

0 件のコメント:

コメントを投稿

人気ブログランキングへ にほんブログ村 IT技術ブログへ