Apalis_iMX6_eMMC常驻ToradexEasyInstaller
By Toradex胡珊逢
简介
Toradex Easy Installer 是 Toradex 计算机模块上出厂预装的软件,可以令开发人员首次安装不同的操作系统,同时也适生产线上模块的批量烧写作业。通常在安装系统后,Toradex Easy Installer 将被从模块的存储上擦除。本文将介绍如何使 Toradex Easy Installer 常驻在存储,并用其重装系统。
实现该操作的方法为在存储设备上创建一个专门存放 Toradex Easy Installer 的分区。每次安装系统时将 Toradex Easy Installer 写入到该分区。由于 Toradex 的 U-Boot 支持 distro_boot 功能,通过修改默认的启动命令,令 U-Boot 在启动时加载 Toradex Easy Installer 而不是 Linux 系统。
硬件介绍
这里使用?Apalis iMX6?模块进行演示。Apalis iMX6 的 eMMC 存储做如下分区规划。
Parition 1 | Parition 2 | Parition 3 | Parition 4 |
FAT32 | EXT4 | FAT32 | EXT4 |
bootfs | rootfs | tezi | user data |
第一个分区是用于存放 Linux kernel、 device tree 等文件,格式为 FAT。第二个是 Linux 的系统文件,格式 EXT4。第三个则是 Toradex Easy Installer 的相关文件,格式为 FAT。第四个是用户文件分区,这里格式为 EXT4,也可以调整为其他格式类型。
Toradex Easy Installer 更改
Toradex Easy Installer 中的 image.json 文件可以在安装系统时对存储进行分区操作,为每个分区写入对应的文件,从而实现上面规划的分区。这里我们以?Linux BSP v5.7和?Toradex Easy Installer v5.7为例,创建一个系统安装包,使其同时包含上面两个系统。
首先解压 Linux BSP 的安装文件夹,在 image.json 文件的blockdevs
下面有一个partitions
变量,这里可以指定需要创建的分区。其中label
为BOOT
和RFS
对应上面的第一和第二分区。接下来在partitions
中添加label
为TEZI
和DATA
两个分区。TEZI
分区中写入 tezi_on_emmc.tar.xz 文件。关于 image.json 配置的详细说明请参考这里。tezi_on_emmc.tar.xz 中包含了 Toradex Easy Installer 相关启动文件。解压上面下载的 Toradex Easy Installer 文件,由于不需要在恢复模式下加载,因此删除其中的 recovery 文件夹后,重新压缩其他内容。
$ cd /Apalis-iMX6_ToradexEasyInstaller_5.7.3+build.17
$ rm -rf recovery
$ tar -cJf ../tezi_on_emmc.tar.xz .
DATA
分区可以存储用户自己的数据,如应用程序或者配置文件,将其同样也打包为 EZ2files.tar.xz 文件,在安装时写入 DATA 分区。
将准备好的 tezi_on_emmc.tar.xz 和 EZ2files.tar.xz 文件都复制到解压后 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?
将上面系统安装到 Apalis iMX6 模块,重新启动后可以看到 eMMC 上存在四个分区。
mmcblk2p3 上即为存放 Toradex Easy Installer 相关文件。启动时加载该分区上的 boot-tezi.scr 便能够运行。
修改 U-Boot 启动参数
U-Boot 中默认的启动参数?distro_bootcmd
最终寻找到 BOOT 分区下的 boot.scr 文件,进而启动 Linux 系统。为了加载 TEZI 分区上的 boot-tezi.scr,在 Linux 系统中运行下面命令,修改?bootcmd
参数。Linux BSP 安装文件中的 u-boot-initial-env-spl 会在系统安装期间将?bootcmd
重新修改会默认设置,所以当安装完毕后不会再次启动 TEZI 分区上的 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
运行上面命令并重启后,Apalis iMX6 会启动 eMMC 上的 Toradex Easy Installer。此时,用户可以再次安装系统,而不必进入恢复模式。
总结
常驻在 eMMC 上的 Toradex Easy Installer 能够允许用户直接在设备上运行,便于恢复或者更新系统。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!