请先进入 /usr/src/linux 目录,并升级为 root。
首先,教您一个小窍门:您能(如果您想的话)自定义您内核的版本号。内核版本号由 Makefile 的第一行决定:
$ head -4 Makefile VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 8 EXTRAVERSION = -1mdkcustom |
KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) |
您要做的就是更改这些域之一以定义您自己的版本号。最好您只改变 EXTRAVERSION。例如您将其改为 -foo。您的新内核版本就会是 2.6.8-foo。当您重新编译新内核的时候,请尽量更改这个域。这样,您就能在保留先前版本的情况下测试新的选项。
make oldconfig 来使用您原本的配置,其界面同上一条一样。参见“保存,重用您的内核配置文件”一节。
您可以浏览配置中的各个小节,不过当您使用 menuconfig、xconfig 或 gconfig 时,您可以直接跳到您感兴趣的部分。各条目的选项为:y 表示 (相应功能将直接编译进内核),m 表示 (相应功能将编译为一个模块),以及 n 表示 (相应功能不会包含进内核)。
命令 make xconfig、make gconfig 和 make menuconfig 按照层次结构组织各个选项。比如,Processor family 就在 Processor type and features 之下。
在 xconfig 和 gconfig 中, 按钮用以返回层次结构中的主菜单, 用进入下一组选项, 将返回上一组选项。而在 menuconfig 中,可用回车键选定某个小节并在选项状态 y、m 或 n 之间切换,或者按回车键并作出多重选择。要跳出某小节,请按 ;如果您已经在主菜单中,它将退出配置。同时,还有 按钮。
鉴于选项数量众多,我们并不打算在此一一列举。而且,如果您已经看到这里了,那您就应该了解自己想干什么。因此,您可以按照自己的意愿浏览内核配置,并选定/取消任何合适的选项。不过,以下建议将避免您最终得出一个不能工作的内核:
除非您使用初始化 ramdisk (initrd),否则绝不要把挂载根文件系统必需的驱动程序(硬件驱动以及文件系统驱动)编译成模块!而如果您确实使用初始化 ramdisk,请为 ext2FS 支持选项选择 Y,因为 ramdisk 使用该文件系统。您还需要 initrd 支持。
如果您系统中有网卡,将它们的驱动编译成模块。这样,您就能够在 /etc/modules.conf 中用别名定义哪一块网卡第一,哪一块第二,等等。如果您将驱动程序编译进了内核,它们加载的顺序将取决于当初它们链接进内核的顺序,而这不一定是您想要的。
最后,如果您不清楚某个选项的含义,请阅读其帮助!而如果该帮助信息依然不能解决您的困惑,请保留该选项原来的样子。(在 config 和 oldconfig 中可以按 ? 键访问帮助。)