Yocto 編譯時依賴一些以下指令搭建 L5.4.24_2.1.0 yocto 編譯環境Yocto Project 是一個專注於嵌入式 Linux
作業系統開發的開源合作項目。為了在Linux 主機中獲得 Yocto 專案的預期行為,必須安裝以下包和實用程式:
$sudoapt-get update //更新 Linux 中的套裝軟體
$sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat
$sudo apt-get install libsdl1.2-dev xterm sed cvs subversion coreutils texi2html docbook-utils
python-pysqlite2 help2man
$sudo apt-get install make gcc g++ desktop-file-utils libgl1-mesa-dev libglu1-mesa-dev mercurial autoconf
automake groff curl lzop asciidoc //安裝 Make 工具
$sudo apt-get install u-boot-tools cpio python python3 python3-pip python3-pexpect xz-utils debianutils
iputils-ping python3-gitpython3-jinja2 libegl1-mesa pylint3 //安裝 u-boot-tools 工具
1.3 配置 repo
repo專案管理工具類似 git 工具
執行以下指令配置repo。
$ mkdir ~/bin
$ cd bin
$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo
// curl是一個利用 URL規則在命令列下工作的檔案傳輸工具,可以說是一款很強大的http命令列工具。它支援檔的上傳和下載,是綜合傳輸工具,習慣稱url為下載工具。伺服器更改為 singhua
$ chmod a+x repo
$vi~/.bashrc
在.bashrc文件末尾添加以下行
export PATH=~/bin:$PATH //修改該檔案屬性為所以用戶可執行
1.4 Yoctol 專案設置
- 使用以下命令設置git,其中user.name和user.email請根據實際進行更改
$git config --global user.name “xxx.xxx”
$ git config --global user.email “xxx.xx@wpi-group.com”
$ git config --list
git config—list 顯示
- 執行以下指令下載 I.MX Yocto Project Community BSP recipe layers. 假設項目名為 ”imx yocto bsp”bsp” 專案名可以根據需要更改,選擇清華伺服器作為目前可以下載的 manifest
$ mkdir imx-yocto-bsp
$ cd imx-yocto-bsp
$ repo init -u https://source.codeaurora.org/external/imx/imx-manifest -b imx-linux-zeus -m
imx-5.4.24-2.1.0.xml --repo-url=https://mirrors.tuna.tsinghua.edu.cn/git/git-repo
$ repo sync
此步驟將花費一些時間,請注意保持網路暢通。
注意:如果資料夾imx-yocto-bsp 未放在使用者目錄 $HOME下,請用命令 sudo chmod 777 imx-yocto-bsp 修改其許可權。
1.5 編譯映射
- Firs-build 執行以下指令
$ cd imx-yocto-bsp
$ DISTRO=fsl-imx-waylandMACHINE=imx8mmevk source imx-setup-release.sh -b imx8mmevk_wayland
$ bitbake imx-image-multimedia
其中 DISTRO=fsl-imx-wayland 是將映射設置為支援 wayland Weston 圖形
imx-image-multimedia 指編譯的映射帶 GUI,不帶 QT 支援,更多資訊,請參考
IMX_YOCTO_PROJECT_USERS_GUIDE.pdf
編譯過程中伺服器中斷或者意外關機,執行以下命令繼續編譯:
- Bitbake 過程可能會持續一天或更久,這取決於主機網路和系統性能,在 bitbake 過程中可能會因為網路問題報錯並提前中止或因為各種原因需要手動中止編譯進程(按 ctrl+c 中止),再次進行編譯時執行以下命令
$ cd imx-yocto-bsp
$source setup-environment imx8mmevk_wayland
$ bitbake imx-image-multimedia
注意:編譯過程需要時間比較久,預計需要 4-5 天時間。
- bitbake 執行成功時會提示 “all succeeded”, 如下圖所示:
編譯成功的提示資訊
- 執行成功後將在 imx-yocto-bsp/imx8mmevk_wayland/tmp/deploy/images/imx8mmevk 目錄下生成映射檔,如下圖所示
映射檔目錄
燒寫映射至NOR Flash並啟動
IMX8MMEVK 支援從 NOR Flash 啟動 u-boot
- 再次進入之前的 yocto 編譯環境,執行以下指令編譯用於 NOR Flash 啟動的 u-boot。
$cd imx-yocto-bsp
$source setup-environment imx8mmevk_wayland
$echo "UBOOT_CONFIG = \"fspi\"" >> conf/local.conf
$MACHINE=imx8mmevk bitbake -c deploy u-boot-imx
- 再次通過 bitbake 命令進行整體性編譯
$bitbake imx-image-multimedia -f
- 在成功編譯後,將 imx-yocto-bsp/imx8mmevk_wayland/tmp/deploy/images/imx8mmevk 目錄
imx-boot-imx8mmevk-fspi.bin-flash_evk_flexspi 拷貝至 uuu 工具目錄下。
- 修改指令檔qspi_burn_loader.lst,將所有“_flexspi.bin和_image”修改為
“imx-boot-imx8mmevk-fspi.bin-flash_evk_flexspi”。
- 使用 USB Type-C 線連接 IMX8MINIEVK 的 USB Type-C 介面和 PC,然後連接 USB Tpye-C 電源,並將
電源開關設置為 “ON”,系統將檢測到設備,如下圖所示
識別設備
- 以管理員身份運行 CMD 工具並進入到 UUU目錄,執行命令:uuu qspi_burn_loader.lst 燒寫映射,燒寫
成功後會提示 “Done”,如下圖所示:
UUU 写映像至成功提示
- 關閉板子的電源開關,將i.MX8M mini EVK 撥碼開關設置成QSPI NOR啟動
SW1101 0110110010
SW1102 1010000010
撥碼開關設置
- 使用 Micro USB 線連接 IMX8MINIEVK 調試串口和 PC 的 USB Host,插入 Micro SD 啟動卡,將板子的
電源開關設置為 “ON”,將看到系統從 NOR Flash 啟動的串口資訊。
注意:如果不需要啟動內核和檔案系統,可以不接入 Micro SD 啟動卡
啟動串口資訊一
啟動串口資訊二
- 輸入用戶名“root”即可進入系統。
- NOR Flash 的 uboot 映射默認設置從 MicroSD 載入內核和檔案系統,如果需要從 eMMC 載入內核和檔案系統,可以在 uboot 下修改 mmcdev 和 mmcroot 的值,命令如下:
$setenv mmcdev 2
$setenv mmcroot /dev/mmcblk2p2 rootwait rw
- NOR Flash 的 uboot 映射如果設置從 eMMC 載入內核和檔案系統,如果需要從 MicroSD 載入內核和檔案系統,可以在 uboot 下修改 mmcdev 和 mmcroot 的值,命令如下:
$setenv mmcdev 1
$setenv mmcroot /dev/mmcblk2p2 rootwait rw
$saveenv
l 參考資料:
NXP官網:
- https://www.nxp.com/docs/en/user-guide/IMX8MMEVKBHUG.pdf
- https://www.nxp.com/docs/en/quick-reference-guide/8MMINILPD4EVKBQSG.pdf
- https://www.nxp.com/webapp/Download?colCode=L5.4.24_2.1.0_LINUX_DOCS
- https://www.nxp.com/webapp/Download?colCode=8MMINILPD4-CPU2-DESIGNFILES
- https://www.nxp.com/webapp/Download?colCode=IMX8MMRM
- https://www.nxp.com/document/guide/get-started-with-the-i-mx-8m-mini-evk:GS-iMX-8M-Mini-EVK
評論