配置和编译Linux内核
配置和编译Linux 内核
对内核进行正确配置后,才能进行编译。配置不当的内核,很有可能编译出错,或者不
能正确运行。
1.1.1 快速配置内核
进入Linux 内核源码数顶层目录,输入make menuconfig 命令,可进入如图0.1 所示的
基于Ncurses 的Linux 内核配置主界面 (注意:主机须安装ncurses 相关库才能正确运行该
命令并出现配置界面)。如果没有在Makefile 中指定ARCH ,则须在命令行中指定:
$ make ARCH=arm menuconfig
图0.1 基于Ncurses 的Linux 内核配置主界面
基于Ncurses 的Linux 内核配置界面不支持鼠标操作,必须用键盘操作。基本操作方法:
通过键盘的方向键移动光标,选中的子菜单或者菜单项高亮;
按TAB 键实现光标在菜单区和功能区切换;
子菜单或者选项高亮,将光标移功能区选中 回车:
如果是子菜单,按回车进入子菜单;
如果是菜单选项,按空格可以改变选项的值:
对于bool 型选项,[*]表示选中,[ ]表示未选中;
对于tristate 型选项,表示静态编译,表示编译为模块,<>表示未
选中。
对于int、hex 和string 类型选项,按回车进入编辑菜单。
连按两次ESC 或者选中 回车,将退回到上一级菜单;
按斜线(/ )可启用搜索功能,填入关键字后可搜索全部菜单内容。
配置完毕,将光标移动到配置界面末尾,选中“Save an Alternate Configuration File”后
回车,保存当前内核配置,默认配置文件名为.config,如图0.2 所示。
图0.2 保存内核配置为.config 文件
保存完毕,选择退出内核配置界面,回到终端命令行。
当然,也可以将配置文件命名为其它文件名,如config-bak 等,但该配置不会被Makefile
文件使用,Makefile 默认使用文件名为.config 的配置文件,所以重新命名配置文件通常在保
留或者备份内核配置信息时使用。
也可以不用“Save an Alternate Configuration File”操作,连按ESC 或选择退出内
核配置界面,将会出现如图0.3 所示的保存配置提示信息,选择后回车,内核配置将
会被保存为.config 文件。
图0.3 保存内核配置提示信息
备份内核配置,在命令行下将.config 文件复制为其它文件名来得更简单快捷:
$ cp .config config-bak
装载某个配置文件,可在配置界面选中“Load an Alternate Configuration File ”,然后填
入已存在的配置文件名称。也可在命令行下将配置文件复制为.config:
$ cp config-bak.config
在 目录下有很多*_defconfig 文件,这些都是内核的预设配置文件,
分别对应各种不同的参考板。如果要使用其中的配置文件作为内核编译配置,可用“make
xxx_defconfig ”命令来完成。对于已经设定好的内核配置,也可以命名为某个文件名,放到
目录下,在以后直接用make 来调用该配置即可。例如将当前配置命名为
m3352_defconfig 并放到 目录下,后续只需执行下列命令即可使用当前配
置:
$ make m3352_defconfig 或者
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-m3352_defconfig
1.1.2 内核配置详情
Linux 内核配置菜单比较复杂,下面对一些比较重要的配置界面进行介绍,更多的详细
配置,建议进行实际操作。另外,由于Linux 内核版本差异,实际看到的内核配置界面可能
与本节的介绍有所差异。
图0