曾经被问及为何在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

备注:

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

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

  1. Debian中编译内核

    转载: http://blog.163.com/libo_5/blog/static/156968520101016102051580/ http://hi.baidu.com/wg_wang/ite ...

  2. Windows中编译wireshark3.0以上版本指南

    Windows中编译wireshark3.0以上版本指南 一.摘要 在网上已有的wireshark编译的网页文档中,只有编译wireshark1.0和wireshark2.0相关版本的内容,对于已经发 ...

  3. sharepoint 2010 安装补丁升级sharepoint 2010版本遇到“未在系统中找到期望的产品版本”

    在安装sharepoint 2010补丁的时候,提示 "未在系统中找到期望的产品版本" (The expected version of the product was not f ...

  4. linux 编译3g驱动_linux重新编译内核

    1.内容简介 linux内核简介 linux内核版本号 linux为什么重新编译内核 linux内核编译模式 linux内核功能划分 linux内核编译步骤 2linux内核简介 内核,是一个操作系统 ...

  5. 最新历史版本 :LINUX KERNEL 配置编译中文指南

    LINUX KERNEL 配置编译中文指南 序言 近几年,linux大行其道,令不满windows蓝屏的使用者跃跃欲试,结果发现linux安装不及windows方便,界面不及windows友好,配置不 ...

  6. 非常好的Linux编译内核详解 - -

    转载: http://blog.chinaunix.net/uid-263488-id-2138150.html 非常好的Linux编译内核详解 - - 一.内核简介  内核,是一个操作系统的核心.它 ...

  7. VMware linux 在2.4.20-8 中编译2.6.15.5 内核

    软件准备: gcc-3.2.2-5.i386.rpm  :用来编译 ncurses-5.6.tar.gz:用来配合make menuconfig 命令配置内核 bison-2.4.tar.gz :语法 ...

  8. Ubuntu/Fedora 编译内核教程

    大部分发行版安装就自带1个linux内核, 是不需要用户自己编译的. 那么编译1个内核到底有什么好处呢, 其实好处无非有两点:          1. 精简内核          通用发行版的内核特点 ...

  9. 如何在CentOS 7中安装内核头文件

    在本文中,我们将解释如何使用默认包管理器从基本存储库中安装CentOS / RHEL 7和Fedora发行版中的内核头文件. 当您在CentOS系统上编译自定义内核模块(如设备驱动程序)时,您需要在系 ...

最新文章

  1. DOT:视觉SLAM的动态目标物跟踪
  2. SubSonic中RecordBaseT.Load(IDataReader dataReader)与LoadAndCloseReader(IDataReader dataReader)的使用区别...
  3. jquery easyui 多选下拉框的实现
  4. shell记录报警系统执行的危险命令
  5. Gif表情包在线制作小程序
  6. 图像采集——OV5640摄像头简介、硬件电路及上电控制的Verilog代码实现并进行modelsim仿真
  7. 2022数学建模美赛A题详细思路获取
  8. SSL双向认证和单向认证原理
  9. iview 组件 设置头像更换
  10. 人工智能实战2019第八次作业 16721088 焦宇恒
  11. 我叫张强,somnus
  12. java垃圾收集哪些叙述_关于垃圾收集的哪些叙述是对的() - 问答库
  13. oracle 对象类型是什么意思,Oracle对象类型 (转)
  14. android设备类型,android根据屏幕尺寸区分设备类型,phone或者pad - yuanyuan
  15. 使用dom4j生成KML文件
  16. 通过json文件渲染到页面
  17. MySQL的存储引擎及常用数据类型介绍
  18. 微信小程序中全局变量userInfo在其它页面不可用(wx.getUserInfo为异步获取信息)
  19. php拼多多登录下单接口,对接拼多多授权登录及店铺信息接口_tp5
  20. vivado:生成比特流报错-约束Bank电平冲突

热门文章

  1. 用AI还原李焕英老照片动态影像
  2. 使用谷歌 Colab Notebooks,这 6 个小技巧你需要掌握
  3. 为什么我抛弃了 Ubuntu?
  4. 推荐一款神器:在浏览器中运行 vscode,随时随地写代码
  5. Python面试必备—分布式爬虫scrapy+redis解析
  6. Zookeeper源码分析:集群模式启动概述
  7. Vue单文件组件的使用
  8. 文档自动摘要及案例实现
  9. k近邻算法之 k值的选择
  10. HTML页面展示遇到问题