linux as 4 内核版本,Linux Redhat AS 4中编译内核与以往版本的区别(转载)

这篇博客介绍了在Redhat AS4中如何找到并编译内核源代码的详细过程。由于AS4不再包含kernel-source软件包,用户需要从kernel.src.rpm文件中获取源码,然后通过rpm命令解压并使用rpmbuild进行编译。编译完成后,源代码会被安装在特定目录下,用户可以进行内核的定制和编译。
摘要由CSDN通过智能技术生成

曾经被问及为何在Redhat AS4中找不到内核源代码目录,开始时回答对方在安装时漏选了源码包,对方回答我已经重装过四遍,一个包一个包找过来眼都对起来了也没找到。真见鬼,我在电话里说要不你先到/usr/src目录下找找看,试着做做。

后来他发了一个邮件给我,包含如下错误:

# make mrproper

scripts/Makefile.clean:10: Documentation/DocBook/Makefile: No such file or directory

make[1]: *** No rule to make target `Documentation/DocBook/Makefile'.  Stop.

make: *** [_mrproper_Documentation/DocBook] Error 2

于是研究了一下AS4,才发现自己很落伍,传统的编译步骤有所变化。

在Linux AS 4的发行注记中找到解释:

当内核源码已经存在在内核的 .src.rpm 文件中时,为内核源码提供一个独立的软件包就变得没有必要。因此,红帽企业 Linux 4 不再包括 kernel-source 软件包。需要这些内核源码的用户可以在 kernel .src.rpm 文件中找到。通过这个文件建立一个快速扩展的资源树…

这就是说当红帽企业认为为内核源码提供一个独立的软件包不再重要时,作为用户的我们如果想定制、升级、重编内核就得折腾一下了。/usr/src/kernels 目录不是源代码目录,rpm源代码包也不在AS 4的七张安装光盘中(至少我没能找到)。

1. 获得 kernel.src.rpm 包

通过uname命令确定自己需要的rpm的源代码包为

kernel-2.6.9-22.EL.src.rpm

没有许可证,所以无法直接用up2date下载。网上找了半天,下载地址为:

(Redhat相关下载的东西一向比较杂乱,如果当你看到此文时无法通过以上地址下载,请您继续折腾着寻找)

2. 生成kernel源代码安装包

# rpm -ivh  kernel-2.6.9-22.EL.src.rpm

源码被解压至 /usr/src/redhat/SOURCES 目录,并且在 /usr/src/redhat/SPECS 目录中建立 kernel-2.6.spec 文件。

# cd /usr/src/redhat/SPECS/

# vi kernel-2.6.spec

%define buildup 1

%define buildsmp 1

%define buildsource1%define buildhugemem 1

将buildsource的值从0改为1

# rpmbuild -ba --target=x86_64 ./kernel-2.6.spec

如果遇到类似以下的错误:

make[1]: *** [nonint_oldconfig] Error 7

make: *** [nonint_oldconfig] Error 2

error: Bad exit status from /var/tmp/rpm-tmp.10626 (%build)

一定要仔细核对rpmbuild命令中的target参数,你所要被安装的机器的体系究竟是i686,i386,还是64位的。不妨用uname命令查对一下。

3.最终目录结构

成功安装后,数据分布如下:

·所有的kernel配置文件生成在 /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9/configs 目录下

kernel-2.6.9-x86_64.config

kernel-2.6.9-x86_64-smp.config

·内核树生成在 /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9 目录下

·内核RPM安装包生成在 /usr/src/redhat/RPMS/{机器体系} 目录下

kernel-2.6.9-22.EL.x86_64.rpm

kernel-debuginfo-2.6.9-22.EL.x86_64.rpm

kernel-devel-2.6.9-22.EL.x86_64.rpm

kernel-smp-2.6.9-22.EL.x86_64.rpm

kernel-smp-devel-2.6.9-22.EL.x86_64.rpm

kernel-sourcecode-2.6.9-22.EL.x86_64.rpm

·内核 kernel.src.rpm 包在 /usr/src/redhat/SRPMS 目录下

kernel-2.6.9-22.EL.src.rpm

4. 安装内核源码包,生成源代码目录

# cd /usr/src/redhat/RPMS/{机器体系}

# rpm -ivh kernel-sourcecode-2.6.9-22.EL.x86_64.rpm

查看/usr/src目录下是否已生成 linux-2.6.9-22.EL 目录了。

接下来可以按照传统方法定制编译内核了!具体方法请参考本站其它相关文章:

附:简单编译过程如下:

# cd /usr/src/linux-2.6.9-22.EL/configs

# cp kernel-2.6.9-x86_64-smp.config    ../.config

# make oldconfig

# vi Makefile

# make menuconfig

# make all

# make modules_install

# make install

# vi /boot/grub/menu.lst

# reboot

备注:

本站文章若非注明,均属原创。转载请保持文章完整性, 不足之处欢迎来信交流指教. 作者邮箱: 网站:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值