CentOS 5.9 (6.xもいけるはず)kernel source full install (別解編)

Centos6.3 kernel build ..
http://d.hatena.ne.jp/toshi_hirasawa/20130306/1362549359

とは違うやり方でカーネルのフルソースのインストールをためしてみる


ここでは、centos5.9でやっているが、6.x(未確認)でもイケるはず
http://wiki.centos.org/HowTos/I_need_the_Kernel_Source

http://www.hakodate-ct.ac.jp/~tokai/tokai/research/kmod.html
を参考にさせていただきました。



# yum install rpmdevtools yum-utils 

を叩いた後に 一般ユーザとなり

$cd
rpmdev-setuptree

と叩くと次のようにtreeを自動作成とか面倒をみてくれるはず(ありがたやー)

[hirasawa@cent5-64b-40 ~]$ cd rpmbuild/
[hirasawa@cent5-64b-40 rpmbuild]$ ls -ltr
合計 40
drwxrwxr-x 2 hirasawa hirasawa 4096  6月 12 13:06 SRPMS
drwxrwxr-x 2 hirasawa hirasawa 4096  6月 12 13:06 RPMS
drwxrwxr-x 2 hirasawa hirasawa 4096  6月 12 17:28 SPECS
drwxrwxr-x 2 hirasawa hirasawa 4096  6月 12 17:28 SOURCES
drwxrwxr-x 3 hirasawa hirasawa 4096  6月 12 17:32 BUILD
[hirasawa@cent5-64b-40 rpmbuild]$ 

rootで作業する
5.9の場合は

# yum install rpm-build redhat-rpm-config unifdef

6.xの場合は

# yum install rpm-build redhat-rpm-config asciidoc hmaccalc perl-ExtUtils-Embed xmlto 
# yum install binutils-devel elfutils-libelf-devel newt-devel python-devel zlib-devel 

つづいて、一般ユーザとなって

$ rpm -i http://vault.centos.org/5.9/updates/SRPMS/kernel-2.6.18-348.6.1.el5.src.rpm 2>&1 | grep -v mock

$ cd ~/rpmbuild/SPECS
[SPECS]$ rpmbuild -bp --target=$(uname -m) kernel.spec

以上で、~/rpmbuild/BUILD/配下にソースが展開される。

あとは好みで長すぎるディレクトリ名をシンボリックリンクで短くするとか

実例としてはこんな感じ

[root@cent5-64b-40 kernel-2.6.18]# pwd
/home/hirasawa/rpmbuild/BUILD/kernel-2.6.18
[root@cent5-64b-40 kernel-2.6.18]# ls -ltr
合計 44
drwxr-xr-x 19 hirasawa hirasawa 4096 11月 30  2006 vanilla-2.6.18.4
drwxr-xr-x  2 hirasawa hirasawa 4096 12月  7  2007 config
drwxr-xr-x  8 hirasawa hirasawa 4096 12月  7  2007 xen
-rw-r--r--  1 hirasawa hirasawa 3161  6月 12 17:34 Config.mk
lrwxrwxrwx  1 hirasawa hirasawa   31  6月 12 17:54 linux -> linux-2.6.18-348.6.1.el5.x86_64
drwxr-xr-x 23 hirasawa hirasawa 4096  6月 12 18:42 linux-2.6.18-348.6.1.el5.x86_64
[root@cent5-64b-40 kernel-2.6.18]# cd linux
[root@cent5-64b-40 linux]# pwd
/home/hirasawa/rpmbuild/BUILD/kernel-2.6.18/linux
[root@cent5-64b-40 linux]# ls 
COPYING        Makefile        System.map  drivers  kernel   scripts   vmlinux
CREDITS        Module.markers  arch        fs       lib      security
Documentation  Module.symvers  block       include  mm       sound
Kbuild         README          configs     init     net      tools
MAINTAINERS    REPORTING-BUGS  crypto      ipc      samples  usr
[root@cent5-64b-40 linux]# 

エラーとかワーニングを抑えるためにもここで一度makeしちまうのが吉(だとおもう)