Rockchip平台 远程OTA服务搭建

Rockchip平台 远程OTA服务搭建

1. 概述

远程OTA升级服务是一种通过互联网远程更新Rockchip设备的固件和软件的方法。这种服务对于确保设备安全性、修复错误和添加新功能非常重要。

本文档将引导您完成在Rockchip平台上搭建远程OTA升级服务的过程。

在阅读本文的前,建议优先参考RK官方ota搭建文档:
在这里插入图片描述
2. 准备工作

在开始之前,请确保您已经准备好以下工作:

  • 一台运行Linux的服务器
  • Rockchip设备
  • Rockchip设备的OTA升级固件文件
  • 一个可用的互联网域名或IP地址

3. 构建OTA服务器

官方文档提及需要在ubuntu系统下安装必要的软件,包括:

  • Apache HTTP环境
  • tomcat环境
  • jdk环境

本文通过Docker的方式实现搭建ota后台服务,因此跟官方文档有一点出入,原因是无需手动安装环境。

3.1 安装Docker hub中的 tomcat镜像

首先安装Docker,您可以按照以下步骤进行操作:

步骤 1:更新系统

首先,确保您的系统已更新到最新的软件包。打开终端并运行以下命令:

bash

sudo apt update
sudo apt upgrade
步骤 2:安装依赖软件包

安装一些必要的软件包,以便后续安装过程中的依赖项得到满足:

bash

sudo apt install apt-transport-https ca-certificates curl software-properties-common
步骤 3:添加Docker官方仓库的GPG密钥

Docker官方仓库使用GPG密钥进行验证。使用以下命令添加它:

bash

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
步骤 4:添加Docker APT仓库

添加Docker APT仓库,以便您可以从官方仓库安装Docker软件包:

bash

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
步骤 5:安装Docker Engine

更新APT软件包索引并安装Docker Engine:

bash

sudo apt update
sudo apt install docker-ce
步骤 6:启动并启用Docker服务

启动Docker服务并将其设置为开机自启动:

bash

sudo systemctl start docker
sudo systemctl enable docker
步骤 7:验证安装

运行以下命令以验证Docker是否已成功安装:

bash

sudo docker --version

您将看到Docker版本信息,表示安装成功。

步骤 8:下载和运行tomcat镜像

在docker官方的镜像仓库docker hub中搜索tomcat的容器镜像,注意:官方ota服务代码使用的tomcat版本是7

bash

docker search tomcatdocker pull tomcat:7.0docker run -d -p 8080:8080 --name tomcatota tomcat:7.0
-d :就是以后台运行方式运行  也可以 -t :以交互式运行
-p :暴露端口号第一个8080是暴露linux 的端口号
--name:给容器取名
tomcat:7.0:运行时加上版本,指定是这个服务器

在此可以在web测试ip:8080是否能正常访问tomcat了,如果无法打开网页检查网络和端口是否正常

3.3 拷贝rk ota服务到docker

把rk提供的ota服务:OtaUpdater 拷贝到docker中:/usr/local/tomcat/webapps


最后重启docker,OtaUpdater 服务会自动运行。

至于端口号是否修改,看个人需求,端口修改为2300如下:/usr/local/tomcat# vi ./conf/server.xml
在这里插入图片描述

3.4 服务器OTA包配置

参考官方文档,这里在做讲解:

  • 设备名称和版本号在源码中定义:
    device/rockchip/rk3588/rk3588_s/rk3588_s.mk

    PRODUCT_MODEL := rk3588_ygldPRODUCT_PROPERTY_OVERRIDES += \
    ro.product.version = 23.10.8
    
  • 配置远程服务器地址:device/rockchip/rk3588/device.mk

    PRODUCT_PROPERTY_OVERRIDES += \ro.product.ota.host = 186.133.115.104:2300 \ro.vendor.sdkversion = $(CURRENT_SDK_VERSION) \vendor.gralloc.disable_afbc = 0
    
  • 把升级包上传到指定的路径,即docker中的:/usr/local/tomcat/webapps/OtaUpdater/WEB-INF/packages
    注意根据manifast.xml中的路径对应。
    在这里插入图片描述
    如上配置后,设备端请求服务器,查找服务器中的版本号是否和设备端的一致,如果配置了package路径,那么就去下载23.10.10的升级包。

4. 设备端OTA升级配置

  • 设备端上电,连接网络后会自动去查询远程ota服务器,无需手动操作。等待桌面弹出升级提示框。

5. 测试

在您的Rockchip设备上测试OTA升级功能。确保设备可以成功从服务器下载和安装新版本的固件。

一旦您确认OTA升级功能正常工作,您可以将其部署到生产环境中的所有设备。

服务器中的log位置:/usr/local/tomcat/mylogs# cat otaupdater
在这里插入图片描述
修改源码中的版本号:要将 out/target/product/rk29sdk/system/build.prop 删除再 make 改变才能生效,或者 make clean 后再 make

6. 安全性和最佳实践

在构建OTA升级服务时,请务必考虑安全性问题。以下是一些最佳实践:

  • 使用HTTPS来加密通信,以确保OTA升级文件的安全传输。
  • 对OTA升级服务器进行身份验证和授权,以防止未经授权的访问。
  • 定期审查服务器上的OTA升级日志,以监控升级活动并检测潜在问题。

7. 总结

搭建Rockchip平台上的远程OTA升级服务是确保设备安全和性能的关键步骤。通过遵循本文档中的步骤,您可以轻松实现OTA升级功能,并确保您的Rockchip设备始终保持最新的固件和软件版本

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

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

相关文章

Vue3新的状态管理库-Pinia(保姆级别教程)

目录 1.什么是Pinia2.为什么使用Pinia3.创建项目4.检查Pinia的安装版本5.main.js引入Pinia6.定义Store-组合式API写法(推荐)7.getters的实现8.action的异步实现9.storeToRefs 1.什么是Pinia Pinia是Vue的专属的最新状态管理库, 是Vuex状态管理工具的替代品 vue.js官网 https:…

L14D6内核模块编译方法

一、内核模块基础代码解析 一个内核模块代码错误仍然会导致的内核崩溃。 GPL协议:开源规定,使用内核一些函数需要 1、单内核的缺点 单内核扩展性差的缺点减小内核镜像文件体积,一定程度上节省内存资源提高开发效率不能彻底解决稳定性低的缺…

【新品发布】四核A53超高性价比!RK3562系列核心板及开发板震撼上市

RK3562系列产品采用 Rockchip 新一代 64 位处理器 RK3562(Quad-core ARM Cortex-A53,主频最高 2.0GHz),最大支持 8GB 内存;内置独立的 NPU,可用于轻量级人工智能应用,RK3562 拥有 PCIE2.1 / USB…

图文验证码怎么测试及自动化测试怎么解决验证码问题?

前言 在对安全性有要求的软件(系统)中都存在验证码,那我们应该怎么进行测试呢,在自动化测试中又该怎么通过验证码使自动化顺利进行下去呢? 首先,来简单认识下验证码 测试验证码,首先我们应当…

Docker私有仓库打开2375端口(linux)

前言 在我们开发测试过程中,需要频繁的更新docker镜像,然而默认情况下,docker的2375端口是关闭的,下面介绍如何打开端口。 1、打开步骤 1.1、修改配置 登录docker所在服务器,修改docker.service文件 vi /usr/lib/sys…

如何正确高效使用墨西哥专线?

在当今全球化的物流行业中,跨境运输服务已经成为许多企业拓展国际市场的重要手段。然而,由于各国法律法规、文化差异以及运输环节的复杂性,企业在进行跨境运输时可能会遇到诸多挑战。为了解决这些问题,一些专业的物流公司推出了“…

SpringBoot Redis 基础使用

redis是一个key-value。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。 Redis能做什么: 1. 缓存,毫无疑问这…

Centos中清除因程序异常终止,导致的残留的Cache/buff_drop_caches命令---linux工作笔记063

我这里因为nifi程序背压设置的不合理,导致,内存和CPU消耗过高,系统崩溃,但是重启NIFI以后,发现 对应的执行top命令,看到,系统的buff/cache 依然没有减少,说明内存被浪费了,残留在这里没有被回收. 用这个办法执行这个命令; linux会自动触发清理,但是只有在内存不够用的时候才会…

【AN-Animate教程——熟悉工作区】

【AN-Animate教程——熟悉工作区】 初始页面创建舞台主舞台界面其他常用板块 本篇内容:Animate用途 重点内容:熟悉工作区,以及基本操作 工 具:Adobe Animate 2022 初始页面 在初始页面当中,我们可以看到一个忍者和一个…

Mainflux IoT:Go语言轻量级开源物联网平台,支持HTTP、MQTT、WebSocket、CoAP协议

Mainflux是一个由法国的创业公司开发并维护的安全、可扩展的开源物联网平台,使用 Go语言开发、采用微服务的框架。Mainflux支持多种接入设备,包括设备、用户、APP;支持多种协议,包括HTTP、MQTT、WebSocket、CoAP,并支持…

Redis根据中心点坐标和半径筛选符合的数据

目录 1.启动Redis​编辑 2.导入maven依赖 3.添加redis配置 4.编写RedisService 5.使用 6.验证 1.启动Redis 2.导入maven依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifac…

pnpm、npm、yarn 包管理工具『优劣对比』及『环境迁移』

前言 博主在开发前端网站的时候&#xff0c;发现随着开发的项目的逐渐增多&#xff0c;安装的依赖包越来越臃肿&#xff0c;依赖包的安装速度也是非常越来越慢&#xff0c;多项目开发管理也是比较麻烦。之前我就了解过 pnpm&#xff0c;但是当时担心更换包管理环境可能会出现的…

[modern c++] 函数式编程与 std::ref

参考&#xff1a; std::ref, std::cref - cppreference.comhttps://en.cppreference.com/w/cpp/utility/functional/ref 正文&#xff1a; 如果不涉及函数式编程&#xff0c;那么基本上不需要使用到 std::ref &#xff0c; 这个功能式是用来解决函数式编程时入参只能进行值传…

使用poi-tl循环导出word报表

先看模板和导出的效果 模板 效果 根据模板循环生成表格&#xff0c;每个表格再循环填充数据&#xff0c;也就是两层循环&#xff0c;第一层循环是学生学期信息&#xff0c;第二层循环是学生的成绩数据。 第一个循环 {{?listTable}} {{/}}第二个循环 {{reportList}} 表格…

电脑图片jpeg怎么转jpg格式?jpeg和jpg的转换方法

很多平台对上传的图片格式都有严格的要求&#xff0c;当我们遇到图片格式不对的时候&#xff0c;就需要改图片格式了&#xff0c;下面以jpeg转jpg&#xff08;在线图片格式转换器&#xff08;jpg、png、gif、webp、bmp、tiff&#xff09;-压缩图&#xff09;为例子&#xff0c;…

SpringBoot项目整合

一、创建项目 IDEA中采用spring initialzer...创建&#xff0c;jdk选择8&#xff0c;maven,jar。。。springboot版本2.5.0&#xff08;稳定&#xff09; 项目依赖&#xff1a; 二、项目结构&#xff1a; 原始pom.xml文件 <?xml version"1.0" encoding"UT…

tcpdump(五)命令行参数讲解(四)

一 案例讲解 tcpdump官方参考文档 最全的tcpdump手册 强调&#xff1a; -nn 选项一般是must 必选 ① 现场分析并保留现场信息 tcpdump -l | tee dat 使用tee来把tcpdump的输出同时放到文件dat和标准输出中场景&#xff1a; 自己现场分析同时把现场信息保留下来 ② …

朋友圈一键转发(可修改文案),无需多个账号复制粘贴

相信很多人手上都有不止一个微信&#xff0c;每次发个朋友圈都要在多个账号切换&#xff0c;重复发送&#xff0c;好不麻烦。而一些朋友想要一键跟随转发朋友圈&#xff0c;却总是需要一个个复制粘贴&#xff0c;麻烦而且容易漏发。 那实现朋友圈一键跟随转发&#xff0c;无需多…

wifi管理软件 WiFi Signal mac中文介绍

WiFi Signal mac是一款WiFi信号强度监测工具&#xff0c;它可以帮助用户实时监测WiFi信号的强度、频率、噪声等信息&#xff0c;并提供详细的图表和统计数据。 WiFi Signal可以自动扫描附近的WiFi网络&#xff0c;并显示它们的信号强度和频率。用户可以通过WiFi Signal来找到最…

ES知识点全面整理

● 我们从很多年前就知道 ES6, 也就是官方发布的 ES2015 ● 从 2015 年开始, 官方觉得大家命名太乱了, 所以决定以年份命名 ● 但是大家还是习惯了叫做 ES6, 不过这不重要 ● 重要的是, ES6 关注的人非常多, 大家也会主动去关注 ● 但是从 2016 年以后, 每年官方都会出现新…