i2S-6UB核心板eMMC版本提供了多种更新的方式,结合不同使用场景,可以自由选择。当前分区结构如下:

分区名 容量 分区 分区格式 内容
bootloader + env 2MB mmc1boot0 RAW U-Boot
Linux 64MB mmcblk1p1 VFAT Linux kernel + dtb + boot script
Recovery 64MB mmcblk1p2 VFAT Recovery Linux kernel + dtb + boot script
rootfs 1.4GB mmcblk1p3 Ext4 Linux Root filesystem
data 2GB mmcblk1p4 Ext4 User data
Recovery 用于维护和更新Linux,rootfs和data分区,需要制做特定的更新包,并启动进入Recovery系统才可以更新。

对于不同的分区,i2SOM提供了多种更新方式,可以根据需要自行选择。

更新方式 更新内容 适用场景
U-Boot方式 用于手动更新uboot和recovery系统 开发板上的U-Boot已损坏无法启动
Recovery方式 仅用于更新rootfs, linux和data分区 开发板eMMC上已有U-Boot和Recovery,并且U-Boot可以启动运行
SD方式 仅用于更新uboot和recovery 开发板eMMC没有任何可启动程序

U-Boot方式

i2S-6UB核心板提供的U-Boot中已加入update命令,用于更新U-Boot和Recovery系统。更新前需要将新版本的U-Boot程序或Recovery系统放入SD卡,SD卡应格式化为VFAT格式。插入SD卡,上电启动后按下Enter键停止在U-Boot的命令行下。

更新U-Boot的命令如下:

update uboot mmc 0 1 u-boot.imx

更新Recovery的命令如下:

update recovery mmc 0 1 recovery.vfat

Recovery方式

Recovery方式需要有更新包文件,文件扩展名为swu。将制做好的更新包文件复制到已格式化为VFAT分区格式的的SD卡内。下面是开发板上的更新操作:

1.切换BootDev Switch(SW1)拨码开关至eMMC启动位,然后插入SD卡,接入电源。

2.上电后按Enter键,停留在U-Boot的命令行下,输入以下命令启动Recovery系统。

setenv mmcpart 2
run bootcmd

3.Recovery系统启动成功后,会自动查找SD卡并挂载后,查到是否有更新包文件,然后执行更新操作。更新成功后,调试串口会输出以下信息,此时可以断开电源后重新上电即可进入更新后的系统。

Software updated successfully
Please reboot the device to start the new software
[NOTIFY] : SWUPDATE successful !
[RECOVERY] Firmware update process succeed!
reboot: Restarting system

SD方式

SD更新方式使用由i2SOM提供的更新镜像,制做成SD更新卡,开发板从SD启动后会自动更新U-Boot和Recovery系统至eMMC Flash。更新镜像文件是i2s6uby2-update-ddr512-emmc4-20180513120554.sdcard.gz。

更新步骤如下:

1.使用USB Image Tool或Win32ImageWrite工具将更新镜像写入SD

2.切换BootDev Switch(SW1)拨码开关至SD卡启动位,插入已制做好的更新SD卡(J7)

3.上电后开发板自动更新,更新成功后D17 LED灯常亮

制作Recovery方式的更新包

Recovery方式更新,需要先制做更新包。i2SOM提供了可以制做更新包的工具,mkupdate_package。下面以制做Linux和Rootfs的更新包为例子。更新包的需要先准备好相应的更新镜像文件和描述文件。描述文件名是sw-description,描述用于更新的分区和文件。

下载i2S-6UB-BuildSWU.tar.gz文件。解压后,执行如下的制做命令:

./mkupdate_package i2s6uby2-emmc-core
sw-description
core-image-base-i2c6ulxbe-20180429170438.boot.vfat
core-image-base-i2c6ulxbe-20180429170438.rootfs.ext4
imx-emmc-postinstall.sh
438726 blocks

命令执行完成后,在当前目录会生成i2s6uby2-emmc-core_1.0_20190702143137.swu文件(文件名的20190702143137为时间戳,请以实际为准)。

制做SD卡更新镜像

下载i2S6UB-BuildUpdateSDImage.tar.gz软件包,在Linux系统下解压后,执行如下命令制做适合i2S-6UB eMMC版本的更新镜像。

sudo ./build-sdcard -som i2s6uby2 -flash emmc -target-dir i2s6uby2-ddr512m-emmc4g-recovery -var 1
[sudo] password for build:
SoM anme : i2s6uby2
Target image dir : i2s6uby2-ddr512m-emmc4g-recovery
Flash Type : emmc
Debug : false
Output file : i2s6uby2-ddr512emmc4-20180513230907.sdcard
SDCard image size : 622592 Byte
Model:  (file)
Disk /home/build/i2S6UB-BuildUpdateSDImage/i2s6uby2-ddr512emmc4-20180513230907.sdcard: 638MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End    Size   Type     File system  Flags
 1      4194kB  528MB  524MB  primary               lba

boot block 512000
The build sdcard image : i2s6uby2-ddr512emmc4-20180513230907.sdcard.gz

最后生成的i2s6uby2-ddr512emmc4-20180513230907.sdcard.gz文件,可以按照“SD卡方式”写入SD后更新。

作者:SteveChen  创建时间:2024-09-17 16:39
最后编辑:SteveChen  更新时间:2024-09-17 16:55