Unix爱好者家园最引人注目的广告位!
  欢迎 cheery960 加入本站!
 免费注册  用户登陆  汇款方式  汇款确认  产品报价  联系我们  帮助中心

加入收藏
设为首页
会员体系
申请VIP
网站首页 光盘超市 软件下载 技术文章 专题 用户中心 VIP会员 网站留言 论坛 站内搜索 卓越资源 源代码

今天是:2010年03月13日 星期六  您现在位于: 首页 → 技术文章 → Fedora Core 6...
   Fedora Core 6发行注记(9)-8.Linux 内核
作者:  出处:www.redhat.com  更新时间: 2007年03月25日 

8. Linux 内核

这一节覆盖了 Fedora Core 6 中 2.6.18 内核的变动及重要信息。2.6.18 内核包括:

8.1. 版本

Fedora Core 可能包含了附加的补丁,来改进,修正或添加附加特性。因此,Fedora Core 内核与被称为纯正(vanilla kernel)的,来自 kernel.org 网站的内核不是完全相同的。

http://www.kernel.org/

要获得这些补丁的列表,下载源 RPM 软件包,运行下列命令:

rpm -qpl kernel-<version>.src.rpm

8.2. 更新日志

软件包修订记录可以用下列命令看到:

rpm -q --changelog kernel-<version>

如果您希望看到更友好的修订日志,请访问 http://wiki.kernelnewbies.org/LinuxChangeshttp://kernel.org/git 提供了内核不同之处的摘要和完全两种版本。Fedora 基于 Linus 的内核树。

Fedora 版本做出的定制可以在 http://cvs.fedora.redhat.com 找到。

8.3. 内核配置

Fedora Core 6 包含了下列内核构建

  • 基本的内核,用于大多数系统,已配置的代码在 kernel-devel-version.arch.rpm 软件包中。

  • kernel-PAE,用于拥有超过 4GB RAM 的 32-bit x86 系统中,或者 CPU 带有 "NX (No eXecute)" 特性的系统中。它同时支持单/多处理器系统。

  • 虚拟机内核,用于 Xen 模拟器。已配置的源代码包含在 kernel-xen-devel-<version>.<arch>.rpm 软件包中。

  • Kdump 内核,与 kexec/kdump 搭配使用。已配置的源代码包含在 kernel-kdump-devel-<version>.<arch>.rpm 软件包中。

各种内核配置的源代码头文件可以同时安装。文件安装位置是 /usr/src/kernels/<version>-[xen|kdump]]-<arch>/。运行命令:

su -c 'yum install kernel-{PAE,xen,kdump}-devel'

选择一个或多个变种,以逗号分隔,不要有空格。在提示时输入

[注意] 默认内核提供了 SMP

Fedora Core 6 没有单独的 SMP 内核,无论是 i386, x86_64 还是 ppc64。基本内核提供了多处理器支持。

[注意] PowerPC 内核支持

Fedora Core 6 test3 没有为 PowerPC 体系提供 Xen 或 Kdump 支持。

8.4. 报告错误

请参考 http://kernel.org/pub/linux/docs/lkml/reporting-bugs.html 中,报告 Linux 内核错误时的注意事项。您也可以访问 http://bugzilla.redhat.com 来报告 Fedora 特有的错误。

8.5. 遵循关于内核的教科书

关于 Linux 内核开发,很多教材,范例和教科书都假设内核源代码安装在 /usr/src/linux 目录。如果您像下面一样创建一个符号链接,就可以在 Fedora Core 中继续使用那些学习材料了。按照上面提到的方式,安装合适的内核源代码,然后:

su -c 'ln -s /usr/src/kernels/<version>.<release>-<arch> /usr/src/linux'

提示时输入 root 的密码。

8.6. 为内核开发作准备

Fedora Core 6 与旧版本不同,不包含 kernel-source 软件包,因为要编译外部模块,只需要 kernel-devel 软件包。已配置的源代码可以按照内核配置一节的步骤得到。

[注意] 这些步骤指的是当前运行中的内核

为了简化下面的指令,假设您需要配置内核为使用当前运行中的内核的配置。在下面的步骤中,短语 <version> 指的是使用 uname -r 命令显示的内核版本。

需要使用内核源代码的 Fedora Core 用户可以在内核 .src.rpm 软件包中找到它们。要从文件释放源码树,执行下面的命令:

[注意] 不要以超级用户身份(root)构建软件包

以超级用户身份构建软件包是极其危险的,不应当这样做,这不是必需的,即使是内核。下面的操作使您可以以普通用户身份构建内核。很多教程以 /usr/src/linux 作为内核的源码位置,如果想遵循这些操作,可以替换为 ~/rpmbuild/BUILD/kernel-<version>/linux-<version>

  1. 在个人目录准备 RPM 软件包构建环境,运行下面的命令:

    su -c 'yum install rpmdevtools yum-utils' 
    rpmdev-setuptree
  2. 提示时输入 root 的密码。

  3. 安装 kernel-<version>.src.rpm 文件。启用合适的源代码仓库,如 Core, Updates 或 Testing,使用 -e 开关:

    yumdownloader -e core-source -e updates-source --source kernel
  4. 提示时输入 root 的密码。

  5. 安装 kernel-<version>.src.rpm,运行命令:

    rpm -Uvh kernel-<version>.src.rpm
  6. 这个命令将 RPM 内容写到 ${HOME}/rpmbuild/SOURCES${HOME}/rpmbuild/SPECS, 这里 ${HOME} 是您的个人目录。

    [注意] 硬盘空间需求

    完整的内核构建过程可能需要您的个人目录有几个吉的存储空间。

  7. 使用这样的命令来准备内核源代码:

    cd ~/rpmbuild/SPECS 
    rpmbuild -bp --target $(uname -m) kernel-2.6.spec
  8. 内核源代码位于 ${HOME}/rpmbuild/BUILD/kernel-<version>/linux-<version>.<arch> 目录。

    Fedora Core 6 附带的各种内核的配置文件位于 ~/rpmbuild/BUILD/kernel-<version>/linux-<version>.<arch>/configs 目录。例如,i686 配置文件名为 ~/rpmbuild/BUILD/kernel-<version>/linux-<version>.<arch>/configs/kernel-<version>-i686.config。运行下列命令,将所需的配置文件放到合适的位置以用来编译:

    cp configs/<desired-config-file> .config
  9. 每个内核的名字都包含了它的版本号,这也是 uname -r 命令显示的值。内核 Makefile 的前四行定义了内核的名字。为了保护官方的内核不被破坏,Makefile 经过了修改,以生成一个与运行中的内核不同的名字。在一个模块插入运行中的内核前,这个模块必须针对运行中的内核进行编译。为此,您必须编辑内核的 Makefile

    例如,如果 uname -r 返回字符串 2.6.15-1.1948_FC5,就将 EXTRAVERSION 定义从:

    EXTRAVERSION = -prep 

    修改为:

    EXTRAVERSION = -1.2345_FC6

    也就是最后一个连字符后面的所有内容。

  10. 执行这个命令:

    make oldconfig

    接下来就没什么差别了。

[注意] 构建内核的二进制 RPM

通常,Fedora 的内核是用 rpmbuild 和 spec 文件编译的。如果使用内核自带的 make rpm 方式,得到的结果是不一样的。

8.7. 只构建内核模块

编译内核模块,如设备驱动时,不需要当前运行的内核的完整源码树。为编译外部模块,只需要安装 kernel-devel 软件包。如果没有安装,就用 Pirut 安装它,执行 应用程序添加/删除软件 或者使用 yum。运行下面的命令来安装:

su -c 'yum install kernel-devel' 

例如,要构建 foo.ko 模块,在包含 foo.c 文件的目录中创建下面的 Makefile:

obj-m := foo.o 

KDIR  := /lib/modules/$(shell uname -r)/build
PWD   := $(shell pwd)

default:
    $(MAKE) -C $(KDIR) M=$(PWD) modules

执行 make 命令来编译 foo.ko 模块就可以了。

 (本文已被浏览 6040 次)
 发布人:sdccf
 → 推荐给我的好友
上篇文章:Fedora Core 6发行注记(8)-7.特...
下篇文章:Fedora Core 6发行注记(10)-9.Fe...
 相关文章:
Fedora 11的新特性和简易安装教程 Fedora 10初体验
Fedora 9新特性和安装截图 RedHat WS 4.6简单安装步骤
Fedora 7 安装与配置指南 Fedora 7安装Intel驱动需注意事项
Fedora 7文件系统的一些知识 Fedora 7一共有3种类型的Live镜像
光盘启动安装Fedora 7常见问题及解决 Fedora 7下安装EVA QQ
Fedora 7下配置多媒体 Fedora 7的字体美化
fedora 7下飞鸽传书最新原版的简单安装过程 硬盘安装Fedora 7的简单方法
Fedora 7下玩游戏 在fedora 7中安装星际译王与安装unrar
Fedora 7系统中成功安装beryl Fedora 7安装后基础配置小结
Fedora 7 DVD硬盘安装 在fedora7下安装texlive2007

相关搜索
查看百度中关于Fedora Core 6发行注记(9)-8.Linux 内核的更多内容
查看google中关于Fedora Core 6发行注记(9)-8.Linux 内核的更多内容
   文章分类
操作系统 |
SCO_UNIX  Sun_Solaris  IBM_AIX  HP_UX  Linux  BSD  Tru64_UNIX 
通用UNIX知识  Windows  Minix 
程序设计 |
Shell编程  C/C++  汇编  PHP  JAVA  Perl  Python 
ASP/HTML  XML  中间件 
数据库 |
Oracle  Informix  Sybase  Fox  DB2  SQL  MySQL 
PostgreSQL 
网络应用 |
网络应用 
计算机硬件 |
计算机主机  打印机  路由器  交换机  终端  磁带机  MO 
刻录机  终端服务器  调制解调器 
   文章评论
  → 评论内容 (点击查看)   共0条评论,每页显示5条评论   浏览所有评论
(没有相关评论)
  → 发表我的评论
您的姓名: 您的Email:
评论内容:
250字内
发表评论:      发表评论须知 →
  • 尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法;
  • 本站有权保留或删除您发表的任何评论内容;
  • 关于我们 ┋  网站留言 ┋  网站地图 ┋  友情链接 ┋  与我在线 ┋  汇款确认 ┋  管理 ┋  TOP
    Unix爱好者家园  http://www.unix-cd.com/
    联系我们:sdccf@163.com
    腾讯QQ: 7644599
    备案序号:鲁ICP备09036304号
    Copyright (c) 2001-2010 Unix-cd.com. All Rights Reserved.