• 正文
  • 相关推荐
申请入驻 产业图谱

RK3568开发板OTA升级

03/24 09:55
524
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

​​OTA(Over-The-Air)升级作为一种无损失的系统升级方式,能够远程将新功能部署到产品上,极大地提高了设备的可维护性和可扩展性。除了通过网络直接下载OTA升级包外,我们还可以通过将升级包下载到SD卡或U盘后,再对设备进行本地升级。

本文将基于飞凌嵌入式RK3568开发板,详细介绍OTA升级的流程,特别是本地升级程序recovery的执行流程及技术细节。

1、制作recovery.img

首先,我们需要制作recovery镜像。recovery相关的源码位于buildroot/output/OK3568-recovery/build/recovery-develop目录下。

源码修改与编译

  • 如果修改过该目录下的源码文件,需要执行以下操作:
    1. 进入源码目录:forlinx@ubuntu:~/OK3568-linux-source$ source envsetup.sh
    2. 选择某一平台的recovery配置,输入96(具体数字可能因平台而异)。
    3. 清除编译产物并重新编译recovery:forlinx@ubuntu:~/OK3568-linux-source$ make recovery-dirclean && make recovery
    4. 清除rkupdate编译产物并重新编译:forlinx@ubuntu:~/OK3568-linux-source$ make rkupdate-dirclean && make rkupdate
  • 如果没有修改过源码文件,则直接执行以下操作:
    1. 编译生成recovery.img:forlinx@ubuntu:~/OK3568-linux-source$ ./build.sh recovery
    2. 将生成的固件拷贝至rockdev/目录下:forlinx@ubuntu:~/OK3568-linux-source$ ./mkfirmware.sh

烧写recovery.img

将生成的recovery.img文件烧写到设备的指定分区。具体操作通常是通过设备分区表,勾选对应的recovery分区(如分区9),选择recovery.img路径,然后点击执行烧写操作。

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

2、制作recovery.img制作升级镜像

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

修改设备树文件:

/OK3568-linux-source/kernel/arch/arm64/boot/dts/rockchip/OK3568-C-common.dtsi,

对forlinx_control节点做如下修改。默认只打开HDMI输出,将MIPILVDS输出关闭。

/ {
   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";
       };

修改文件:

/OK3568-linux-source/tools/linux/Linux_Pack_Firmware/rockdev/package-file

根据需求修改该文件,本例程以更新boot.img为例,所以将其他.img文件注释掉。用户可以根据产品更新需求对该文件进行调整。

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

3、升级操作

SD卡或U盘升级

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

FTP服务器升级

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

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

update ota /userdata/update.img

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

4、验证测试结果

将OK3568-C开发板上电,串口终端按住空格键,会进入uboot选屏界面。烧写默认出厂镜像文件现象:默认是开启HDMI、MIPI和LVDS三个输出。

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

5、注意事项

打包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操作。

至此,OTA升级的全部流程讲解完毕,用户可以先按照该文章操作进行试验,熟悉本文章操作后,就可以对uboot,内核或者文件系统进行修改,通过OTA方式远程升级用户产品,从而修复产品中的BUG,更加方便地进行产品优化,更新迭代。

飞凌嵌入式

飞凌嵌入式

保定飞凌嵌入式技术有限公司,创建于2006年,是一家专注嵌入式核心控制系统研发、设计和生产的高新技术企业,是国内较早专业从事嵌入式技术的企业之一。 经过十几年的发展与积累,公司拥有业内优秀的软硬件研发团队,在北京及保定建立两大研发基地,在苏州、深圳设有华东、华南技术服务中心,并在北美、欧洲以及亚太等其他国家和地区拥有国际业务网络。公司研发的智能设备核心平台广泛应用于物联网、工控、轨道交通、医疗、电力、商业电子、智能家居、安防、机器人、环境监测等诸多领域。

保定飞凌嵌入式技术有限公司,创建于2006年,是一家专注嵌入式核心控制系统研发、设计和生产的高新技术企业,是国内较早专业从事嵌入式技术的企业之一。 经过十几年的发展与积累,公司拥有业内优秀的软硬件研发团队,在北京及保定建立两大研发基地,在苏州、深圳设有华东、华南技术服务中心,并在北美、欧洲以及亚太等其他国家和地区拥有国际业务网络。公司研发的智能设备核心平台广泛应用于物联网、工控、轨道交通、医疗、电力、商业电子、智能家居、安防、机器人、环境监测等诸多领域。收起

查看更多
点赞
收藏
评论
分享
加入交流群
举报

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录

秉承专业态度,专注智能设备核心平台研发与制造,以技术研发创新为主导,以客户实用化,产品化为目标,把握嵌入式行业的前沿发展需求,利用核心技术为客户提供稳定、可靠、功能优异的高品质产品。合作联系:17713286011