【ATU Book - i.MX8系列 - OS】NXP i.MX Linux Desktop (Ubuntu) BSP 开发环境架设

一、概述

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

原文:NXP i.MX Linux Desktop (Ubuntu) BSP 开发环境架设



 

由于 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) 更新套件 : 

$ sudo apt-get upgrade


(2) 安装必要套件 :

$ 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 帐号 :

$ git config --global user.name "user name"
$ git config --global user.email "user.name@wpi-group.com"

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


(4) 设置 repo环境 :

$ cd ~
$ mkdir ~/bin
$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~ /bin/repo
$ export PATH=~/bin:$PATH

 
 

2.  Yocto BSP 编译开发环境

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

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

$ mkdir <Yocto Project>
$ cd <Yocto Project>


(2)   repo 套件下载与同步指定 BSP 版本之存储库 :

$ repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-mickledore -m imx-6.1.36-2.1.0_desktop.xml
$ repo sync

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


(3)  BSP 环境设定 :

$ EULA=1 MACHINE=imx8mpevk DISTRO=imx-desktop-xwayland
$ source ./imx-setup-desktop.sh -b buildxwayland

其他平台设置方式 :

由于网站编辑表格不易,故以图片取代 ! 若想复制请点选此连结

详细资讯,请参考来源出处IMX_YOCTO_PROJECT_USERS_GUIDE 之1 章节 (+)

(4)  BSP 编译 :

$ bitbake imx-image-desktop

(5)  附件 - 各版本对应的 repo 指令

由于网站编辑表格不易,故以图片取代 ! 若想复制请点选此连结

 
 

3.  Yocto BSP 烧录方式

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


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

(1) Linux 指令

●  请将 SD Card 连接至 PC 端 (Linux 环境),并确认所在的路径位置

 $ ls /dev/sd*

● 烧录 Image 档至 SD Card 中 :

$ export DEVSD=/dev/sdb 
$ cd  <Yocto Project>/buildxwayland/tmp/deploy/images/imx8mpevk
$ bunzip2 -dk -f imx-image-full-imx8mpevk -*.rootfs.wic.zst 
$ sudo dd if=imx-image-full-imx8mpevk -*.rootfs.wic of=${DEVSD} bs=1M && sync



(2) UUU 烧录软体

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

$ mkdir <Windows Folder>
$ cd < Windows Folder>
$ scp -P 10001 -r weilly@10.20.7.3: <Yocto Project> /tmp/deploy/images/<platform>/*-desktop.wic.zst  .
$ scp -P 10001 -r weilly@10.20.7.3: <Yocto Project> /tmp/deploy/images/<platform>/imx-boot-*.bin-flash_evk  .

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

● 请先至 NXP github 下载最新的 UUU 1.5.141.exe 工具,并移动至映像档资料夹中。

Releases · nxp-imx/mfgtools · GitHub

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

 .\uuu.exe -lsusb

连结成功 :

Connected Known USB Devucs


Path Chip Pro Vid Pid BdVersion
==============================================
1:18 FB: 0x1FC9 0x0152 0x0223

● 烧录 Image 档至 SD Card 中 :

$ .\uuu.exe -b sd_all <imx-boot-imx8mpevk-sd.bin-flash_evk> <imx-image-desktop-imx8mpevk-desktop-*.wic.zst>

烧录完成后,请将 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 <command>".
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 !!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/747656.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【深海王国】小学生都能玩的单片机?零基础入门单片机Arduino带你打开嵌入式的大门!(10)

Hi٩(๑o๑)۶, 各位深海王国的同志们&#xff0c;早上下午晚上凌晨好呀~辛勤工作的你今天也辛苦啦 (o゜▽゜)o☆ 今天大都督继续为大家带来系列——小学生都能玩的单片机&#xff01;带你一周内快速走进嵌入式的大门&#xff0c;let’s go&#xff01; &#xff08;10&#…

Java学习笔记(多线程):CompetableFuture

本文是自己的学习笔记&#xff0c;主要参考资料如下 https://www.cnblogs.com/dolphin0520/p/3920407.html JavaSE文档 https://blog.csdn.net/ThinkWon/article/details/102508721 1、Overview2、重要参数3、主要方法3.1、创建实例&#xff0c;获取返回值3.2、线程执行顺序相关…

三十九篇:UML与SysML:掌握现代软件和系统架构的关键

UML与SysML&#xff1a;掌握现代软件和系统架构的关键 1. 引言 1.1 为什么系统设计如此关键 在当今快速发展的技术环境中&#xff0c;系统设计的重要性不言而喻。无论是软件开发还是复杂的系统工程&#xff0c;良好的设计是确保项目成功的基石。系统设计不仅关系到功能的实现…

day38动态规划part01| 理论基础 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯

**理论基础 ** 无论大家之前对动态规划学到什么程度&#xff0c;一定要先看 我讲的 动态规划理论基础。 如果没做过动态规划的题目&#xff0c;看我讲的理论基础&#xff0c;会有感觉 是不是简单题想复杂了&#xff1f; 其实并没有&#xff0c;我讲的理论基础内容&#xff0c;…

状态压缩动态规划(State Compression DP)算法详解

状态压缩动态规划&#xff08;State Compression DP&#xff09;是一种高效解决组合优化问题的技术&#xff0c;特别适用于那些状态空间较大且可以用二进制表示的情况。本文将详细讲解状态压缩DP的原理、常用的位运算技巧、以及具体的例题分析。 原理概述 状态压缩DP的核心思…

HTML5实现字母记忆配对游戏

HTML5实现字母记忆配对游戏 这个小游戏具有重新开始功能和难度设置功能。 “重新开始“按钮&#xff0c;点击它或完成一局游戏后&#xff0c;会自动开始新游戏。 下拉列表框&#xff0c;&#xff0c;难度设置&#xff0c;包含简单、中等和困难三个选项。 简单&#xff1a;8…

《梦醒蝶飞:释放Excel函数与公式的力量》5.4 Match函数

5.4 Match函数 5.4.1 match函数的概念 MATCH函数是Excel中的一个查找和引用函数&#xff0c;它用于在数据表或数组中搜索指定项&#xff0c;并返回该项在数组中的相对位置。以下是MATCH函数的几个关键概念&#xff1a; 1)查找值&#xff08;Lookup Value&#xff09; 这是…

Web 权限管理最佳实践:如何提升用户满意度与应用安全性?

引言 在当今数字化时代&#xff0c;Web应用的功能和复杂性不断增加&#xff0c;用户对在线服务的期望也在不断提升。为了提供丰富的用户体验&#xff0c;许多Web应用需要访问用户的个人信息或设备功能&#xff0c;如地理位置、摄像头和麦克风等。这些权限访问在提升应用功能的…

移动Web开发实战内容要点!!!

移动web开发 目录 移动web开发 第一章、Web开发标准与网页网站制作介绍 1.1Web开发标准 1.2网页基本构成元素 第二章、Web开发技术基础 2.1HTML的主要特点&#xff1a; 2.2HTML基本知识 2.3CSS样式 2.4JavaScript 第三章、打造移动Web应用程序 3.1为什么Android会成…

AI-智能体基础设施

个性化记忆需要世界模型来协助构建 业界有一个精简的Agent表达公示&#xff0c;即&#xff1a;Agent大模型&#xff08;LLM&#xff09;记忆&#xff08;Memory&#xff09;主动规划&#xff08;Planning&#xff09;工具使用&#xff08;Tool Use&#xff09;。基于该公式&am…

植物大战僵尸杂交版v2.1最新直装版,苹果+安卓+PC+防闪退工具+修改工具+高清工具+通关存档整合包更新

今天我要和各位聊聊一款让全网疯狂的游戏——《植物大战僵尸杂交版》。这可不是简单的游戏&#xff0c;它可是让B站的UP主“潜艇伟伟迷”一夜成名的大作&#xff0c;让无数玩家为之疯狂的魔改神作&#xff01; 记得2009年&#xff0c;《植物大战僵尸》横空出世&#xff0c;那时…

单片机学习记录

一&#xff0c;单片机及开发板介绍 1&#xff0c;基本介绍 单片机&#xff0c;英文Micro Controller Unit&#xff0c;简称MCU内部集成了CPU、RAM、ROM、定时器、中断系统、通讯接口等一系列电脑的常用硬件功能单片机的任务是信息采集(依靠传感器)、处理(依靠CPU)和硬件设备(…

深度相机辅助导航避障(三):地面点云滤除

前面的章节介绍了坐标变换,以及如何设置深度相机的坐标变换。那就可以很直观从机器人的坐标系对深度相机扫描到的障碍物点云进行处理。 在实际应用中,机器人正确估计周围地形,对于道路的可通过性、路径规划和障碍物检测等方面都很重要。那么在获取深度相机点云数据后就得准…

Qt入门小项目 | 实现腾讯会议登陆界面

文章目录 一、手写代码实现腾讯会议登陆界面二、使用UI设计器实现腾讯会议登陆界面 一、手写代码实现腾讯会议登陆界面 使用Qt控件与布局实现腾讯会议登陆界面。 示例&#xff1a; loginInCode.h&#xff1a; #pragma once#include <QtWidgets/QDialog> #include <QV…

安装zabbix时报错Could not resolve host: mirrors.huaweicloud.com;Unknown error解决办法

目录 1、问题原因 2、解决办法 3、知识拓展 DNS的区别 DNS配置文件解析 域名解析过程 4、书籍推荐 当安装Zabbix server&#xff0c;Web前端&#xff0c;agent时出现&#xff1a; [rootsc-zabbix-server ~]# yum install zabbix-server-mysql zabbix-agent安装过程中会出…

Token详解

一&#xff1a;Token是什么 token是具有访问权限的令牌&#xff0c;其本质是一串字符串。 如何创建token 用户在登录页面&#xff0c;输入账号和密码能够成功登录后&#xff1b;由后端签发并返回 token作用 用来判断用户当前的登录状态&#xff0c;根据当前用户登录状态给…

OceanBase 4.X-2F1A 仲裁高可用方案初探

作者&#xff1a;郑增权&#xff0c;爱可生 DBA 团队成员&#xff0c;OceanBase 和 MySQL 数据库技术爱好者。 爱可生开源社区出品&#xff0c;原创内容未经授权不得随意使用&#xff0c;转载请联系小编并注明来源。 本文约 1500 字&#xff0c;预计阅读需要 5 分钟。 背景 对…

CS与MSF的权限互相传递/mimikatz抓取windows 2012明文密码

目录 CS和MSF的简单介绍 Metasploit Cobalt Strike 1、CS权限传递到MSF 2、MSF权限传递到CS 3、使用mimikatz抓取明文密码 通过修改注册表用户重新登录后抓取明文密码 今天的任务是两个 一个是CS与MSF的权限互相传递一个是抓取windows2012的明文密码 那就分别来完成 …

printf趣味代码,打印图案

文章目录 1.打印佛祖2.打印猫猫 (闪烁效果) 1.打印佛祖 #include <stdio.h>void budda_bless(){printf("///\n\ // _ooOoo_ //\n\ // o8888888o //\n\ // …

SpringBoot全局配置文件里的配置项

SpringBoot核心配置文件里可以配置的配置项&#xff0c;非常非常多&#xff01;Spring Boot Reference Guide靠后的附件里看到所有配置项和说明. 有关配置项&#xff0c;我们除了知道在哪里查询具体配置项以外&#xff0c;我们还应该知道一些细节知识点: ① SpringBoot给我们…