红联Linux门户
Linux帮助

Fedora Core 5 中内核的变动及重要信息

发布时间:2006-10-22 12:04:08来源:红联作者:Gunnrose
8.1. 版本

本发行版基于 2.6 系列的内核。Fedora Core 可能包含了附加的补丁,来改进,修正或添加附加特性。因此,Fedora Core 内核与被称为纯正(vanilla kernel)的内核不是完全相同的。

http://www.kernel.org/

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

rpm -qpl kernel-.src.rpm8.2. 更新日志

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

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

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


8.3. 内核配置

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

本机的内核,包括单处理器和 SMP (Symmetric Multi Processor,对称多处理器) 版本。已配置的源代码包含在 kernel-[smp-]devel-..rpm 软件包中。

Virtual kernel hypervisor for use with the Xen emulator package. Configured sources are available in the kernel-xen0-devel-..rpm package.

Virtual kernel guest for use with the Xen emulator package. Configured sources are available in the kernel-xenU-devel-..rpm package.

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

You may install sources for all kernel flavors at the same time. The files are installed in the /usr/src/kernels/-[xen0|xenU|kdump]-/ tree. Use the following command:

su -c ‘yum install kernel-{xen0,xenU,kdump}-devel’选择一个或多个变种,以逗号分隔,不要有空格。在提示时输入 root 密码。


x86_64 默认内核提供了 SMP 配置

Fedora Core 5 没有为 x86_64 体系单独提供 SMP 内核


PowerPC 内核支持

Fedora Core 5 没有为 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/kernel- /usr/src/linux’提示时输入 root 的密码。


8.6. 为内核开发作准备

Fedora Core 5 与旧版本不同,不包含 kernel-source 软件包。已配置的源代码可以按照内核配置一节的步骤得到。


这些步骤指的是当前运行中的内核

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



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


不要以超级用户身份构建软件包

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

~/rpmbuild/BUILD/kernel-/linux-。

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

su -c ‘yum install fedora-rpmdevtools’fedora-buildrpmtree提示时输入 root 的密码。

从下列来源之一获取 kernel-version.src.rpm 文件:

SRPMS 文件,包含在合适的 SRPMS CD iso 镜像文件中。


下载内核软件包的 HTTP 或 FTP 站点

执行这个命令:

su -c ‘yum install yum-utils’su -c ‘yumdownloader --source kernel’提示时输入 root 的密码。

安装 kernel-.src.rpm,运行命令:

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


硬盘空间需求

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

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

cd ~/rpmbuild/SPECSrpmbuild -bp --target $(uname -m) kernel-2.6.spec内核源码树位于 ${HOME}/rpmbuild/BUILD/kernel-/ 目录。


Fedora Core 附带的内核配置文件在 configs/ 目录。例如,i686 SMP 配置文件被命名为 configs/kernel-version-i686-smp.config。使用下列命令来将需要的配置文件复制到合适的位置,用来编译:


cp configs/ .config您也可以在 /lib/modules/version/build/.config 这个位置找到与您当前的内核匹配的 .config 文件。


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


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


EXTRAVERSION = -prep修改为:


EXTRAVERSION = -1.1948_FC5也就是最后一个连字符后面的所有内容。


执行这个命令:


make oldconfig接下来就没什么差别了。


8.7. 只构建内核模块

为运行中的内核构建内核模块,例如您自己的设备驱动,不需要完整的源码树。例如,要构建 foo.ko 模块,在包含 foo.c 文件的目录中创建下面的 Makefile :

obj-m := foo.oKDIR := /lib/modules/$(shell uname -r)/buildPWD := $(shell pwd)default: $(MAKE) -C $(KDIR) M=$(PWD) modules 执行 make 命令来编译 foo.ko 模块就可以了。


8.8. 用户空间对内核的依赖

Fedora Core 5 添加了对集群存储的支持,通过 Red Hat GFS 文件系统。这需要将特殊的内核与一些用户空间的使用工具联合使用,包括管理守护进程等。在更新升级之后,要删除这样的内核,应当使用 su -c ‘yum remove kernel-’这样的命令。yum 命令将在需要时自动移除依赖的软件包。


PowerPC 不支持 GFS

Fedora Core 没有为 PowerPC 体系构建 GFS 模块。
文章评论

共有 0 条评论