第一個(gè)分區(qū)是用于存放 Linux kernel、 device tree 等文件,格式為 FAT。第二個(gè)是 Linux 的系統(tǒng)文件,格式 EXT4。第三個(gè)則是 Toradex Easy Installer 的相關(guān)文件,格式為 FAT。第四個(gè)是用戶文件分區(qū),這里格式為 EXT4,也可以調(diào)整為其他格式類型。
Toradex Easy Installer 更改
Toradex Easy Installer 中的 image.json 文件可以在安裝系統(tǒng)時(shí)對(duì)存儲(chǔ)進(jìn)行分區(qū)操作,為每個(gè)分區(qū)寫入對(duì)應(yīng)的文件,從而實(shí)現(xiàn)上面規(guī)劃的分區(qū)。這里我們以?Linux BSP v5.7和?Toradex Easy Installer v5.7為例,創(chuàng)建一個(gè)系統(tǒng)安裝包,使其同時(shí)包含上面兩個(gè)系統(tǒng)。
首先解壓 Linux BSP 的安裝文件夾,在 image.json 文件的blockdevs下面有一個(gè)partitions變量,這里可以指定需要?jiǎng)?chuàng)建的分區(qū)。其中l(wèi)abel為BOOT和RFS對(duì)應(yīng)上面的第一和第二分區(qū)。接下來在partitions中添加label為TEZI和DATA兩個(gè)分區(qū)。TEZI分區(qū)中寫入 tezi_on_emmc.tar.xz 文件。關(guān)于 image.json 配置的詳細(xì)說明請(qǐng)參考這里。tezi_on_emmc.tar.xz 中包含了 Toradex Easy Installer 相關(guān)啟動(dòng)文件。解壓上面下載的 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ū)可以存儲(chǔ)用戶自己的數(shù)據(jù),如應(yīng)用程序或者配置文件,將其同樣也打包為 EZ2files.tar.xz 文件,在安裝時(shí)寫入 DATA 分區(qū)。
修改 U-Boot 啟動(dòng)參數(shù)
U-Boot 中默認(rèn)的啟動(dòng)參數(shù)?distro_bootcmd最終尋找到 BOOT 分區(qū)下的 boot.scr 文件,進(jìn)而啟動(dòng) Linux 系統(tǒng)。為了加載 TEZI 分區(qū)上的 boot-tezi.scr,在 Linux 系統(tǒng)中運(yùn)行下面命令,修改?bootcmd參數(shù)。Linux BSP 安裝文件中的 u-boot-initial-env-spl 會(huì)在系統(tǒng)安裝期間將?bootcmd重新修改會(huì)默認(rèn)設(shè)置,所以當(dāng)安裝完畢后不會(huì)再次啟動(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 會(huì)啟動(dòng) eMMC 上的 Toradex Easy Installer。此時(shí),用戶可以再次安裝系統(tǒng),而不必進(jìn)入恢復(fù)模式。
總結(jié)
常駐在 eMMC 上的 Toradex Easy Installer 能夠允許用戶直接在設(shè)備上運(yùn)行,便于恢復(fù)或者更新系統(tǒng)。