【ATU Book - i.MX8系列 - OS】NXP i.MX Linux BSP 開發(fā)環(huán)境架設(shè)

一、概述

談?wù)撉度胧较到y(tǒng)的開發(fā)環(huán)境,不得不提起近年來(lái)相當(dāng)實(shí)用的 Yocto 建構(gòu)工具。此工具擁有極為靈活的平臺(tái)擴(kuò)展性,廣泛的軟體套件與社群支持、多平臺(tái)支援整合性,能夠滿足開發(fā)者特定需求和多種熱門的嵌入式系統(tǒng)架設(shè),已成為當(dāng)今頂尖的架構(gòu)工具。然而,此篇文章並非重點(diǎn)談?wù)?Yocto 建構(gòu)概念與相關(guān)議題,而是要帶領(lǐng)讀者快速應(yīng)用 Yocto 的 Bitbake 開源工具來(lái)快速佈署恩智浦 NXP i.MX8 系列的開發(fā)環(huán)境,透過(guò)此博文即可輕鬆實(shí)現(xiàn)任何有關(guān) i.MX8 的環(huán)境架設(shè) !!




若讀者想要更快速進(jìn)入到 NXP 平臺(tái)的實(shí)作中,可以至官方網(wǎng)站下載官方發(fā)行的 Linux 映像檔(Image)
Embedded Linux for i.MX Applications Processors | NXP Semiconductors

?

?

?

二、快速環(huán)境架設(shè)

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)
設(shè)定 Git 帳號(hào) :

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

綠色字體須自行更新為相應(yīng)的字串,例如 : user name 須改為 weilly.li


(4)
設(shè)置 repo環(huán)境 :

$ 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 編譯開發(fā)環(huán)境

本篇將使用 最新版本NXP i.MX 8M Plus 平臺(tái)來(lái)演示如何『架設(shè) Yocto BSP 環(huán)境』。 讀者僅需要準(zhǔn)備一臺(tái)電腦以及容量保留 500GB以上的 Ubuntu OS 20.02 系統(tǒng),並跟著下列步驟,即可輕鬆架設(shè)編譯環(huán)境以及產(chǎn)生映像檔(Image)

(1) ?建立資料夾,並移動(dòng)至該資料夾中 :

$ cd <root/anywhere>
$ mkdir <Yocto Project>
$ cd <Yocto Project>

?

(2) ? repo 套件下載與同步指定 BSP 版本之存儲(chǔ)庫(kù) :

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

其他版本請(qǐng)查閱 『 附件 - 各版本對(duì)應(yīng)的 repo 指令』

?

(3) ?BSP 環(huán)境設(shè)定 (以 i.MX 8M Plus 為例)?:

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

其他平臺(tái)設(shè)置方式 :

由於網(wǎng)站編輯表格不易,故以圖片取代 ! 若想複製請(qǐng)點(diǎn)選此連結(jié)

詳細(xì)資訊,請(qǐng)參考來(lái)源出處IMX_YOCTO_PROJECT_USERS_GUIDE 之1 章節(jié) (+)

?

(4) ?BSP 編譯 :

$ bitbake imx-image-full

其他映像檔編譯方式 :

?

(5) ?附件 - 各版本對(duì)應(yīng)的 repo 指令

由於網(wǎng)站編輯表格不易,故以圖片取代 ! 若想複製請(qǐng)點(diǎn)選此連結(jié)



?

(6) ?附件 - 各 BSP 版本對(duì)應(yīng)的 Uboot / GCC /?Python ?版本

?

?

?

3.? Yocto BSP 燒錄方式

燒錄映像檔(Image) 至 NXP 嵌入式的平臺(tái)方法有很多種,建議主要有三種方式,分別為 Linux 指令燒錄方式、UUU 燒錄軟體、第三方燒錄軟體。順帶一提,目前 NXP 所採(cǎi)用的映像檔格式為 wic 檔案,請(qǐng)至開發(fā)環(huán)境中的 <YOCTO>/tmp/deploy/images/imx8mpevk? 查看是否有 .wic 或 .wic.zst 檔案 ! 此範(fàn)例以 SD Card 作為儲(chǔ)存裝置的燒錄方式為主,若欲了解其他儲(chǔ)存裝置,請(qǐng)參考 UUU 的操作方式。


燒錄前,請(qǐng)確認(rèn) Boot Switch 開關(guān)撥片位置是否正確。如下圖,若欲使用 eMMC 方式開機(jī)則須設(shè)置至 0010 ,反之 SD Card 方式開機(jī)則須設(shè)定至 0011。

?

(1) Linux 指令

●? 請(qǐng)將 SD Card 連接至 PC 端 (Linux 環(huán)境),並確認(rèn)所在的路徑位置
 $ 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 燒錄軟體

● 請(qǐng)開啟 PowerShell 輸入下列指令,將相關(guān)檔案移動(dòng)至資料夾中 :

$ mkdir <Windows Folder>

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

?若無(wú)此檔案,請(qǐng)至官方網(wǎng)站下載 Demo Image

?

● 請(qǐng)先至 NXP github 下載最新的 UUU 1.5.141.exe 工具,並移動(dòng)至映像檔資料夾中。

https://github.com/nxp-imx/mfgtools/releases

?

● 請(qǐng)將 Boot Switch 切換至 Serial Download 模式,並以 USB Type-C 將 EVK 與 PC 端連結(jié)後。即可開啟電源,輸入下列指令確認(rèn)是否有順利連接至 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*.wic.zst>

燒錄完成後,請(qǐng)將??Boot Switch 切換至 SD Card 模式
透過(guò)此方式亦可燒錄至 emmc , qspi , spl 等儲(chǔ)存空間,更多細(xì)節(jié)可以參考 【ATU Book-i.MX8系列】 UUU(Universal Update Utility)

?


(3) 第三方燒錄軟體

● 下載 Rufs 燒錄軟體

● 點(diǎn)進(jìn)「選擇」後,選取「所有檔案」選擇 wic 檔案 ! 即可按下「執(zhí)行」!

?


?4.??運(yùn)行 Linux OS

?依上述步驟,就是製作完成一張專屬於 i.MX8M Plus 的 Linux 系統(tǒng)之 SD Card . 最後僅需要將 SD Card 、螢?zāi)慌c HDMI 連接至開發(fā)板,並開啟電源後,等待數(shù)秒後,即可看到以下畫面 !


順帶一提,將 Micro USB 傳輸線連接至開發(fā)板後,並搭配 Putty 或 Telent 等虛擬化終端機(jī)軟體,即可進(jìn)入到 EVK 的系統(tǒng)中進(jìn)行操作。

?
NXP i.MX Release Distro 5.10-hardknott imx8mpevk ttymxc1
imx8mpevk login:
imx8mpevk login: root
root@imx8mpevk:~#

?

?

?

三、Release Note of Newest

BSP – L6.1.55_2.2.0

●? Linux Kernel 更新至 6.1.55 版本?

●? Linux Uboot 更新至 v2023.04 版本

●? EULA 使用者授權(quán)協(xié)議更新至 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 版本
●? 修復(fù) Arm Trusted Firmware 潛在漏洞

●? Multimedia多媒體應(yīng)用

●? Gstreamer 更新至 1.22.5 版本
●? Gstreamer支援 Hantro VPU V4L2 codec 介面 (預(yù)設(shè))
●? Sound Open Firmware 更新至 v2.6.0 版本
●? A/V 播放預(yù)設(shè)變更為 playbin3

●? Graphis 圖形

●? GPU Driver 更新至 6.4.11.p2.2 版本
●? GPU SDK 更新至 6.1.1
●? Chromium 更新至 101.0.4951.54

●? Machine Learning 機(jī)器學(xué)習(xí)

●? OpenCV 更新至 4.7.0
●? Tensorflow-lite 更新至 2.11.1?(含 GPU 加速)
●? ONNX 更新至 1.13.1.
●? Arm NN 已棄用

●? Ethernet 乙太網(wǎng)路

●? DPDK Driver支援 i.MX8M Mini 與 i.MX8M Plus 平臺(tái)
●? DPDK 支援 L2FWD 與 L3FWD 應(yīng)用

●? Arm SystemReady-IR 認(rèn)證

●? i.MX 8M Mini EVK 已通過(guò)認(rèn)證
●? i.MX 8M Plus EVK 已通過(guò)認(rèn)證
●? i.MX 8M Quad EVK 已通過(guò)認(rèn)證
●? i.MX 8M Nano EVK 已通過(guò)認(rèn)證

●? Platform 平臺(tái)

●? i.MX 8M Plus

●? ISP 更新至 4.2.2.23.0

●? I.MX 8ULP

●? 正在進(jìn)行嚴(yán)格的測(cè)試與驗(yàn)證階段 (GA)

●? i.M93

●? 11x11 的封裝大小正在進(jìn)行嚴(yán)格的測(cè)試與驗(yàn)證階段 (GA Quality)
●? 9x9 的封裝大小正在基礎(chǔ)的測(cè)試與驗(yàn)證階段 (GA Quality)

●? i.M91P

●? 11x11 的封裝大小正在初期開發(fā)階段 (Alpha Quality)
●? 9x9 的封裝大小正在初期開發(fā)階段 (Alpha Quality)

●? i.MX 8QuadXPlus B0 MEK 已不支援 Support 與發(fā)行新的 BSP 版本
●? i.MX 8DualX MEK 已不支援 Support 與發(fā)行新的 BSP 版本
●? i.MX 8DXL A1 DDR3L EVK 已不支援 Support 與發(fā)行新的 BSP 版本
●? i.MX 6QuadPlus SABRE-AI 已不支援 Support 與發(fā)行新的 BSP 版本
●? i.MX 6Quad/Dual SABRE-AI 已不支援 Support 與發(fā)行新的 BSP 版本
●? i.MX 6DualLite SABRE-AI 已不支援 Support 與發(fā)行新的 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

如有任何相關(guān) OS 技術(shù)問題,歡迎至博文底下留言提問 !!
接下來(lái)還會(huì)分享更多 OS 的技術(shù)文章 !!敬請(qǐng)期待 ATU Book-i.MX8系列 - OS !!


更新日期 : 2024/01/02

★博文內(nèi)容均由個(gè)人提供,與平臺(tái)無(wú)關(guān),如有違法或侵權(quán),請(qǐng)與網(wǎng)站管理員聯(lián)繫。

★文明上網(wǎng),請(qǐng)理性發(fā)言。內(nèi)容一周內(nèi)被舉報(bào)5次,發(fā)文人進(jìn)小黑屋喔~

參考來(lái)源

評(píng)論