linux内核构建体系(一)

学习linux内核构建体系其实有几个原因

  • 可以学习很多linux工具的使用,如make,gcc等,这些知识对于学习linux和在linux环境下工作都非常有用;
  • 可以学习大型工程是怎么组织的;
  • 可以知道linux内核是怎么一步一步的组装好的本身也是一件非常有意思的事情;

虽然深入了解linux内核构建体系有点难度,但是其实构建构建linux内核却是非常简单的。

构建过程

随着linux内核的进步,linux的构建过程现在已经非常简单了

以构建内核4.14.2为例,设内核源代码放在/home/lld/linux-4.14.2目录下

  • cd /home/lld/linux-4.14.2
  • make mrproper

    该步骤用于清理以前构建过程产生的文件、配置文件和备份文件

  • make oldconfig

该命令使用一个已有的.config文件为基础来生成一个新的配置文件。

其实生成配置文件的方法有很多,可以完全从零开始构造一个自己想要的内核,使用make menuconfig命令使用目录形式的构造是我比较喜欢的方式。当然也可以使用linux默认的配置,使用make x86_64_defconfig命令产生x86_64架构下默认的配置文件

  • make

    非常简单,然后只需要等待构建完成即可。
    如果想要构建过程更快一些,使用make -j n 使用并行构建,使用n个作业并行构建内核,将n替换为你想要的并行数,如4.

  • make install

    将内核安装在默认的位置。

指定构建目录的构建方法

前一节的方法使用和源代码一样的目录作为构建输出目录,当然也可以指定构建目录,设源代码在/home/lld/linux-4.14.2,构建目录在/home/lld/build/kernel

  • cd /home/lld/linux-4.14.2
  • make O=/home/lld/build/kernel menuconfig
  • make O=/home/lld/build/kernel
  • make O=/home/lld/build/kernel install

注意

如果配置某些组件选用了以module方式生成,则需要将这些module进行安装,将最后一步安装改为
make modules_install install
和make modules_install install

发布了58 篇原创文章 · 获赞 3 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/lldustc/article/details/78634866