U-Boot加载ToradexEasyInstaller

供稿:韬睿(上海)计算机科技有限公司

  • 关键词:toradex,,easyinstaller
  • 作者:ByToradex 胡珊逢
  • 摘要:Toradex在去年推出了Toradex Easy Installer 操作系统安装工具。用户借助该工具能够以图形化界面的操作方式,在Toradex的 Arm 计算机模块上方便地安装所需的操作系统,如 Linux、WinCE 以及Toradex合作伙伴提供的其他系统包括 QNX、安卓等。这极大降低了用户安装嵌入式系统的难度,同时也让产品的量产编程变得简单。

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$ makecolibri_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启动时加载其他功能,例如修改 devicetree,启用电容触摸屏功能,可以创建如下bootNaNd 文件

---------------------------------

# Set timings for 7" multitouch

setenv bootargs console=ttymxc0,115200quiet video=mxcfb0:dev=lcd,FusionF07A,if=RGB666 rootfstype=squashfsroot=/dev/ram autoinstall fullscreen ${teziargs}

# Reenable fdt relocation since in placefdt edits corrupt the ramdisk

# in a FIT image...

setenv fdt_high

# Load FIT image from location as detectedby distroboot

load ${devtype} ${devnum}:${bootpart}${ramdisk_addr_r} ${prefix}tezi.itb

bootm start ${ramdisk_addr_r} &&bootm loados && bootm ramdisk && bootm fdt

# Enable capacitive multitouch driver

fdt set /soc/aips-bus@02100000/i2c@021a8000/atmel_mxt_ts@4astatus okay

bootm prep && bootm go

---------------------------------


然后生成用于启动的boot.scr

---------------------------------

user@user-pc:~/$ mkimage -A arm -O linux -Tscript -C none -a 0 -e 0 -n "Distro boot script" -d bootNaNd boot.scr

---------------------------------

4). U-Boot 启动 Toradex Easy Installer

将准好的 U 盘、SD 卡连接至 Toradex Arm 计算机模块,进入 U-Boot 命令模式,运行下面命令将启动 Toradex Easy Installer,而无需连接电脑并进入模块的恢复模式。

---------------------------------

Colibri iMX6 # run distro_bootcmd

---------------------------------


在 ToradexEasy Installer 中你可以更新操作系统。


默认情况下上电启动后U-Boot 会直接加载模块 Flash 上 Linux 内核并启动。我们可以修改 U-Boot 参数,使其优先从外部介质上的文件启动。在没有连接启动 SD 卡或者 U 盘的情况下再从模块上的 Flash 启动所安装的系统。由于网络 tftp 启动有一定的超时等待时间,为了不影响系统启动时间,我们将禁用 tftp启动功能,保留从 SD 卡或者 U 盘寻找启动文件。

---------------------------------

Colibri iMX6 # setenv boot_targets 'mmc1usb0'

Colibri iMX6 # setenv bootcmd 'rundistro_bootcmd ; run emmcboot ; echo ; echo emmcboot failed ; usb start ;setenvstdout serial,vga ; setenv stdin serial,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-Bootdistroboot 和 ToradexEasy Installer 自动安装功能,用户可以实现 SD 卡或者 U 盘本地更新操作系统。需要注意的是,由于默认的 U-Bootdistroboot 没有验证启动文件boot.scr 合法性的功能,在使用优先从外部介质上的启动时,任何可以在 Arm 计算机模块上启动的系统都可以通过 boot.scr 被加载执行。从而在模块执行其他功能的系统,甚至是带有恶意功能的软件。因此在使用 distroboot 功能时,建议用户根据自己安全需求,修改 U-Boot 代码,防止非法程序在平台上运行。


参考:

https://developer.toradex.com/software/toradex-easy-installer#configuration-files


发布时间:2018年6月6日 16:45  人气:   审核编辑(王静 )
相关链接

我有需求