查看: 1673|回复: 3

[原创] 【i.MX6ULL-evk试用】之二:编译内核

[复制链接]
  • TA的每日心情
    开心
    4 天前
  • 签到天数: 1283 天

    [LV.10]以坛为家III

    21

    主题

    1万

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    13265
    最后登录
    2024-4-30
    发表于 2022-4-11 15:55:01 | 显示全部楼层 |阅读模式
    本帖最后由 sumoon_yao 于 2022-4-11 15:58 编辑

         官方板一般只做参考,通常我们会根据自己的项目要求重新设计板子,相应的软件系统也会跟随硬件而改变,那就需要获得系统源码重新编译我们需要的运行系统。

      首先去NXP官方仓库下载源码,下载内核
    git clonehttps://source.codeaurora.org/external/imx/linux-imx -b rel_imx_4.1.15_2.1.0_ga
      此时你所要做的就是耐心等待,取决于你的网速,1小时到数小时不等。
      再下载uboot源码:
      吐槽一下,这两个源码的版本虽然比较老了,但都在.git/objects/pack目录,linux-imx源码有个近5G的文件,uboot-imx源码有个近200M的文件,这个目录下的文件不是必须的,完全可以从代码仓删除掉啊。不知道其它版本有没有这个问题。

      从官网下载交叉编译工具:
    https://www.linaro.org/downloads/
      实际是从下面这个网站下载的:
    https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads
      根据开发平台选择相应的版本,我的系统是X86的ubuntu18.04,下载了下面这个版本:
    gcc-arm-none-eabi-7-2017-q4-major-linux.tar.bz2
      将软件包用tar命令解压缩:
    sudo tar xvf gcc-arm-none-eabi-7-2017-q4-major-linux.tar.bz2
      改目录名:sudo mv gcc-arm--none-eabi-7-2017-q4-major-linux gcc-arm
      增加搜索路径:vi ~/.bashrc
      在文件最后增加一行:export PATH=~/gcc-arm/bin: $PATH
      注意:后面编译的时候要用到root权限,ubuntu18.04或以上版本要使用sudo获得root权限,但环境变量没有继承,需要在/etc/sudoers文件中做设置。

       编译环境配置好之后就可以编译内核和uboot了,首先进入前面下载的内核目录linux-imx。
       先清理掉中间文件,保证所有文件重新编译:
    sudo make ARCH=arm CROSS_COMPILE=arm-none-eabi- distclean

       使用官方的配置文件作为缺省配置文件:
    sudo make ARCH=arm CROSS_COMPILE=arm-none-eabi- imx_v7_defconfig

       最重要一步,编译内核、设备树和模块文件,这个模块文件是指某些驱动功能不在内核启动时加载,而是在系统启动完成后由用户根据需要手动加载驱动程序。
    sudo make ARCH=arm CROSS_COMPILE=arm-none-eabi-
       编译完成后在arch/arm/boot目录下就有zImage文件,dts目录下有设备树文件,将zImage文件和imx6ul-14x14-evk.dtb设备树文件拷贝到烧写平台。

       接着编译uboot。
      进入uboot-imx目录,同样的先清理掉中间文件,保证所有文件重新编译:
    sudo make ARCH=arm CROSS_COMPILE=arm-none-eabi- distclean
       使用官方的配置文件作为缺省配置文件:
    sudo make ARCH=arm CROSS_COMPILE=arm-none-eabi- mx6ull_14x14_evk_defconfig
       编译uboot。
    sudo make ARCH=arm CROSS_COMPILE=arm-none-eabi-
       编译完成后在当前目录下就得到了系统启动文件uboot.imx,同样的将该文件拷贝到烧写平台。

       将设备树文件imx6ul-14x14-evk.dtb改名为zImage-imx6ul-14x14-evk.dtb,将启动文件uboot.imx改名为u-boot-imx6ull14x14evk_sd.imx,内核文件zImage不用改名,将这3个镜像文件覆盖烧写工具目录下Profiles/Linux/OS Firmware/files子目录中的3个同名文件,再次烧写镜像文件,烧写完成后按下板子上的复位按钮,从系统启动信息中我们可以看到新的镜像文件已成功烧写。

    启动信息kernel更新成功.png



    跟着日天混 ,三天饱九顿!
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 14:38
  • 签到天数: 1947 天

    [LV.Master]伴坛终老

    61

    主题

    1万

    帖子

    3

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    17358
    最后登录
    2024-5-3
    发表于 2022-4-11 16:18:04 | 显示全部楼层
    速度快啊
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3303

    主题

    6550

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32058
    最后登录
    2024-4-30
    发表于 2022-4-11 16:21:10 | 显示全部楼层
    可以可以
    签到签到
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2022-1-4 14:25
  • 签到天数: 1 天

    [LV.1]初来乍到

    0

    主题

    172

    帖子

    0

    高级会员

    Rank: 4

    积分
    575
    最后登录
    2024-4-30
    发表于 2024-4-9 17:41:28 | 显示全部楼层
    学习了,
    每天登陆学习一下
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-5-4 11:59 , Processed in 0.128095 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表