PC Ubuntu下编译 Linux2.6 内核总结

Linux大全评论782 views阅读模式

在X86, Ubuntu 上编译Linux2.6内核,总结如下:

基础知识

在介绍如何编译内核之前, 需要对内核相关概念有一定的了解. 关于Linux kernel的介绍浩如烟海, 这里只介绍系统中相关的目录, 文件及命令.

/boot

/boot/vmlinuz- : 用于启动的压缩内核镜像, 它也就是/arch//boot中的压缩镜像.

/boot/system.map- : 存储内核符号地址.

/boot/initrd.img- : 初始化RAM硬盘时, 用来存储挂载根文件系统所需的模块.

/boot/grub/menu.lst : grub的配置文件. (不同的发行版中它可能位于不同位置.

/lib/modules

该目录包含了内核模块及其他文件. 注意, modules中一般会有多个目录: 系统自带的内核模块在这里, 你编译自己的内核模块后, 它们也会被安装到这里. 不同的目录由内核版本号来区分. 即modules里目录的名称是内核版本号. (使用$ uname -r 可知当前系统内核所用的模块位于哪个目录).

/lib/modules//build

储存为该版本的内核编译新模块所需的文件. 包括Makefile, .config, module.symVers(模块符号信息), 内核头文件(位于include/, include/asm/中)

/lib/modules//kernel

储存内核目标文件(以.ko为后缀). 它的目录组织和内核源代码中kernel的目录组织相同.

/lib/modules//中:

modules.alias : 模块别名定义. 模块加载工具使用它来加载相应的模块.

modules.dep : 定义了模块间的依赖关系.

modules.symbols : 指定符号属于哪个模块.

这些文件都是文本文件, 可以查看它们.

$ uname -r

uname(1)被用来查看系统信息, 这里对我们有用的是它的"-r"选项, 它显示内核版本信息.

下载内核, 验证签名, 解压缩

http://www.kernel.org/pub/linux/kernel/

下载最新版本的2.6内核. 速度还比较快. 这里以linux-2.6.17.13为例:

1, 下载内核压缩包

bzip2格式比gzip压缩效率更高, 一般就下载bz2的压缩包. 下载了内核压缩包之后, 还可下载对应的sign文件. 它被用来验证内核压缩文档的openPGP签名. 详细信息可参考

这里

.

企鹅博客
  • 本文由 发表于 2019年9月20日 14:56:39
  • 转载请务必保留本文链接:https://www.qieseo.com/147074.html

发表评论