理论

  • 内核中提供了许多的功能,支持了许多的硬件,因而有许多的东西需要配置,对于这些可以配置的选项,在配置文件中都是以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目录下

相关文章: