一、概述
談論嵌入式系統的開發環境,不得不提起近年來相當實用的 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) 更新套件 :
$ 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
其他平台設置方式 :
由於網站編輯表格不易,故以圖片取代 ! 若想複製請點選此連結
(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 工具,並移動至映像檔資料夾中。
https://github.com/nxp-imx/mfgtools/releases
● 請將 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】 !!
評論