如果只是编译驱动程序,只要安装kernel-devel包就可以。
为了安装rpm源码,需要安装 rpm-build,redhat-rpm-config和unifdef:
[root@host]# rpm install rpm-build redhat-rpm-config unifdef
因不建议以root身份编译内核,以普通用户身份创建目录树 ~/rpmbuild:
[user@host]$ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
[user@host]$ echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros
从CentOS镜像站点下载 kernel 源码包:
[user@host]$ wget http://mirror.neu.edu.cn/centos/5.5/os/SRPMS/kernel-2.6.18-194.el5.src.rpm
[user@host]$ rpm -i kernel-2.6.18-194.el5.src.rpm 2>&1 | grep -v mockb
版本号 2.6.28-194 需根据实际情况替换。由于 ~/.rpmmacros配置了rpm源码安装环境,kernel源码会被安装到 ~/rpmbuild 目录下。
产生编译用的源码目录树:
[user@host]$ cd ~/rpmbuild/SPECS
[user@host SPECS]$ rpmbuild -bp --target=`uname -m` kernel-2.6.spec 2> prep-err.log | tee prep-out.log
在 ~/rpmbuild/BUILD 目录会发现生成的源码目录树。
安装编译环境:
[root@host]# yum groupinstall "Development Tools"
[root@host]# yum install ncurses-devel
配置内核:
[user@host]$ cd ~/rpmbuild/BUILD/kernel-2.6.18/linux-2.6.18.`uname -m`
[user@host]$ cp configs/kernel-2.6.18-`uname -m`[-type].config .config
[-type] 是可选的配置类型。
编译内核:
首先运行 make oldconfig,然后按照编译内核的步骤进行。为了自定义编译后的内核版本,可编辑Makefile里的 EXTRAVERSION 变量。
参考:
http://wiki.centos.org/HowTos/I_need_the_Kernel_Source
http://wiki.centos.org/HowTos/Custom_Kernel
没有评论:
发表评论