文档介绍:Linux内核编译
有时,我们需要在linux环境下编译某个软件,但是发现linux现在的内核不支持某些模块,为了使linux支持这些模块,我们需要对linux的内核进行编译。
注意:此文档涉及内核编译部分均为redhat linux ,其他系统,需要视具体情况而定。
首先,我们使用root帐号登陆linux系统,并将目录切换至/usr/src/linux--8/
在这个目录下,可以看到linux内核的版本号。
首先,我们运行 make mrproper,删除不必要的文件和目录。
运行mrproper命令
Linux提供了四种配置内核界面:
make config 这是基于传统的文本配置界面,不推荐使用,我们在这里不做讨论。
运行make config
make menuconfig 基于文本选单的配置界面,字符终端下推荐使用,这也是我们今天讨论的重点。
make menuconfig编译内核界面
make xconfig 基于图形窗口模式的配置界面,Xwindow下推荐使用。图形基面不在我们的讨论范围,因此,此界面的内核编译跳过。
make oldconfig 如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦。
运行make oldconfig出现的界面
今天,我们着重讨论使用menuconfig对内核进行编译的情况。
以root权限登陆系统,将目录切换至/usr/src/linux--8/,依次执行make mrproper,make menuconfig,得到内核配置选择界面,如下图:
选择配置时需要注意三种符号:
Y--将该功能编译进内核
N--不将该功能编译进内核
M--将该功能编译成可以在需要时动态插入到内核中的模块
选择配置的详细菜单及功能如下:
maturity level options
代码成熟等级。此处只有一项:prompt for development and/or plete code/ drivers,如果你要试验现在仍处于实验阶段的功能,比如khttpd、IPv6等,就必须把该项选择为Y了;否则可以把它选择为N。
2. Loadable module support
对模块的支持。这里面有三项:
Enable loadable module support:除非你准备把所有需要的内容都编译到内核里面,否则该项应该是必选的。
Set version inFORMation on all module symbols:可以不选它。
Kernel module loader:让内核在启动时有自己装入必需模块的能力,建议选上。
3. Processor type and features
CPU类型。内容蛮多的,不一一介绍了,有关的几个如下:
Processor family:根据你自己的情况选择CPU类型。
High Memory Support:大容量内存的支持。可以支持到4G、64G,一般可以不选。
Math emulation:协处理器仿真。协处理器是在386时代的宠儿,现在早已不用了。
MTTR support:MTTR支持。可不选。
Symmetric m