飞凌技术帖 | RK3568开发板的OTA升级教程

说起OTA我们应该都不陌生,它是一种可以为设备无损失升级系统的方式,能将新功能远程部署到产品上。我们不仅可以通过网络下载OTA升级包,也可以通过下载OTA升级包到SD卡或U盘后再对设备升级。

本文将通过飞凌嵌入式OK3568-C开发板来为大家介绍OTA升级的流程,本地升级程序recovery执行升级的流程及技术细节。

1. 制作 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路径,点击执行。

wKgaomYmCmqAS_xFAABXO-3B-Xk775.png

2. 制作升级镜像

如何验证是否升级成功了呢?我们要先对boot.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";};

修改文件:

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

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

wKgZomYmCqeATpKOAAEUlJ9669c577.png

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

wKgaomYmCr-AfYuBAAAeMp9aLTk179.png

3.升级操作

SD卡或U盘升级

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

FTP服务器升级

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

wKgaomYmCu6AKxy9AABEw4x9tP4363.png

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

update ota /userdata/update.img

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

4. 验证测试结果

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

wKgaomYmCwuARtb1AAAKH78qOmg124.png

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

wKgaomYmCy6ARZEhAAAJ_IBg4ss976.png

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,更加方便地进行产品优化,更新迭代。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/827830.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在Windows中使用NVM,如何在项目中使用NVM(nvm使用详细,如何使用nvm,使用nvm安装和切换各个nodejs版本)

简介:NVM全称Node Version Manager,是一个用于管理 Node.js 版本的工具,它允许你在同一台计算机上安装和切换多个 Node.js 版本。这对于我们来说特别有用,因为不同的项目可能需要不同版本的 Node.js 来运行。这里来记录一下 NPM &…

爬虫中怎么判断一个网页是否包含ajax请求

1、前言 在用爬虫抓取数据的时候,如果一个网页包含ajax请求,由于数据时动态加载的,直接根据网址是不能获取到想要的数据。因此,在爬虫需要首先判断一个网页是否包含ajax请求数据。 2、ajax请求 2.1 什么是ajax请求 AJAX Asynch…

新版ONENET(2024/4/24)通过view3.0可视化保姆级教程(一学就会)附效果图

⏩ 大家好哇!我是小光,想要成为系统架构师的嵌入式爱好者。 ⏩上一篇是STM32通过ESP8266连接最新版的ONENET,成功将数据上传之后,本篇文章使用ONENET的view3.0可视化对数据进行可视化做一个详细教程。 ⏩感谢你的阅读,…

Java-AQS的原理

文章目录 基本概述1. 设计思想2. 基本实现 一些关键词语以及常用术语,主要如下: 信号量(Semaphore): 是在多线程环境下使用的一种设施,是可以用来保证两个或多个关键代码段不被并发调用,也是作系统用来解决并发中的互斥和同步问题…

SQLAlchemy的使用

SQLAlchemy中filter函数的使用 https://blog.csdn.net/m0_67093160/article/details/133318889

在浏览器输入网址,Enter之后发生了什么?

在浏览器输入网址,Enter之后发生了什么? 很多八股文会给出: 1. DNS Resolution2. Establishing a Connection3. Sending an Http Request4. Receiving the HTTP Response5. Rendering the Web Page 但今天我斗胆插入第0.9步URL Parsing&#…

适用于手机蓝牙的热敏晶体FA1612AS

EPSON推出的一款1612小尺寸无源热敏晶体:FA1612AS。FA1612AS的额定频率为38.4Mhz的晶体单元,采用无铅材料,符合ROHS标准,内置热敏电阻,可用于移动电话,蓝牙等。热敏晶体FA1612AS的产品特性:额定频率:38.4MHZ外部尺寸规…

JS----前端将列表数据转树型数据

前端将列表数据转树型数据 场景:后端返回列表数据,由前端根据业务需求完成树型数据转换, 常用于侧边导航菜单,下拉树型数据项等 export function listToTree(data: []) {var map: any {},tree: any []data.forEach((item: any…

每天五分钟计算机视觉:基于YOLO算法精确分类定位图片中的对象

滑动窗口的卷积的问题 滑动窗口的卷积实现效率很高,但是它依然不能够输出最精准的边界框,比如下面所示: 我们可以看到蓝色框不论在什么位置都不能很好的确定车的位置,有一个算法是YOLO 算法它能够帮助我们解决这个问题。 YOLO 算法 比如我们的输入图像是100*100,我们会…

【OceanBase诊断调优 】—— 如何快速定位SQL问题

作者简介: 花名:洪波,OceanBase 数据库解决方案架构师,目前负责 OceanBase 数据库在各大型互联网公司及企事业单位的落地与技术指导,曾就职于互联网大厂和金融科技公司,主导过多项数据库升级、迁移、国产化…

CSS的网页美化功能

<1>文字类 通常情况下&#xff0c;一般使用span对文字进行重点突出&#xff0c;用div来操作一段代码块。 字体的所有属性&#xff1a; 属性描述font在一个声明中设置所有的字体属性font-family指定文本的字体系列font-size指定文本的字体大小font-style指定文本的字体样…

5-内核开发-/proc File System 学习

5-内核开发-/proc File System 学习 课程简介&#xff1a; Linux内核开发入门是一门旨在帮助学习者从最基本的知识开始学习Linux内核开发的入门课程。该课程旨在为对Linux内核开发感兴趣的初学者提供一个扎实的基础&#xff0c;让他们能够理解和参与到Linux内核的开发过程中。…

经典案例|使用Supabase解决可视化大屏项目的常见问题

敏博科技专业致力于应急管理行业&#xff0c;提供以物联网技术和感知预警算法模型为核心的先进产品和解决方案。应急管理行业的业务非常繁多和复杂&#xff0c;很多时候都需要在短时间内交付出稳定高效的业务系统。如下两张图某市的安全生产监测预警系统 MemFire Cloud应用开…

Redis入门到通关之Redis数据结构-Hash篇

文章目录 ☃️ 概述☃️底层实现☃️源码☃️其他 欢迎来到 请回答1024 的博客 &#x1f353;&#x1f353;&#x1f353;欢迎来到 请回答1024的博客 关于博主&#xff1a; 我是 请回答1024&#xff0c;一个追求数学与计算的边界、时间与空间的平衡&#xff0c;0与1的延伸的后…

模型部署的艺术:让深度学习模型跃入生产现实

模型部署的艺术&#xff1a;让深度学习模型跃入生产现实 1 引言 1.1 部署的意义&#xff1a;为何部署是项目成功的关键 在深度学习项目的生命周期中&#xff0c;模型的部署是其成败的关键之一。通常&#xff0c;一个模型从概念构思、数据收集、训练到优化&#xff0c;最终目的…

电子信息制造工厂5G智能制造数字孪生可视化平台,推进数字化转型

电子信息制造工厂5G智能制造数字孪生可视化平台&#xff0c;推进数字化转型。5G智能制造数字孪生可视化平台利用5G网络的高速、低延迟特性&#xff0c;结合数字孪生技术和可视化界面&#xff0c;为电子信息制造工厂提供了一种全新的生产管理模式。不仅提升生产效率&#xff0c;…

SpringBoot学习之Kafka下载安装和启动【Windows版本】(三十四)

一、配置Java环境变量 打开CMD输入java -version检查java环境变量是否配置正确,如果配置正确在CMD窗口输入java -version应该输出如下: ​ 怎么配置Java环境变量这里我就不赘叙了,网上教程很多,请读者自行搜索操作。 二、下载Kafka 1、Kafka官网地址:Apache Kafka,…

解决DataGrip连接MySQL8时出现时区错误问题

解决办法&#xff1a;在url后面拼接时区参数 ?serverTimezoneAsia/Shanghai

DS进阶:AVL树和红黑树

一、AVL树 1.1 AVL树的概念 二叉搜索树&#xff08;BST&#xff09;虽可以缩短查找的效率&#xff0c;但如果数据有序或接近有序二叉搜索树将退化为单支树&#xff0c;查找元素相当于在顺序表中搜索元素&#xff0c;效率低下。因此&#xff0c;两位俄罗斯的数学家G.M.Adelson-…

easyx库的学习(鼠标信息)

前言 本次博客是作为介绍easyx库的使用&#xff0c;最好是直接代码打到底&#xff0c;然后看效果即可 代码 int main() {initgraph(640, 480, EX_SHOWCONSOLE|EX_DBLCLKS);setbkcolor(RGB(231, 114, 227));cleardevice();//定义消息结构体ExMessage msg { 0 };//获取消息wh…