2.内核配置与编译,内核移植

时间:2022-01-09 16:34:14

                 内核配置与编译

一、内核清除

  当我们拿到内核第一步需要做的就是先对内核进行清理,防止别人配置编译生成的中间文件对我们产生影响:

  1.配置过程生成的 .config
  2.编译生成 bzImage 中间文件(.o)和生成.ko 文件的中间文件(.o)

  make clean 清除.o 文件

  make distlean 清除.config 文件

二、内核配置

  1. make config:基于文本模式的交互式配置。

  2.内核配置与编译,内核移植

  2. make menuconfig:基于文本模式的菜单型配置。

  2.内核配置与编译,内核移植

   一般来说我选择第二种方法,简单明了。

 这里面一般有三种菜单选项意义如下:

   <*>:所有的文件最后会被生成一个 uImage 内核映像运行在内存中

  <M>:内核模块各个模块生成一个文件夹(存储)需要使用时则拷贝到内存中使用可以达到节省内存的目的

  < >:不选择

2.2接下来配置linux内核

  首先将开发板制造商提供的config-file文件复制到linux内核目录下面改名为.config

   2.内核配置与编译,内核移植

  使用make menuconfig ARCH=arm命令

 2.3内核配置结果

   2.内核配置与编译,内核移植

   内核配置通常在一个已有的配置文件基础上,通过修改得到新的配置文件,Linux 内核提供了一系列可供参考的内核配置文件,位于 Arch/$cpu/configs

  可以用命令 cd arch/arm/configs进入目录

  打开6410参考配置文件查看:vim s3c6400_defconfig

 二、内核编译

  make   uImage   ARCH=arm   CROSS_COMPILE=arm-linux-

  2.内核配置与编译,内核移植

  编译内核失败原因:uboot 要求的可执行文件都有一个头这个头由 mkimage工具制作,生成 mkimage 工具在 uboot 里面 uboot/tools/拷贝到 bin 文件下面

   2.内核配置与编译,内核移植

2.1接着继续编译

  make   uImage   ARCH=arm   CROSS_COMPILE=arm-linux-

 2.内核配置与编译,内核移植

  出现以上错误是因为制作了根文件系统,但是现在找不到文件系统目录,所以只需取消了以下路径就可以了。

  执行:make menuconfig

  2.内核配置与编译,内核移植 

   2.内核配置与编译,内核移植

执行:make   uImage   ARCH=arm   CROSS_COMPILE=arm-linux-等待20~30分钟

 编译成功:

  2.内核配置与编译,内核移植

  最后一步进入arch/arm/boot目录下面将生成的uImage镜像文件下载到开发板即可。