查看: 5847|回复: 0

[分享] i.MX8MEVK内核编译烧录

[复制链接]
  • TA的每日心情
    开心
    2025-7-11 08:53
  • 签到天数: 301 天

    连续签到: 2 天

    [LV.8]以坛为家I

    3868

    主题

    7472

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    39232
    最后登录
    2025-7-18
    发表于 2020-5-18 09:45:13 | 显示全部楼层 |阅读模式
    i.MX8M编译烧录

    MYZR-IMX8M-EVK开发板
    1.png
    从官方处获取了烧录工具,linux镜像,内核源码包和交叉编译等资料,需要的东西都很齐全了,开始今天的学习。

    为开发板烧录Linux系统
    官方为我准备了UUU-MYIMX8M-L4.14.98-Patch.*.rar,UUU-MYIMX8M-L4.14.98烧录工具压缩包,烧录工具中已拥有官方配置好的镜像。


    把 “UUU-MYIMX8M-L4.14.98-Patch.*.rar” 解压到 “UUU-MYIMX8M-L4.14.98” 目录。
    2.png
    为开发板断电, 用 USB Type-C 线连接开发板和 PC, 并把开发板的 “Boot Mode” 拨到 “OFF ON”,再给开发板上电。


    双击运行 “myimx8mevk-8mq-uuu.bat”,这时候 Windows 命令行窗口会看到如下信息:


    把开发板断电, “Boot Mode” 拨到 “ON OFF”, 并为开发板上电, 开发板即可正常启动。


    为开发板编译固件
    在官方配置好的ubuntu中编译开发板linux会比较方便。且下载内核源码包linux-4.14.98..tar.bz2,uboot源码包u-boot-2018.03..tar.bz2及bootloader源码包mkimage-imx4.14.98.*.tar.bz2。


    安装MY-i.MX8M交叉编译工具
    创建工具目录,在工具目录下下载gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz交叉编译工具包
    3.png
    下载完毕解压交叉编译工具:
    4.png
    创建交叉编译工具配置脚本,
    给予脚本执行的权限,
    配置交叉编译环境。
    5.png
    最后检查安装输入:
    ${CROSS_COMPILE}gcc -v
    回复:
    。。。。。。
    gcc version 7.3.1 20180425 [linaro-7.3-2018.05 revision d29120a424ecfbc167ef90065c0eeb7f91977701] (Linaro GCC 7.3-2018.05)
    或者输入echo ${CROSS_COMPILE}gcc
    ubuntu打印:
    aarch64-linux-gnu-gcc


    编译源码

    创建工作目录,将内核源码包linux-4.14.98..tar.bz2,uboot源码包u-boot-2018.03..tar.bz2及bootloader源码包mkimage-imx4.14.98.*.tar.bz2复制到该目录下,并且解压所有包
    6.png
    编译内核文件
    编译前,首先配置交叉编译环境变量
    myzr@u14045:source ~/my-work/03_toolchain/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.env


    编译内核目标文件
    myzr@u14045:cd ~/my-work/02_source/linux-4.14.98
    生成目标.config:
    myzr@u14045:make myimx8mq_defconfig
    ubuntu打印->configuration written to .config时代表成功生成目标.config。


    编译内核镜像
    myzr@u14045:make Image -j4
    编译结束后
    myzr@u14045:cp arch/arm64/boot/Image ./


    完成编译内核


    编译内核模块包
    myzr@u14045:myzr@u14045:make modules
    创建内核模块的保存目录
    myzr@u14045:mkdir modules
    安装内核模块到指定目录
    myzr@u14045:make modules_install headers_install INSTALL_MOD_PATH=./modules
    打包内核模块文件


    Image、 *.dtb 和 kernel-modules.tar.bz2 即编译得到的目标文件, 保存这三个文件


    编译u-boot文件
    myzr@u14045:cd ~/my-work/02_source/u-boot-2018.03
    编译前,首先配置交叉编译环境变量
    myzr@u14045:source ~/my-work/03_toolchain/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.env


    然后又是编译三部曲
    生成目标 .config 文件
    myzr@u14045:make myimx8mevk-8mq_defconfig
    编译u-boot目标文件
    myzr@u14045:make
    复制u-boot目标文件
    myzr@u14045:cp arch/arm/dts/myimx8mevk-8mq.dtb ./myimx8mevk.dtb


    myimx8mevk.dtb、 u-boot-nodtb.bin 和 u-boot-spl.bin 即编译得到的目标文件, 保存这三个文件, 在下一步的 bootloader 编译需要用到


    编译BootLoader
    myzr@u14045:cd ~/my-work/02_source/mkimage-imx_4.14.98
    复制依赖文件 把u-boot编译得到的三个文件复制过来。
    myzr@u14045:cp …/u-boot-2018.03/u-boot-nodtb.bin ./iMX8M/
    myzr@u14045:cp …/u-boot-2018.03/u-boot-spl.bin ./iMX8M/
    myzr@u14045:cp …/u-boot-2018.03/myimx8mevk.dtb ./iMX8M/
    编译BootLoader目标文件
    myzr@u14045:make SOC=iMX8M myimx8mevk OUTIMG=myimx8mevk-8mq.bin
    复制BootLoader目标文件
    myzr@u14045:cp ./iMX8M/myimx8mevk-8mq.bin ./


    myimx8mevk-8mq.bin 即编译得到的目标文件, 保存这个文件。



    文章出处:CSDN

    qiandao qiandao
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-21 07:32 , Processed in 0.079656 second(s), 19 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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