zoukankan      html  css  js  c++  java
  • 2.内核配置与编译,内核移植

                     内核配置与编译

    一、内核清除

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

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

      make clean 清除.o 文件

      make distlean 清除.config 文件

    二、内核配置

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

      

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

      

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

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

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

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

      < >:不选择

    2.2接下来配置linux内核

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

       

      使用make menuconfig ARCH=arm命令

     2.3内核配置结果

       

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

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

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

     二、内核编译

      make   uImage   ARCH=arm   CROSS_COMPILE=arm-linux-

      

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

       

    2.1接着继续编译

      make   uImage   ARCH=arm   CROSS_COMPILE=arm-linux-

     

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

      执行:make menuconfig

       

       

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

     编译成功:

      

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

  • 相关阅读:
    LeetCode 788. Rotated Digits
    LeetCode 606. Construct String from Binary Tree
    LeetCode 13. Roman to Integer
    LeetCode 387. First Unique Character in a String
    LeetCode 520. Detect Capital
    LeetCode 557. Reverse Words in a String III
    RSA加密算法及其与SpringMVC集成
    用phantomjs 进行网页整页截屏
    redis应用场景
    MQ产品比较-ActiveMQ-RocketMQ
  • 原文地址:https://www.cnblogs.com/wmx-learn/p/5322769.html
Copyright © 2011-2022 走看看