HACK#2 如何编译Linux内核

本节介绍编译Linux内核的方法。

当发现bug而修改源代码或者添加新功能时,就需要对内核进行重新编译,生成二进制映像文件。另外,如果想要使用发布版内核中无效的功能或者驱动程序时,或者相反地,想要删除不需要的功能从而使内核更精简、更快时,或者想使用最新版的上游内核时,也需要对内核进行编译。

下面主要介绍对上游内核进行设置、编译以及安装的方法。当使用发布版内核的源码包管理系统来管理内核映像文件时,需要将内核映像文件打包。接下来以两个具有代表性的发布版Fedora和Ubuntu为例来讲解具体的方法。最后将简单地介绍在源码树外对驱动程序等进行编译的方法,以及在不同平台的编译环境编译内核的方法,即所谓的交叉编译。

内核编译的过程

对内核进行编译的步骤如下:

1.获取源代码,如有需要则进行修改。

2.设置。

3.编译。

4.根据发布版生成相应的源码包。

5.安装内核映像和模块。

使用上游内核安装内核映像时,若不使用发布版的源码包管理系统,则不需要进行步骤4。想要使用源码包管理系统来安装时,可以使用各发布版的源码包创建系统。在这种情况下步骤3和步骤4的操作是合并进行的。

下面首先讲解不使用源码包管理系统来生成、安装内核映像文件的情形。然后介绍将内核映像文件打包和安装的方法。