触觉智能RK3506核心板/开发板SDK即将迎来更新,版本为至“rk3506_linux6.1_v1.2.0”。
此次更新优化解决了部分bug、完善了部分适配,内核升级至Linux6.1.118,同时新增支持【OTA升级功能】。下文将为开发者带来详细的RK3506 OTA 升级操作指南。

OTA升级
OTA(Over-the-Air)即空间下载技术。 OTA升级一般是Android、Linux等操作系统提供的标准软件升级⽅式。功能强⼤,可以⽆损失升级系统,主要通过⽹络,例如WiFi、4G/5G下载OTA包升级,也⽀持通过下载OTA包到SD卡/U盘升级。
本⽂主要介绍了使⽤OTA技术升级时,本地升级程序recovery执⾏升级的流程及技术细节,以便⽤⼾在开发过程中了解升级的过程及注意事项。
OTA升级整包固件(完整镜像)
修改以下配置:
BR2_PACKAGE_RECOVERY=y BR2_PACKAGE_RECOVERY_USE_UPDATEENGINE=y BR2_PACKAGE_RECOVERY_UPDATEENGINEBIN=y BR2_PACKAGE_RECOVERY_SUCCESSFUL_BOOT=y BR2_PACKAGE_RECOVERY_NO_UI=y
通过updateEngine的命令帮助查看升级的分区地址:
updateEngine --help

OTA分区地址换算十六进制:
换成16进制即: 0x800000: Upgrade loader 0x400000: Upgrade parameter 0x200000: Upgrade uboot 0x100000: Upgrade trust 0x080000: Upgrade boot 0x040000: Upgrade recovery 0x020000: Upgrade rootfs 0x010000: Upgrade oem 0x008000: Upgrade uboot_a 0x004000: Upgrade uboot_b 0x002000: Upgrade boot_a 0x001000: Upgrade boot_b 0x000800: Upgrade system_a 0x000400: Upgrade system_b 0x000200: Upgrade misc 0x000100: Upgrade userdata
升级前,确认默认固件内核编译时间:

修改内核源码,如打开并保存
kernel-6.1/drivers/input/touchscreen/gt9xx/gt9xx.c(.c文件变更,会使内核编译时间更新),然后重新编译boot,并打包固件。

./build.sh kernel && ./build.sh updateimg
此操作编译生成的update.img模拟更新版本的固件即需要升级的固件,需要拷贝到/userdata/目录下:

执行以下命令升级整包固件:
updateEngine --image_url=/userdata/update.img --update --reboot
升级成功后,系统会自动进行reboot操作:

升级完后查看内核编译时间有更新,证明OTA升级成功:

1.执行完命令后,系统过一段时间会重启进入recovery,这里需要等到再次重启就会进入到系统。
2.OTA升级,需要将需要升级的固件放到/userdata目录。
OTA单独升级内核、文件系统
和升级整包一样,升级前查看内核编译时间:

拷贝要升级固件至对应/userdata/目录下:

执行以下命令,升级boot.img:
updateEngine --image_url=/userdata/update.img --update --reboot --partition=0x80000

升级成功后,系统会自动进行reboot操作。
确认内核时间有更新证明OTA升级内核成功:

拷贝要升级的固件到/userdata/目录下:

升级前在根文件系统,新建一个测试文件:

执行以下命令,升级rootfs.img:
updateEngine --image_url=/userdata/update.img --update --reboot --partition=0x20000

升级成功后,系统会自动进行reboot操作。
升级成功后,前面新建的文件已不在,表示OTA成功。
全部0条评论
快来发表一下你的评论吧 !