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

news2024/10/7 9:17:19

一、概述

谈论嵌入式系统的开发环境,不得不提起近年来相当实用的 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 !!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

css如何动态累计数字?

导读&#xff1a;css如何动态累计数字&#xff1f;用于章节目录的序列数生成&#xff0c;用css的计数器实现起来比 js方式更简单&#xff01; 伪元素 ::after ::before伪元素设置content 可以在元素的首部和尾部添加内容&#xff0c;我们要在元素的首部添加序列号&#xff0c…

Cesium如何高性能的实现上万条道路的流光穿梭效果

大家好&#xff0c;我是日拱一卒的攻城师不浪&#xff0c;专注可视化、数字孪生、前端、nodejs、AI学习、GIS等学习沉淀&#xff0c;这是2024年输出的第20/100篇文章&#xff1b; 前言 在智慧城市的项目中&#xff0c;经常会碰到这样一个需求&#xff1a;领导要求将全市的道路…

支持WebDav的网盘infiniCloud(静读天下,Zotero 等挂载)

前言 WebDav是一种基于HTTP的协议&#xff0c;允许用户在Web上直接编辑和管理文件&#xff0c;如复制、移动、删除等。 尽管有一些网盘支持WebDav&#xff0c;但其中大部分都有较多的使用限制。这些限制可能包括&#xff1a;上传文件的大小限制、存储空间的限制、下载速度的限…

借助AI快速提高英语听力:如何获得适合自己的听力材料?

英语听力是英语学习中的一个重要组成部分&#xff0c;它对于提高语言理解和交流能力至关重要。可理解性学习&#xff08;comprehensible input&#xff09;是语言习得理论中的一个概念&#xff0c;由语言学家Stephen Krashen提出&#xff0c;指的是学习者在理解语言输入的同时&…

残差网络中的基础结构——残差模块

残差网络的思想 随着网络深度的增加&#xff0c;网络能获取的信息量随之增加&#xff0c;而且提取的特征更加丰富。然而在残差结构提出之前&#xff0c;实验证明&#xff0c;随着网络层数的增加&#xff0c;模型的准确率起初会不断提高&#xff0c;直至达到最大饱和值。然后&a…

194.回溯算法:组合总和||(力扣)

代码解决 class Solution { public:vector<int> res; // 当前组合的临时存储vector<vector<int>> result; // 存储所有符合条件的组合// 回溯函数void backtracing(vector<int>& candidates, int target, int flag, int index, vector<bool>…

不需要new关键字创建实例?jQuery是如何做到的

这篇文章是jQuery源码专栏的开篇文章了&#xff0c;有人会问为什么都2024年了&#xff0c; 还要研究一个已经过时的框架呢&#xff0c;其实&#xff0c;jQuery对比vue和react这种响应式框架&#xff0c;其在使用上算是过时的&#xff0c;毕竟直接操作DOM远不如操作虚拟DOM来的方…

力扣SQL50 游戏玩法分析 IV 子查询

Problem: 550. 游戏玩法分析 IV &#x1f468;‍&#x1f3eb; 参考题解 这个SQL查询的目的是计算每个玩家在登录后的第二天参与活动的比例。查询使用了子查询和左连接来实现这一目的。下面是查询的详细解释&#xff0c;包括每个部分的作用和注释&#xff1a; -- 计算每个玩…

LLm与微调入门

前言 两种 Finetune 范式 增量预训练微调 使用场景&#xff1a;让基座模型学习到一些新知识&#xff0c;如某个垂类领域的常识 训练数据&#xff1a;文章、书籍、代码等 指令跟随微调 使用场景&#xff1a;让模型学会对话模板&#xff0c;根据人类指令进行对话 训练数据…

C++第二学期期末考试选择题题库(qlu题库,自用)

又到了期末周&#xff0c;突击一下c吧— 第一次实验 1、已知学生记录的定义为&#xff1a; struct student { int no; char name[20]; char sex; struct 注意年月日都是结构体&#xff0c;不是student里面的 { int year; int month; …

数据分析BI仪表盘搭建

BI仪表盘搭建六个原则&#xff1a; 1.仪表盘搭建符合业务的阅读&#xff0c;思考和操作逻辑。 2.明确仪表盘主题&#xff0c;你的用户对什么感兴趣。 普通业务人员&#xff1a;销售&#xff1a;注册&#xff0c;激活&#xff0c;成交投放&#xff1a;消耗&#xff0c;转化率…

构建下一代数据解决方案:SingleStore、MinIO 和现代 Datalake 堆栈

SingleStore 是专为数据密集型工作负载而设计的云原生数据库。它是一个分布式关系 SQL 数据库管理系统&#xff0c;支持 ANSI SQL&#xff0c;并因其在数据引入、事务处理和查询处理方面的速度而受到认可。SingleStore 可以存储关系、JSON、图形和时间序列数据&#xff0c;以满…

Java面试八股之简述JVM内存结构

简述JVM内存结构 Java虚拟机&#xff08;JVM&#xff09;内存结构主要分为线程私有区域和线程共享区域两大部分&#xff0c;具体组成部分如下&#xff1a; 线程私有区域 程序计数器&#xff08;Program Counter Register&#xff09;&#xff1a; 记录当前线程执行的字节码行…

24-6-23-读书笔记(七)-《文稿拾零》豪尔赫·路易斯·博尔赫斯(第三辑)

文章目录 《文稿拾零》阅读笔记记录总结 《文稿拾零》 《文稿拾零》超厚的一本书&#xff08;570&#xff09;&#xff0c;看得时间比较长&#xff0c;这本书是作者零散时间写的一些关于文学性质的笔记&#xff0c;读起来还是比较无趣的&#xff0c;非常零散&#xff0c;虽然有…

CP AUTOSAR标准之FlashTest(AUTOSAR_CP_SWS_FlashTest)(更新中……)

1 简介和功能概述 该规范指定了AUTOSAR基础软件模块Flash测试驱动程序的功能、API和配置。   此闪存测试模块提供测试恒定内存的算法。恒定内存可以是数据/程序闪存、程序SRAM、锁定缓存,可以嵌入微控制器中,也可以通过内存映射连接到微控制器。为简化起见,SW模块称为闪存…

秋招突击——第六弹——Java的SSN框架快速入门——MyBatisPlus

文章目录 引言正文入门案例整和MybatisPlus的相关内容 概述标准数据层开发分页查询DQL编程控制条件查询——NULL值处理 查询投影查询条件设定等于操作范围查询模糊查询分组查询 字段映射和表名映射 DML编程控制——增删改查相关操作添加操作id生成策略控制 删除操作多数据删除逻…

面试:关于word2vec的相关知识点Hierarchical Softmax和NegativeSampling

1、为什么需要Hierarchical Softmax和Negative Sampling 从输入层到隐含层需要一个维度为NK的权重矩阵&#xff0c;从隐含层到输出层又需要一个维度为KN的权重矩阵&#xff0c;学习权重可以用反向传播算法实现&#xff0c;每次迭代时将权重沿梯度更优的方向进行一小步更新。但…

Qt画实时曲线图

Qt引入QcustomPlot 首先下载QcustomPlot源代码&#xff0c;https://github.com/qcustomplot/qcustomplot 下载zip文件 运行所下载的项目生成库文件libqcustomplotd2.a文件和qcustomplotd2.dll文件。 在项目中添加printsupport。 并将qcustomplot.h文件和qcustomplot.cpp文…

RMDA通信1:通信过程和优势,以太网socket为何用户空间拷贝到内核空间

视频分享&#xff1a; 1.1 RDMA基本原理和优势&#xff0c;以太网socket通信为什么要用户空间拷贝到内核空间_哔哩哔哩_bilibili 一、以太网socket通信 1.1 以太网socket通信过程 1、发送端发起一次通信操作&#xff0c;数据由用户空间拷贝到内核空间。拷贝由CPU完成&#x…

ubuntu22.04笔记: 更换为阿里源

没有按照LTS 版本 会遇到下面问题&#xff1a; 参考&#xff1a;https://zhuanlan.zhihu.com/p/691625646 Ubuntu 22.04代号为&#xff1a;jammy Ubuntu 20.04代号为&#xff1a;focal Ubuntu 19.04代号为&#xff1a;disco Ubuntu 18.04代号为&#xff1a;bionic Ubuntu …