查看: 4406|回复: 0

[分享] NXP i.MX 8M Mini 环境的搭建

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

    连续签到: 2 天

    [LV.8]以坛为家I

    3868

    主题

    7472

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    39232
    最后登录
    2025-7-18
    发表于 2020-5-12 13:59:40 | 显示全部楼层 |阅读模式
    NXP i.MX 8M Mini 环境的搭建


    记录下如何搭建NXP i.MX 8M 的开发环境。
    6.png
    1. 看文档 / 找资料
    不管任何时候,接触任何新的平台或学习新的知识,首先就是看官网提供的文档,或搜索下是否有相关的资料。


    找到开发板的文档入口 : Evaluation Kit for the i.MX 8M Mini Applications Processor 详细介绍了开发板的资源以及相关资料下载路径。


    详细介绍了各个文档的作用

    7.png
    2. 源码下载
    阅读下载的文章中i.MX_Yocto_Project_User’s_Guide.pdf详细介绍了下载源码的步骤。
    1. <font size="3" face="微软雅黑">// 下载repo 工具
    2. curl http://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

    3. // 下载源码
    4. mkdir imx-yocto-bsp
    5. cd imx-yocto-bsp
    6. repo init -u http://source.codeaurora.org/external/imx/imx-manifest -b imx-linux-rocko -m imx-4.9.88-2.0.0_ga.xml
    7. repo sync

    8. </font>
    复制代码
    源码下载过程遇到的错误1 : repo init 提示 fatal: Cannot get http://gerrit.googlesource.com/git-repo/clone.bundle
    1. <font size="3" face="微软雅黑">➜  imx-yocto-bsp ./repo init -u http://source.codeaurora.org/external/imx/imx-manifest -b imx-linux-rocko -m imx-4.9.88-2.0.0_ga.xml
    2. fatal: Cannot get http://gerrit.googlesource.com/git-repo/clone.bundle
    3. fatal: error [Errno 101] Network is unreachable
    4. fatal: cloning the git-repo repository failed, will remove '.repo/repo'

    5. // 解决方案: 

    6. 先单独克隆repo,然后将git-repo里面的repo文件复制到bin目录,在同步源码的工作目录新建.repo文件夹,把git-repo重命名为repo复制到.repo目录下:

    7. git clone http://gerrit-googlesource.lug.ustc.edu.cn/git-repo

    8. </font>
    复制代码
    源码下载过程遇到的错误2 : ImportError: cannot import name 'spawn’
    1. <font size="3" face="微软雅黑">// 运行错误
    2. ➜  imx-yocto-bsp bitbake fsl-image-validation-imx
    3. Traceback (most recent call last):
    4.   File "/home/mike/Work/nxp-imx8/imx-yocto-bsp/sources/poky/bitbake/bin/bitbake", line 31, in <module>
    5.     import bb
    6.   File "/home/mike/Work/nxp-imx8/imx-yocto-bsp/sources/poky/bitbake/lib/bb/__init__.py", line 79, in <module>
    7.     from bb import fetch2 as fetch
    8.   File "/home/mike/Work/nxp-imx8/imx-yocto-bsp/sources/poky/bitbake/lib/bb/fetch2/__init__.py", line 1843, in <module>
    9.     from . import clearcase
    10.   File "/home/mike/Work/nxp-imx8/imx-yocto-bsp/sources/poky/bitbake/lib/bb/fetch2/clearcase.py", line 72, in <module>
    11.     from   distutils import spawn
    12. ImportError: cannot import name 'spawn'

    13. // 解决方案
    14. 安装sudo apt-get install python3-distutils 之后解决

    15. </font>
    复制代码
    源码下载过程遇到的错误3 : ERROR: Unable to start bitbake server
    1. <font size="3" face="微软雅黑">ERROR: Unable to start bitbake server
    2. ERROR: Last 10 lines of server log for this session (/home/mike/Work/nxp-imx8/imx-yocto-bsp/bitbake-cookerdaemon.log):
    3.     self.cooker = bb.cooker.BBCooker(self.configuration, self.featureset)
    4.   File "/home/mike/Work/nxp-imx8/imx-yocto-bsp/sources/poky/bitbake/lib/bb/cooker.py", line 197, in __init__
    5.     self.initConfigurationData()
    6.   File "/home/mike/Work/nxp-imx8/imx-yocto-bsp/sources/poky/bitbake/lib/bb/cooker.py", line 356, in initConfigurationData
    7.     self.databuilder.parseBaseConfiguration()
    8.   File "/home/mike/Work/nxp-imx8/imx-yocto-bsp/sources/poky/bitbake/lib/bb/cookerdata.py", line 316, in parseBaseConfiguration
    9.     raise bb.BBHandledException
    10. bb.BBHandledException
    11. ERROR: The following required tools (as specified by HOSTTOOLS) appear to be unavailable in PATH, please install them in order to proceed:
    12.   chrpath
    13.   
    14. //解决方案
    15. sudo apt-get install chrpath
    16. sudo apt-get install texinfo

    17. </font>
    复制代码
    下载最新代码
    1. <font size="3" face="微软雅黑">//查看最新的提交
    2. http://source.codeaurora.org/external/imx/imx-manifest/?h=imx-linux-rocko
    3. // 下载最新代码
    4. To use this manifest repo, the 'repo' tool must be isntalled first.
    5. --------------------------------------------------------
    6. $: mkdir ~/bin
    7. $: curl http://commondatastorage.googleapis.com/git-repo-downloads/repo  > ~/bin/repo
    8. $: chmod a+x ~/bin/repo
    9. $: PATH=${PATH}:~/bin

    10. To excute
    11. $: mkdir <release>
    12. $: cd <release>
    13. $: repo init -u http://source.codeaurora.org/external/imx/fsl-arm-yocto-bsp -b <branch name> [ -m <release manifest>]

    14. // 下载imx-linux-sumo分支代码
    15. repo init -u http://source.codeaurora.org/external/imx/imx-manifest -b imx-linux-sumo -m imx-virt-4.14.98-4.11-0.10_ga.xml

    16. </font>
    复制代码
    8.png
    2.1 编译
    源码的编译主要使用fsl-setup-release.sh脚本完成
    DISTRO=fsl-imx-x11 source fsl-setup-release.sh -b build , 详细用法如下
    1. <font size="3" face="微软雅黑">DISTRO=<distro name> MACHINE=<machine name> source fsl-setup-release.sh -b <build dir>
    2. // DISTRO
    3. DISTRO= <distro configuration name> is the distro, which configures the build environment and it is stored in meta-fsl-
    4. bsp-release/imx/meta-sdk/conf/distro .

    5. 对应源码中的 sources/meta-fsl-bsp-release/imx/meta-sdk/conf/distro/fsl-imx-x11.conf,可以看到

    6. DISTRO = "fsl-imx-x11"

    7. // MACHINE
    8. MACHINE= <machine configuration name> is the machine name which points to the configuration file in conf/machine in
    9. meta-freescale and meta-fsl-bsp-release.

    10. // 编译输出的目录
    11. -b <build dir> specifies the name of the build directory created by the fsl-setup-release.sh script.
    12. </font>
    复制代码
    通过分析 fsl-setup-release.sh 脚本了解的一些信息
    1. <font size="3" face="微软雅黑">// MACHINE默认参数为imx6qpsabresd
    2. if [ -z "$MACHINE" ]; then
    3.     echo setting to default machine
    4.     MACHINE='imx6qpsabresd'
    5. fi</font>
    复制代码
    build 目录中执行 bitbake -k core-image-minimal , -k 代表 : 发生错误后尽可能继续执行。 编译过程持续 2~3 h

    2.2 分析output
    参考Yocto Project Reference Manual -> 5.2. The Build Directory - build/ 了解编译成功后各个目录含义


    build/downloads/ : 下载的源代码,可以通过修改 build/conf/local.conf中的DL_DIR ?= "${TOPDIR}/downloads"改变路径
    build/sstate-cache/ : 含共享状态缓存,可以通过修改 build/conf/local.conf中的SSTATE_DIR ?= "${TOPDIR}/sstate-cache"改变路径
    build/tmp/ : 构建系统的输出目录。 可以通过修改 build/conf/local.conf中的TMPDIR = “${TOPDIR}/tmp”"改变路径
    9.png
    3. 固件烧录
    NXP 固件烧录借助于uuu (Universal Update Utility) mfgtools,全平台覆盖
    10.png
    Uboot 中通过fastboot 进入烧录模式


    1. <font size="3" face="微软雅黑">//fastboot devices
    2. u-boot=> fastboot  devices
    3. switch to partitions #0, OK
    4. mmc1(part 0) is current device
    5. Starting download of 16776232 bytes
    6. ..........................................................................
    7. </font>
    复制代码
    PC端通过UUU 进行烧录
    1. <font size="3" face="微软雅黑">sudo ./uuu -b emmc_all imx-boot-imx8mmevk-sd.bin-flash_evk sdcard.img
    2. </font>
    复制代码




    文章出处:CSDN




    qiandao qiandao
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-20 05:32 , Processed in 0.081763 second(s), 20 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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