Page tree
Skip to end of metadata
Go to start of metadata

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

分区名容量分区分区格式内容
bootloader5MBmtd1RAWU-Boot
bootloader env1MBmtd2RAWU-Boot Environment
safe1MBmtd3RAW
Linux16MBmtd4UBIFSLinux kernel + dtb + boot script
Recovery32MBmtd5UBIFSRecovery Linux kernel + dtb + boot script
rootfs150MBmtd6UBIFSLinux Root filesystem
data49MBmtd7UBIFSUser data

Recovery 用于维护和更新Linux,rootfs和data分区,需要制做特定的更新包,并启动进入Recovery系统才可以更新。

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

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


U-Boot方式

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

更新U-Boot的命令如下:

update uboot mmc 0 1 u-boot.imx

更新Recovery的命令如下:

update recovery mmc 0 1 recovery.ubifs


Recovery方式

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

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

./mkupdate_package i2s6uby2-nand-i2som-image-core
sw-description
core-image-base-i2c6ulxbn-20190629105449.boot.ubifs
core-image-base-i2c6ulxbn-20190629105449.rootfs.ubifs
147066 blocks

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

将制做好的更新包文件复制到已格式化为VFAT分区格式的的SD卡内。下面是开发板上的更新操作:

1.插入SD卡

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

setenv mtdbootpart recovery
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方式

更新步骤

当i2S-6UB核心板上的NAND Flash没有任务程序时,可以使用SD更新方式,烧写入U-Boot和Recovery系统。

1.将更新文件sdcard.gz写入MicroSD卡

Linux用户:

/dev/sdd为MicroSD的设备。

gzip -dc i2s6ub-update-ddr256-nand256-20180421120404.rootfs.sdcard.gz | sudo dd of=/dev/sdd conv=fsync

Windows用户:


2.插入MicroSD至开发板MicroSD卡槽,并切换BootDev Switch为SD启动方式,上电后CPU会自动从SD卡启动并烧写U-Boot和Recovery至i2S-6UB的NAND Flash存储器上。更新成功后D17灯常亮。


制做SD更新镜像

如果对U-Boot或Recovery系统有定制修改后,可以重新制做SD的更新文件sdcard.gz。以更新i2S-6UB NAND为例。需要先把Yocto下编译好的boot.ubifs, rootfs.ubifs, recovery.ubifs和uboot文件准备好。

mkdir i2s6uby2-ddr256m-nand256m-core
cd i2s6uby2-ddr256m-nand256m-core
cp ../*.boot.ubifs .
cp ../*.rootfs.ubifs .
cp ../*.recovery.ubifs .
cp ../u-boot-nand-1.0-r0.imx .


然后编写Manifest文件

vi Manifest
ddr_size="256"
flash_size="256"
bootloader_img="u-boot-nand-1.0-r0.imx"
linux_img="core-image-base-i2c6ulxbn-20190629105449.boot.ubifs"
recovery_img="core-image-base-i2c6ulxbn-20190629105449.recovery.ubifs"
rootfs_img="core-image-base-i2c6ulxbn-20190629105449.rootfs.ubifs"


然后在开始制作SD更新的镜像包

sudo ./build-sdcard -flash nand -som i2s6uby2 -target-dir i2s6uby2-ddr256m-nand256m-core
Target image dir : i2s6uby2-ddr256m-nand256m-core/
Flash Type : nand
Debug : false
Output file : i2s6uby2-ddr256nand256-20180513231157.sdcard
SDCard image size : 622592 Byte
Model:  (file)
Disk /home/build/i2S6UB-BuildUpdateSDImage/i2s6uby2-ddr256nand256-20180513231157.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-ddr256nand256-20180513231157.sdcard.gz


  • -flash表示存储的类型
  • -som表示模块的类型
  • -target-dir 表示更新的目录


运行完后,会生成i2s6uby2-ddr256nand256-20180513231157.sdcard.gz文件。

  • No labels
Write a comment…