Apalis_iMX6_eMMC常駐ToradexEasyInstaller
簡介
Toradex Easy Installer 是 Toradex 計算機(jī)模塊上出廠預(yù)裝的軟件,可以令開發(fā)人員首次安裝不同的操作系統(tǒng),同時也適生產(chǎn)線上模塊的批量燒寫作業(yè)。通常在安裝系統(tǒng)后,Toradex Easy Installer 將被從模塊的存儲上擦除。本文將介紹如何使 Toradex Easy Installer 常駐在存儲,并用其重裝系統(tǒng)。
實現(xiàn)該操作的方法為在存儲設(shè)備上創(chuàng)建一個專門存放 Toradex Easy Installer 的分區(qū)。每次安裝系統(tǒng)時將 Toradex Easy Installer 寫入到該分區(qū)。由于 Toradex 的 U-Boot 支持 distro_boot 功能,通過修改默認(rèn)的啟動命令,令 U-Boot 在啟動時加載 Toradex Easy Installer 而不是 Linux 系統(tǒng)。
硬件介紹
這里使用 Apalis iMX6 模塊進(jìn)行演示。Apalis iMX6 的 eMMC 存儲做如下分區(qū)規(guī)劃。
Parition 1 | Parition 2 | Parition 3 | Parition 4 |
FAT32 | EXT4 | FAT32 | EXT4 |
bootfs | rootfs | tezi | user data |
第一個分區(qū)是用于存放 Linux kernel、 device tree 等文件,格式為 FAT。第二個是 Linux 的系統(tǒng)文件,格式 EXT4。第三個則是 Toradex Easy Installer 的相關(guān)文件,格式為 FAT。第四個是用戶文件分區(qū),這里格式為 EXT4,也可以調(diào)整為其他格式類型。
首先解壓 Linux BSP 的安裝文件夾,在 image.json 文件的blockdevs下面有一個partitions變量,這里可以指定需要創(chuàng)建的分區(qū)。其中l(wèi)abel為BOOT和RFS對應(yīng)上面的第一和第二分區(qū)。接下來在partitions中添加label為TEZI和DATA兩個分區(qū)。TEZI分區(qū)中寫入 tezi_on_emmc.tar.xz 文件。關(guān)于 image.json 配置的詳細(xì)說明請參考這里。tezi_on_emmc.tar.xz 中包含了 Toradex Easy Installer 相關(guān)啟動文件。解壓上面下載的 Toradex Easy Installer 文件,由于不需要在恢復(fù)模式下加載,因此刪除其中的 recovery 文件夾后,重新壓縮其他內(nèi)容。
$ cd /Apalis-iMX6_ToradexEasyInstaller_5.7.3+build.17 $ rm -rf recovery $ tar -cJf ../tezi_on_emmc.tar.xz .
DATA分區(qū)可以存儲用戶自己的數(shù)據(jù),如應(yīng)用程序或者配置文件,將其同樣也打包為 EZ2files.tar.xz 文件,在安裝時寫入 DATA 分區(qū)。
將準(zhǔn)備好的 tezi_on_emmc.tar.xz 和 EZ2files.tar.xz 文件都復(fù)制到解壓后 Linux BSP 的安裝文件夾中可以看到有如下文件。
$ tree . ├── EZ2files.tar.xz ├── image.json ├── LA_OPT_NXP_SW.html ├── marketing.tar ├── prepare.sh ├── Reference-Minimal-Image-apalis-imx6.bootfs.tar.xz ├── Reference-Minimal-Image-apalis-imx6.tar.xz ├── SPL ├── tezi_on_emmc.tar.xz ├── toradexlinux.png ├── u-boot.img ├── u-boot-initial-env-spl └── wrapup.sh
將上面系統(tǒng)安裝到 Apalis iMX6 模塊,重新啟動后可以看到 eMMC 上存在四個分區(qū)。
mmcblk2p3 上即為存放 Toradex Easy Installer 相關(guān)文件。啟動時加載該分區(qū)上的 boot-tezi.scr 便能夠運(yùn)行。
修改 U-Boot 啟動參數(shù)
U-Boot 中默認(rèn)的啟動參數(shù) distro_bootcmd最終尋找到 BOOT 分區(qū)下的 boot.scr 文件,進(jìn)而啟動 Linux 系統(tǒng)。為了加載 TEZI 分區(qū)上的 boot-tezi.scr,在 Linux 系統(tǒng)中運(yùn)行下面命令,修改 bootcmd參數(shù)。Linux BSP 安裝文件中的 u-boot-initial-env-spl 會在系統(tǒng)安裝期間將 bootcmd重新修改會默認(rèn)設(shè)置,所以當(dāng)安裝完畢后不會再次啟動 TEZI 分區(qū)上的 Toradex Easy Installer。
$ fw_setenv boot_TEZI 'setenv devtype mmc; setenv devnum 0; setenv distro_bootpart 3; setenv bootfstype fat; setenv prefix /; load mmc 0:3 ${scriptaddr} /boot-tezi.scr; source ${scriptaddr}' $ fw_setenv bootcmd "run boot_TEZI" $ sync $ reboot -f
運(yùn)行上面命令并重啟后,Apalis iMX6 會啟動 eMMC 上的 Toradex Easy Installer。此時,用戶可以再次安裝系統(tǒng),而不必進(jìn)入恢復(fù)模式。
總結(jié)
常駐在 eMMC 上的 Toradex Easy Installer 能夠允許用戶直接在設(shè)備上運(yùn)行,便于恢復(fù)或者更新系統(tǒng)。
提交
Verdin AM62 LVGL 移植
基于 NXP iMX8MM 測試 Secure Boot 功能
隆重推出 Aquila - 新一代 Toradex 計算機(jī)模塊
Verdin iMX8MP 調(diào)試串口更改
NXP iMX8MM Cortex-M4 核心 GPT Capture 測試