RK3568开发板OTA升级
发布时间:2025-3-31 15:40
发布者:秦彻呀呀呀
OTA(Over-The-Air)升级作为一种无损失的系统升级方式,能够远程将新功能部署到产品上,极大地提高了设备的可维护性和可扩展性。除了通过网络直接下载OTA升级包外,我们还可以通过将升级包下载到SD卡或U盘后,再对设备进行本地升级。 本文将基于飞凌嵌入式RK3568开发板,详细介绍OTA升级的流程,特别是本地升级程序recovery的执行流程及技术细节。 一、制作recovery.img 首先,我们需要制作recovery镜像。recovery相关的源码位于buildroot/output/OK3568-recovery/build/recovery-develop目录下。 源码修改与编译
烧写recovery.img 将生成的recovery.img文件烧写到设备的指定分区。具体操作通常是通过设备分区表,勾选对应的recovery分区(如分区9),选择recovery.img路径,然后点击执行烧写操作。 ![]() 为了验证升级是否成功,我们需要对boot.img文件进行修改。boot.img文件存放有设备树和内核,我们可以通过修改设备树来实现升级效果。 修改设备树文件 修改/OK3568-linux-source/kernel/arch/arm64/boot/dts/rockchip/OK3568-C-common.dtsi文件,对forlinx_control节点进行如下修改,以默认只打开HDMI输出,关闭MIPI和LVDS输出: / { model =“Forlinx OK3568-C Board"; compatible ="forlinx,ok3568","rockchip,rk3568-evb1-ddr4-V10","rockchip,rk3568"; forlinx control { status ="okay"; video-hdmi ="hdmi"; video-mipi-edp ="off"; video-lvds-rgb ="off"; };修改package-file文件 根据升级需求修改/OK3568-linux-source/tools/linux/Linux_Pack_Firmware/rockdev/package-file文件。 本例中以更新boot.img为例,所以将其他.img文件注释掉。用户可以根据实际产品更新需求对该文件进行调整。 ![]() 重新编译内核 修改完设备树后,需要重新编译内核以生成新的boot.img文件。 ![]() SD卡或U盘升级 将SD卡或U盘默认挂载到RK3568开发板的/run/media目录下。将update.img镜像文件拷贝到开发板的/userdata目录下。重启开发板后,系统将自动检测该目录下的升级包并进行升级。 FTP服务器升级 在RK3568开发板端执行相应命令,将FTP服务器上的升级包文件拷贝到开发板进行升级。 下载完成后,使用update ota /userdata/update.img命令进行升级。 升级过程中设备将会进入recovery模式,并进行自动升级。升级成功后,设备将进入正常系统(normal系统)。 ![]() 烧写默认出厂镜像文件 将RK3568开发板上电,串口终端按住空格键进入uboot选屏界面。烧写默认出厂镜像文件后,观察现象:默认开启HDMI、MIPI和LVDS三个输出。 ![]() 烧写升级包镜像文件 烧写升级包镜像文件后,观察现象:只有HDMI显示开启,其他两个输出被关闭。这验证了升级操作的成功性。 ![]() 打包update.img固件
misc分区
userdata分区
通过以上步骤和注意事项,我们可以成功地在OK3568-C开发板上实现OTA升级操作,并验证升级效果。希望本文能够对大家在OTA升级方面的项目开发有所帮助。 |
网友评论