理论
内核中提供了许多的功能,支持了许多的硬件,因而有许多的东西需要配置,对于这些可以配置的选项,在配置文件中都是以CONFIG为前缀的,例如对SMP的配置选项是CONFIG_SMP,设置了该选项就启动SMP,否则SMP不起作用,编译的时候不会被编译。如下图为一个配置文件的部分截图:
对于这些配置选项中,有的是两个选项,有的是三个选项,三个选项的分别是Y,N,M。M的意思就是模块,选择该选项也就意味着该配置被选择,但是该部分的功能的实现以模块的形式来实现,也就是在后期需要通过insmod模块来实现该功能。通常驱动程序都用三个选项的
这些配置好的配置文件会存放在内核的根目录的.config文件中,可以直接修改。
配置编译文件方法
1、make config
- 该方法是会逐一遍历所有配置项,让用户来选择,这个方法比较耗时间,如图:
2、make menuconfig
- 基于ncurse库编写的图形界面工具,使用方便。如图:
3、make gconfig
- 基于gtk+的图形工具
4、make defconfig
- 基于默认的配置建立一个配置文件,很少用。
5、直接修改配置文件
- 使用文本工具进行修改
编译内核
- make uImage -j4
- 使用4个线程来编译内核
模块的安装
- 在编译内核的时候有些部分是以模块形式编译的,所以在编译完内核之后还需要将需要的模块安装到指定目录下,也就是将这些模块汇总在一个目录下便于管理。
- make modules_install
- 会将模块文件安装到/lib/modules目录下