栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

[NXP i.MX6ULL] 镜像系统更新OTA

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[NXP i.MX6ULL] 镜像系统更新OTA

前提说明

编译环境:ubuntu 20.04

硬件环境:IMX6ULL NAND

注意有些路径为我自己的本地路径,后期我会完善一些过程。

FLASH分区 分区方案 [ A/B双系统 ]

1. Uboot (6M)

2. OS-1 (111M)

3. OS-2 (111M)

4. User App (28M)

如何操作

1. 在使用MFGTOOL工具烧录系统时,在Bootstrap阶段实现逻辑分区。因此firmware文件夹中的uboot-dtb.imx要有实际的分区信息,信息会通过Comeline传给临时内核。

2. 环境变量中也要有分区信息,并将分区信息通过comeline传给内核

Uboot启动后首先从Flash的环境变量分区中读取内容,如果没有则使用以上默认参数。

3. 内核收到分区信息后,会生成mtd设备

OTA程序 OTA逻辑流程 

向平台上报当前版本信息

1. 上报版本信息

2. 解析反馈指令

获取最新的镜像

1. 下载镜像

2. 校验

更新FLASH

I. 更新Kernel

a. 查看所属分区

cat /proc/mtd

b. 查看分区详细信息

mtdinfo /dev/mtd5

c. 擦除分区

flash_erase /dev/mtd5 0 0

d. 写入分区

Linux flash 操作 | 命令

nandwrite -p /dev/mtd5 -p zImage

II. 更新DTB

a. 擦除分区

flash_erase /dev/mtd6 0 0

 b. 写入分区

nandwrite -p /dev/mtd6 -p 2022zzu.dtb

III. 更新ROOTFS

a. 擦除分区

flash_erase /dev/mtd7 0 0

b. 格式化分区

ubiformat /dev/mtd7

c. 添加UBI

ubiattach /dev/ubi_ctrl -m 7

d. 挂载分区

# 创建一个文件夹
mkdir -p /mnt/mtd7

# 挂载
mount -t ubifs ubi0:rootfs /mnt/mtd7

# 解压
tar -xv rootfs.tar.bz2 -C /mnt/mtd7

# 卸载
umount /mnt/mtd7

更新环境变量
fw_setenv bootargs console=ttymxc0,115200 ubi.mtd=7 root=ubi0:rootfs rootfstype=ubifs mtdparts=gpmi-nand:5m(boot),1m(env),10m(kernel1),1m(dtb1),100m(rootfs1),10m(kernel2),1m(dtb2),100m(rootfs2),-(app)

fw_setenv ker_offset 0x7500000
fw_setenv dtb_offset 0x7F00000

3. 重启

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/845550.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号