编译内核以及模块,并安装它们

首先,请注意:如果您正在重新编译的内核同系统中现存的某个具有一样的版本号,则请先删除原先的模块。例如,如果您要重新编译 2.6.8,您必须删除 /lib/modules/2.6.8 目录。

下述命令将编译内核以及模块,并安装模块:

make clean
make all
make modules_install install

词汇解释:上述诸如 cleanall 等被称为目标。请注意,自从 2.6 开始出现一个称为 all 的目标。执行该目标相当于执行(在 x86 架构上) bzImagemodules 目标。这一新选项将为任意给定的架构生成期望的目标。而在 2.6 之前,各个架构都有其各自不同的编译内核选项。如果您如上所示指定 make 多个目标,则它们将按照出现的次序被执行。万一某个目标失败,make 将不会继续下一个[35]

接下来,我们将讨论各种目标的作用:

[Warning]警告

请严格按照 modules_install install 的目标顺序以确保首先安装模块。否则 initrd 会出错而导致内核无法正确引导。

好,现在一切都已编译并正确安装,可以准备测试了!您只须重新启动您的机器并在启动菜单中选择新的内核。请注意,老内核依旧保留以便当您在新内核上碰到问题时依然可以使用。然而,您可以手动安装内核并更改启动菜单。我们将在下一节中讨论该方法。



[35] 在这种情况下,如果编译失败,这意味着内核中存在错误(bug)... 如果确实如此,敬请报告!