zoukankan      html  css  js  c++  java
  • 基于OMAPL:Linux3.3内核的编译

    基于OMAPL:Linux3.3内核的编译

    OMAPL对应3个版本的linux源代码,分别是:Linux-3.3、Linux-2.6.37、Linux2.6.33,这里的差距在于Linux2,缺少SYSLINK支持组件。

    这里我们选择Linux-3.3版本进行开发。

    开发前准备

    • mkimage的工具:sudo apt-get install u-boot-tools
    • menuconfig组件库安装:apt-get install libncurses5-dev
    • 正确配置arm-none-linux-gnueabi的环境
    • 内核源文件:linux-3.3.tar.bz2(一定要用TI提供配套OMAPL的,不是随便找个Linux3.3就可以的)

    内核编译过程

    • 解压内核到~/work内核路径为~/work/linux-3.3

    • 进入Linux内核路径`~/work/linux-3.3

    • 清理内核(一个字儿都不能少)

      make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean

    配置内核

    配置内核很关键,有些童鞋说,人家的内核编译了5分钟就结束了,怎么我的1个小时还没编译完,很有可能就是很多地方对于这个板子没有用的部件你没有删除掉,一般原厂都会有个推荐配置,当然了,TI的OMAPL138也是提供了推荐配置的。

    创龙公司给出的配置为,执行命令:

    make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- da850_omapl138_tl_defconfig

    我使用的是德州仪器给的配置,则执行命令:

    make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- da850_omapl138_defconfig

    当然这不是瞎编的,内核中包含的配置文件在,以下的目录:

    ./arch/arm/configs

    ls以下会看到很多配置:

    我们使用画横线的配置信息。

    • 使用make menuconfig写入配置信息

    make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig

    直接Exit就可以,然后就会写入配置信息了。

    在这个menu里面我们配置驱动或者内核其他的组件机制,是否编译到内核中,这个根据自己需求进行,初学者可能对于这个地方没有多少概念。可参考韦东山《嵌入式Linux完全开发手册》的编译内核章节,上面有目录规则和解说等。

    编译内核

    1. 先编译析出zImage文件
      make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- -j4
      2)将zImage转为uImage
      make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage -j4

    正在编译的内核

    编译内核一般都会有各种各样的错误,去百度或者google清查。

    编译成功生成uImage文件

    编译完成后可以在内核源码的"arch/arm/boot"目录下找到 uImage。可以将 uImage 拷贝到正常使用的 SD 系统启动卡的 FAT32 格式的 boot 分区,方便以后 SD 卡启动方式时被 U-Boot 加载或者被烧写到 NAND FLASH 分区。

    uImage文件

    参考文献

  • 相关阅读:
    Combine 框架,从0到1 —— 4.在 Combine 中使用计时器
    Combine 框架,从0到1 —— 4.在 Combine 中使用通知
    Combine 框架,从0到1 —— 3.使用 Subscriber 控制发布速度
    Combine 框架,从0到1 —— 2.通过 ConnectablePublisher 控制何时发布
    使用 Swift Package Manager 集成依赖库
    iOS 高效灵活地配置可复用视图组件的主题
    构建个人博客网站(基于Python Flask)
    Swift dynamic关键字
    Swift @objcMembers
    仅用递归函数操作逆序一个栈(Swift 4)
  • 原文地址:https://www.cnblogs.com/sigma0/p/9149041.html
Copyright © 2011-2022 走看看