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镜像文件下载到开发板即可。

  • 相关阅读:
    5M1E,软件质量管理最佳解决方案
    Laravel 刚创建的项目 API 无法使用 Session,是没有在Api的请求内开启Session
    python添加默认模块搜索路径
    [传纸条]
    [miller_rabin]
    国内rog游戏手机2与国际版本的 差别
    windows下依端口查进程
    gor phone 2 优缺点
    IDA pro 6.8 导入cpu解析模块报错 ImportError: No module named ida_ bytes
    JEB 4.5 新增 RISC-V 反编译器支持
  • 原文地址:https://www.cnblogs.com/wmx-learn/p/5322769.html
Copyright © 2011-2022 走看看