谷动谷力

标题: NXP i.MX Linux Desktop (Ubuntu) BSP开发环境搭建 [打印本页]

作者: sunsili    时间: 2024-3-29 09:54
标题: NXP i.MX Linux Desktop (Ubuntu) BSP开发环境搭建
【ATU Book - i.MX8系列-OS】NXP i.MX Linux Desktop (Ubuntu) BSP开发环境搭建


一、概述
谈论嵌入式系统的开发环境,不得不提起近年来相当实用的 Yocto 建构工具。此工具拥有极为灵活的平台扩展性,广泛的软件套件与社群支持、多平台支持整合性,能够满足开发者特定需求和多种热门的嵌入式系统架设,已成为当今顶尖的架构工具。然而,此篇文章并非重点谈论 Yocto 建构概念与相关议题,而是要带领读者快速应用 Yocto 的 Bitbake 开源工具来快速部署恩智浦 NXP i.MX8 系列的开发环境,透过此博文即可轻松实现任何有关 i.MX8 的环境架设 !!


由于 NXP 提供的 Linux Desktop 仍处于开发阶段,部分功能有可能并非完善 ! 然而,比较遗憾的是,原厂尚未正式发布相关该 OS 的相关讯息,故没有提供相对应的 DEMO Image。同时,原厂仍有提供相关的开发手法,能让用户提前体验 Linux Desktop 的魅力 !! 读者仅需要依照本文章的步骤,一步一脚印来产生映像档,即可轻松实现 ! 倘若读者想要更快速进入到 NXP 平台的 Linux Desktop 实作中,亦可主动联络我们给予协助。此外,下列提供一份以 NXP I.MX 8M Plus 作为验证平台的清单,该清单列举出 Linux Desktop 目前 BSP L6.1.36 可使用的韧体套件,如 G2D / ISP / NPU / VPU / DSP 等等,至于 GStreamer 仍有需技术突破,敬请期待 !


二、快速环境架设
1.  Yocto BSP 必要软件安装
(1) 更新套件 :
  1. $ sudo apt-get upgrade
复制代码


(2) 安装必要套件 :
  1. $ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3 xterm curl repo zstd liblz4-tool
复制代码


(3) 设定 Git 帐号 :
  1. $ git config --global user.name "user name"

  2. $ git config --global user.email "user.name@wpi-group.com"
复制代码

绿色字体须自行更新为相应的字串,例如 : user name 须改为 weilly.li

(4) 设置 repo环境 :
  1. $ cd ~

  2. $ mkdir ~/bin

  3. $ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

  4. $ chmod a+x ~ /bin/repo

  5. $ export PATH=~/bin:$PATH
复制代码


2.  Yocto BSP 编译开发环境
本篇将使用 最新版本 与 NXP i.MX 8M Plus 平台来演示如何‘架设 Yocto BSP 环境’。读者仅需要准备一台电脑以及容量保留 500GB以上的 Ubuntu OS 20.02 系统,并跟着下列步骤,即可轻松架设编译环境以及产生映像档(Image)。

(1)  建立资料夹,并移动至该资料夹中 :
  1. $ mkdir

  2. $ cd
复制代码


(2)  以 repo 套件下载与同步指定 BSP 版本之存储库 :
  1. $ repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-mickledore -m imx-6.1.36-2.1.0_desktop.xml

  2. $ repo sync
复制代码

其他版本请查阅 ‘ 附件 - 各版本对应的 repo 指令’

(3)  BSP 环境设定 :
  1. $ EULA=1 MACHINE=imx8mpevk DISTRO=imx-desktop-xwayland

  2. $ source ./imx-setup-desktop.sh -b buildxwayland
复制代码


其他平台设置方式 :
由于网站编辑表格不易,故以图片取代 !

详细资讯,请参考来源出处IMX_YOCTO_PROJECT_USERS_GUIDE 之1 章节 (+)
https://www.nxp.com.cn/docs/en/u ... ECT_USERS_GUIDE.pdf

(4)  BSP 编译 :
$ bitbake imx-image-desktop

(5)  附件 - 各版本对应的 repo 指令
由于网站编辑表格不易,故以图片取代 !

3.  Yocto BSP 烧录方式
烧录映像档(Image) 至 NXP 嵌入式的平台方法有很多种,建议主要有三种方式,分别为 Linux 指令烧录方式、UUU 烧录软体、第三方烧录软体。顺带一提,目前 NXP 所采用的映像档格式为 wic 档案,请至开发环境中的/tmp/deploy/images/imx8mpevk  查看是否有 .wic 或 .wic.zst 档案 ! 此范例以 SD Card 作为储存装置的烧录方式为主,若欲了解其他储存装置,请参考 UUU 的操作方式。

烧录前,请确认 Boot Switch 开关拨片位置是否正确。如下图,若欲使用eMMC 方式开机则须设置至 0010 ,反之 SD Card 方式开机则须设定至 0011。

(1) Linux 指令

●  请将 SD Card 连接至 PC 端 (Linux 环境),并确认所在的路径位置
  1. $ ls /dev/sd*
复制代码

● 烧录 Image 档至 SD Card 中 :
  1. $ export DEVSD=/dev/sdb

  2. $ cd /buildxwayland/tmp/deploy/images/imx8mpevk

  3. $ bunzip2 -dk -f imx-image-full-imx8mpevk -*.rootfs.wic.zst

  4. $ sudo dd if=imx-image-full-imx8mpevk -*.rootfs.wic of=${DEVSD} bs=1M && sync
复制代码


(2) UUU 烧录软件

● 请开启 PowerShell 输入下列指令,将相关档案移动至资料夹中。
  1. $ mkdir

  2. $ cd < Windows Folder>

  3. $ scp -P 10001 -r weilly@10.20.7.3:/tmp/deploy/images//*-desktop.wic.zst  .

  4. $ scp -P 10001 -r weilly@10.20.7.3:/tmp/deploy/images//imx-boot-*.bin-flash_evk  .
复制代码

若无此档案,请至官方网站下载 Demo Image

● 请先至 NXP github 下载最新的 UUU 1.5.141.exe 工具,并移动至映像档资料夹中。
https://github.com/nxp-imx/mfgtools/releases

● 请将 Boot Switch 切换至 Serial Download 模式,并以 USB Type-C 将 EVK 与 PC 端连结后。即可开启电源,输入下列指令确认是否有顺利连接至 PC 端

  1. .\uuu.exe -lsusb
复制代码

连结成功 :
Connected Known USB Devucs
Path Chip Pro Vid Pid BdVersion
==============================================
1:18 FB: 0x1FC9 0x0152 0x0223

● 烧录 Image 档至 SD Card 中 :
  1. $ .\uuu.exe -b sd_all
复制代码

烧录完成后,请将 Boot Switch 切换至 SD Card 模式
透过此方式亦可烧录至 emmc , qspi , spl 等储存空间,更多细节可以参考 【ATU Book-i.MX8系列】 UUU(Universal Update Utility)

(3) 第三方烧录软件
● 下载 Rufs 烧录软件
● 点进“选择”后,选取“所有档案”选择 wic 档案 ! 即可按下“执行”!

4.  运行 Linux Desktop

依上述步骤,就是制作完成一张专属于 i.MX8M Plus Linux Desktop 之 SD Card 。
最后仅需要将 SD Card 、萤幕与 HDMI 连接至开发板,并开启电源后,等待数秒后,即可看到以下画面 !  

顺带一提,将 Micro USB 传输线连接至开发板后,并搭配 Putty 或 Telent 等虚拟化终端机软件,即可进入到 EVK 的系统中进行操作。

Welcome to Ubuntu 22.04.2 LTS (GNU/Linux 6.1.36+g04b05c5527e9 aarch64)

* Documentation:  https://help.ubuntu.com
* Management:     https://landscape.canonical.com
* Support:        https://ubuntu.com/advantage

This system has been minimized by removing packages and content that are
not required on a system that users do not log into.

To restore this content, you can run the 'unminimize' command.

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To run a command as administrator (user "root"), use "sudo".
See "man sudo_root" for details.

user@imx8mpevk:~$

三、Release Note of Newest (出处)

BSP – L6.1.36_2.2.0
●  Linux Kernel 更新至 6.1.36 版本
●  Linux Kernel 更新至 6.1.36 版本
●  Linux Uboot 更新至 v2023.04 版本
●  EULA 使用者授权协议更新至 v48 版本
●  GGC toolchain 支援至 12.3 版本
●  Cortex-M 韧体更新
●  i.MX 8ULP
    ●  i.MX 8M Nano
    ●  i.MX 8M Mini
    ●  i.MX 8M Plus

●  Security 安全性
    ●  OP-TEE 更新至 3.21.0 版本
    ●  修复 Arm Trusted Firmware 潜在漏洞

●  Multimedia多媒体应用
    ●  Gstreamer 更新至 1.22.0 版本
    ●  Gstreamer支持 Hantro VPU V4L2 codec 界面 (预设)
   ●  Sound Open Firmware 更新至 v2.6.0 版本
   ●  A/V 播放预设变更为 playbin3

●  Graphis 图形
    ●  GPU driver 更新至 6.4.11.p2.0 版本
    ●  GPU SDK 更新至 6.1.1
    ●  Chromium 更新至 101.0.4951.54

●  Machine Learning 机器学习
    ●  OpenCV 更新至 4.7.0
    ●  Tensorflow-lite 更新至 2.11.1
    ●  ONNX 更新至 1.13.1.
    ●  Arm NN 已弃用

●  Ethernet 乙太网路
    ●  DPDK Driver支援 i.MX8M Mini 与 i.MX8M Plus 平台
    ●  DPDK 支援 L2FWD 与 L3FWD 应用

●  Arm SystemReady-IR 认证
    ●  i.MX 8M Mini EVK 已通过认证
    ●  i.MX 8M Plus EVK 已通过认证
    ●  i.MX 8M Quad EVK 已通过认证
    ●  i.MX 8M Nano EVK 已通过认证

●  Platform 平台
●  i.MX 8M Plus
        ●  ISP 更新至 4.2.2.23.0

    ●  I.MX 8ULP
        ●  量产阶段 (GA Quality)

    ●  i.M93
      ●  11x11 的封装,且处于量产阶段 (GA Quality)
      ●  9x9 的封装,且处于量产阶段 (GA Quality)

    ●  i.M91
      ●  11x11 的封装,且处于量产阶段 (GA Quality)
      ●  9x9 的封装,且处于量产阶段 (GA Quality)

●  i.MX 8QuadXPlus B0 MEK 已不支持 Support 与发行新的 BSP 版本
●  i.MX 8DualX MEK 已不支持 Support 与发行新的 BSP 版本
●  i.MX 8DXL A1 DDR3L EVK 已不支持 Support 与发行新的 BSP 版本
●  i.MX 6QuadPlus SABRE-AI 已不支持 Support 与发行新的 BSP 版本
●  i.MX 6Quad/Dual SABRE-AI 已不支持 Support 与发行新的 BSP 版本
●  i.MX 6DualLite SABRE-AI 已不支持 Support 与发行新的 BSP 版本

四、参考文件
[1] i.MX 8 Series Applications Processors Multicore Arm® Cortex® Processors
[2] NXP Document - i.MX Yocto Project User's Guide.pdf
[3] Welcome to the Yocto Project Documentation
[4] NXP Document - i.MX Linux Release Note

如有任何相关 OS 技术问题,欢迎至博文底下留言提问 !!
接下来还会分享更多 OS 的技术文章 !!敬请期待 【ATU Book-i.MX8系列 - OS】 !!







欢迎光临 谷动谷力 (http://bbs.sunsili.com/) Powered by Discuz! X3.2