RK3568如何进行OTA升级

原创 2023-04-11 08:59:00 ota ota升级 rk3568

 OTA是一种可以无损失升级系统的方式,可以犹如天降神兵一般地将新功能远程部署到产品上。我们可以通过网络自动下载OTA升级包,也可以通过下载OTA升级包到SD卡或U盘后再对设备升级。本文将通过飞凌嵌入式OK3568-C开发板介绍OTA升级流程,本地升级程序recovery执行升级的流程及技术细节。       

RK3568开发板OTA升级

一、制作recovery.img

recovery相关的源码路径:buildroot/output/OK3568-recovery/build/recovery-develop

如果有修改过以上目录的源码文件,则需要执行以下操作:

1. forlinx@ubuntu:~/OK3568-linux-source$ source envsetup.sh

2. 选择某一平台的 recovery 配置,输入96

3. forlinx@ubuntu:~/OK3568-linux-source$ make recovery-dirclean && make recovery  #清除编译产物重新编译

4. forlinx@ubuntu:~/OK3568-linux-source$ make rkupdate-dirclean && make rkupdate  #清除编译产物重新编译

如果没有修改过上述目录的源码文件,则直接执行以下操作:

1. forlinx@ubuntu:~/OK3568-linux-source$ ./build.sh recovery  #编译生成recovery.img

2. forlinx@ubuntu:~/OK3568-linux-source$ ./mkfirmware.sh 

 #将生成的固件拷贝至 rockdev/目录下

烧写/OK3568-linux-source/buildroot/output/OK3568-recovery/images/recovery.img文件。

点击设备分区表,勾选9,选择recovery路径,点击执行。

rk3568设备分区表

二、制作升级镜像

如何验证是否升级成功了呢?我们要先对boot.img文件有一个初步了解,boot.img文件存放有设备树和内核,我们只要对设备树或者内核进行适当的修改即可。本例程以更新boot.img文件为例,对设备树进行了适当修改。

修改 /OK3568-linux-source/kernel/arch/arm64/boot/dts/rockchip/OK3568-C-common.dtsi设备树文件,对forlinx_control节点做如下修改。默认只打开HDMI输出,将MIPI和LVDS输出关闭。

只打开HDMI输出

修改/OK3568-linux-source/tools/linux/Linux_Pack_Firmware/rockdev/package-file文件,根据需求修改该文件,本例程以更新boot.img为例,所以将其他.img文件注释掉。用户可以根据产品更新需求对该文件进行调整。

修改boot.img

本例程以修改设备树显示为例,修改完设备树后,重新编译内核。

例程步骤

三、升级操作

1、SD卡或U盘升级

将SD卡或U盘默认挂载到OK3568-C开发板的/run/media目录下。将update.img镜像文件拷贝到OK3568-C开发板的/userdata目录下,重启开发板后系统将检测该目录下的升级包自动升级。

2、FTP服务器升级

开发板端执行如下命令,将服务器的升级包文件拷贝到RK3568开发板进行升级。

rk3568开发板端执行命令

下载完成以后使用以下命令进行升级:

update ota /userdata/update.img

升级过程中设备将会进入recovery模式,并进行自动升级,升级成功后会进入到正常normal系统。

验证测试结果

将OK3568-C开发板上电,串口终端按住空格键,会进入uboot选屏界面。

烧写默认出厂镜像文件现象:默认是开启HDMI、MIPI和LVDS三个输出。

默认现象

烧写升级包镜像文件后现象:只有HDMI显示开启,其他的两个输出被关闭。

ota升级后现象

注意事项

打包update.img固件时需要注意,升级固件可以全分区打包,也可以部分升级,可修改package-file文件,将不要升级的分区去掉,这样可以减少升级包(update.img)的大小。

package-file中recovery.img如果打包进去的话,不会在Recovery模式中升级,为了预防升级recovery.img过程中掉电导致后面其他分区无法正常升级的问题,该分区升级放在normal系统下升级,执行update命令时会先检测update.img升级包中是否有打包recovery.img,若有则升级recovery分区,再进入Recovery模式升级其他分区固件。

misc分区不建议打包进update.img中,即使有打包进去,在升级程序中加载判断到后也会忽略该分区,即使升级了misc分区,升级成功后recovery程序仍会清空misc分区中所有的命令及参数,从而导致达不到预想的结果。

如果将update.img升级包放置在flash中的userdata分区,则需要保证package-file中不包括userdata.img被打包进去,原因是可能会导致文件系统的损坏,升级成功后可能使oem或userdata分区mount不成功。若从SD卡或U盘升级时,可以打包userdata.img,从而对userdata分区进行升级。升级完成后会对userdata分区重新resize操作。


相关产品 >

  • FET3568-C核心板

    RK3568性能强而稳 国产芯|飞凌嵌入式RK3568系列核心板,采用瑞芯微国产高性能AI处理器RK3568设计生产,RK3568兼具CPU、GPU、NPU、VPU于一身,RK3568 性能、性价比在同类产品中具有较高优势,RK3568处理器是一款定位中高端的通用型SoC, 飞凌RK3568核心板主要面向工业互联网、HMI、NVR存储、车载中控、工业网关等领域。目前RK3568系列已经批量稳定出货

    了解详情
    FET3568-C核心板
  • OK3568-C开发板

    强而稳,国产芯,1Tops算力,多路高速接口|飞凌RK3568系列RK3568开发板基于国产工业级AI处理器RK3568四核64位Cortex-A55 处理器设计。RK3568作为国产化高性能处理器,瑞芯微RK3568芯片是一款定位中高端的通用型SoC,瑞芯微RK3568芯片是一款定位中高端的通用型SoC,NPU达到1Tops,飞凌RK3568系列核心板提供瑞芯微RK3568规格书_datasheet_数据手册_原理图等,


    了解详情
    OK3568-C开发板

推荐阅读 换一批 换一批