"); //-->
By Toradex胡珊逢
1). 简介
Toradex在去年推出了Toradex Easy Installer 操作系统安装工具。用户借助该工具能够以图形化界面的操作方式,在Toradex的 Arm 计算机模块上方便地安装所需的操作系统,如 Linux、WinCE 以及Toradex合作伙伴提供的其他系统包括 QNX、安卓等。这极大降低了用户安装嵌入式系统的难度,同时也让产品的量产编程变得简单。
对于已经使用Toradex Easy Installer 安装完系统的用户,如果仍旧想要借助Toradex Easy Installer 更新系统,需要进入 Arm 计算机模块的恢复模式,连接 USB 接口至电脑。这种连接方法在有些场合下可能并不容易实现和操作。Linux 用户则可以使用 U-Boot 的distroboot 功能,直接从外部存储介质上启动 Toradex Easy Installer,并进行系统安装。通过这种方法可以实现本地更新系统。下面将介绍如何在 Toradex 的 Arm 计算机模块上使用该功能。
2). 启用 U-Boot distroboot 功能
Toradex 默认的 U-Boot 并没有启用 distroboot,需要在对应模块的配置文件添加 CONFIG_DISTRO_DEFAULTS,例如 Colibri iMX6 模块在 colibri_imx6_defconfig 末尾添加
---------------------------------
u-boot-toradex/configs/colibri_imx6_defconfig
CONFIG_DISTRO_DEFAULTS=y
---------------------------------
然后重新编译生成 U-Boot 并更新到模块
---------------------------------
user@user-pc:~/Toradex/u-boot-toradex$ make colibri_imx6_defconfig
user@user-pc:~/Toradex/u-boot-toradex$ make -j4
---------------------------------
3). 制作启动文件
Toradex U-Boot distroboot 支持从 U 盘、SD 卡或者网络(tftp)启动。你需要在 U 盘、SD 卡或者 tftp 根目录下存放 boot.scr 等相关文件。Toradex Easy Installer 已经包含所有的文件,解压后复制到对应目录即可。
Toradex Easy Installer 也是基于 Linux ,常用的 cmdline 同样也适用。如果你需要在 Toradex Easy Installer 启动时加载其他功能,例如修改 device tree,启用电容触摸屏功能,可以创建如下 boot.cmd 文件
---------------------------------
# Set timings for 7" multitouch
setenvbootargs console=ttymxc0,115200 quiet video=mxcfb0:dev=lcd,FusionF07A,if=RGB666 rootfstype=squashfs root=/dev/ram autoinstallfullscreen ${teziargs}
# Reenablefdt relocation since in place fdt edits corrupt the ramdisk
# in a FIT image...
setenvfdt_high
# Load FIT image from location as detected by distroboot
load ${devtype} ${devnum}:${bootpart} ${ramdisk_addr_r} ${prefix}tezi.itb
bootm start ${ramdisk_addr_r} &&bootmloados&&bootmramdisk&&bootmfdt
# Enable capacitive multitouch driver
fdt set /soc/aips-bus@02100000/i2c@021a8000/atmel_mxt_ts@4a status okay
bootm prep &&bootm go
---------------------------------
然后生成用于启动的 boot.scr
---------------------------------
user@user-pc:~/$ mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "Distro boot script" -d boot.cmd boot.scr
---------------------------------
4). U-Boot 启动 Toradex Easy Installer
将准好的 U 盘、SD 卡连接至 Toradex Arm 计算机模块,进入 U-Boot 命令模式,运行下面命令将启动 Toradex Easy Installer,而无需连接电脑并进入模块的恢复模式。
---------------------------------
Colibri iMX6 # rundistro_bootcmd
---------------------------------
在 Toradex Easy Installer 中你可以更新操作系统。
默认情况下上电启动后 U-Boot 会直接加载模块 Flash 上 Linux 内核并启动。我们可以修改 U-Boot 参数,使其优先从外部介质上的文件启动。在没有连接启动 SD 卡或者 U 盘的情况下再从模块上的 Flash 启动所安装的系统。由于网络 tftp 启动有一定的超时等待时间,为了不影响系统启动时间,我们将禁用 tftp 启动功能,保留从 SD 卡或者 U 盘寻找启动文件。
---------------------------------
Colibri iMX6 # setenvboot_targets 'mmc1 usb0'
Colibri iMX6 # setenvbootcmd 'run distro_bootcmd ; run emmcboot ; echo ; echo emmcboot failed ; usb start ;setenvstdoutserial,vga ; setenvstdinserial,usbkbd'
Colibri iMX6 # saveenv
---------------------------------
同时结合 Toradex Easy Installer 的 autoinstall 功能,我们可以实现 U-Boot 启动 Toradex Easy Installer 后自动安装指定的操作系统。例如在 SD 卡存放 Toradex Easy Installer 所有的启动文件,并在根目录下创建 Colibri-Imx6_Console-Image-Tezi_2.7b5 文件夹,启动存放所要安装系统的 tezi 格式镜像文件和配置文件等,如下面 SD 卡上的文件。

通过上面的配置,默认情况下 Colibri iMX6 将从启动 Flash 上的 Linux 系统,然后正常运行用户的应用程序。如果插入包含 Toradex Easy Installer 启动文件和用户镜像安装文件的 SD 卡或者 U 盘,那么 Colibri iMX6 自动更新所要安装的系统。
5). 总结
借助 U-Boot distroboot 和 Toradex Easy Installer 自动安装功能,用户可以实现 SD 卡或者 U 盘本地更新操作系统。需要注意的是,由于默认的 U-Boot distroboot 没有验证启动文件 boot.scr 合法性的功能,在使用优先从外部介质上的启动时,任何可以在 Arm 计算机模块上启动的系统都可以通过 boot.scr 被加载执行。从而在模块执行其他功能的系统,甚至是带有恶意功能的软件。因此在使用 distroboot 功能时,建议用户根据自己安全需求,修改 U-Boot 代码,防止非法程序在平台上运行。
参考:
https://developer.toradex.com/software/toradex-easy-installer#configuration-files
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
什么是IEEE 1801-2024统一功率格式4.0标准?
JEDEC发布首个LPDDR6标准
Vishay AC03-CS系列轴向绕线安全电阻现推出WSZ引线版本
STK084G组成的50W厚膜功率放大电路
中国3G圈牢地盘
2005年国际航宇回顾
无线发射机讲义
Rf多功能工具计算软件
场效应管功率放大电路
500W晶体管功率放大电路
电池架构使用100%硅负极来提高能量密度和耐用性
100W场效应管功率放大电路
简化PCB到线束设计与EDA工具的集成
清华大学ARM培训教材
僵尸晶圆厂困扰着中国的芯片制造雄心,失败烧毁了数百亿美元
网络中心战中的无人机系统
10W功率放大电路
软件项目文档模板
量子计算将如何挑战 IoT 安全
《商业周刊》:西方IT企业到东方寻找技术金矿
尼得科家电产业事业本部在青岛启用新产业园区
思特威推出3MP车规级CMOS图像传感器新品SC326AT
Numonyx Axcell M29EW:更快的编程速度与更强的安全性
清华大学ARM培训教材
美军导弹武器低成本化的途径与方式
JEDEC发布针对移动和AI的LPDDR6
天基信息的新力量—小卫星
破烂王的发家史
[原创]Linker和loader
信产部前世今生:看最后一个产业部委沉浮