Rockchip平台 远程OTA服务搭建

news2024/11/17 15:39:58

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 tomcat

docker pull tomcat:7.0

docker 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_ygld
    
    PRODUCT_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.coloradmin.cn/o/1083082.html

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

相关文章

使用Cpolar内网穿透技术实现远程访问内网BUG管理系统

文章目录 前言1. 本地安装配置BUG管理系统2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射本地服务3. 测试公网远程访问4. 配置固定二级子域名4.1 保留一个二级子域名5.1 配置二级子域名6. 使用固定二级子域名远程 前言 BUG管理软件,作为软件测试工程师的必备工具之一。在…

利用人工智能做射击游戏辅助(二)AlphaPose环境配置

一、anaconda安装 官网地址:Free Download | AnacondaAnacondas open-source Distribution is the easiest way to perform Python/R data science and machine learning on a single machine.https://www.anaconda.com/download 下载之后下一步就可以&#xff0c…

BCDD-A03-21-L3、BCDD-A02-33-L1比例方向阀控制器

BCDD-A02-31-L1、BCDD-A02-33-L3、BCDD-A02-21-S5、BCDD-A02-23-D5、BCDD-A03-31-L5、BCDD-A03-33-L1、BCDD-A03-21-L3、BCDD-A03-23-S5是直动式比例换向阀,通过比例电磁铁直接驱动阀芯工作。此类阀工作时是通过电子放大器提供比例电磁铁的驱动电流,比例…

哈夫曼树及哈夫曼编码详解及代码实现[C/C++]

文章目录 哈夫曼树及哈夫曼编码哈夫曼树的定义与原理引例路径长度定义 带权路径长度哈夫曼树哈夫曼树的构造方法构造方法示例 哈夫曼树的代码实现哈夫曼树的结点定义哈夫曼树的构造 哈夫曼编码哈夫曼编码方式哈夫曼编码解码的准确性 哈夫曼编码的代码实现运行示例 哈夫曼树及哈…

Android绑定式服务

Github:https://github.com/MADMAX110/Odometer 启动式服务对于后台操作很合适,不过需要一个更有交互性的服务。 接下来构建这样一个应用: 1、创建一个绑定式服务的基本版本,名为OdometerService 我们要为它增加一个方法getDistance()&#x…

PDF编辑软件哪个好用?PDF文档怎么编辑修改内容

在生活中,为了方便文件传输,会将文件扫描或转换成PDF格式,但是如果需要编辑修改会比较麻烦,这时一款好用的PDF编辑器显得十分重要。今天就带大家了解下PDF编辑软件哪个好用,PDF文档怎么编辑修改内容。 一、PDF编辑软件…

【Android 从入门到出门】第一章:Android开发技能入门指南

🤵‍♂️ 个人主页:艾迦洼的个人主页 ✍🏻作者简介:后端程序猿 😄 希望大家多多支持,如果文章对你有帮助的话,欢迎 💬👍🏻📂 目录 👋第…

C#(Csharp)我的基础教程(三)(我的菜鸟教程笔记)-控件对象与窗体容器集合(Control)的探究与学习

目录 1、窗体类(主代码文件窗体设计器后台代码文件)2、控件对象与窗体容器集合(Control) 1、窗体类(主代码文件窗体设计器后台代码文件) 主窗体对象的创建:在Program类里面: Appli…

Windows操作系统登录双因素认证解决方案 安当加密

实现Windows操作系统登录双因素认证,可以通过安当ASP身份认证平台进行设置。安当ASP身份认证平台提供了多种双因素认证方式,包括USB Key ID、OTP(动态口令)等,可以灵活选择和配置。 以下是使用安当ASP身份认证平台的US…

2023 家电行业品牌社媒营销洞察报告

过去三年的疫情,给人们的生活和消费方式都带来了极大的改变。直播电商、社交电商的兴起,也带动了传统线下家电零售商向线上渠道发展,传统大家电“重获新生”,新兴小家电“冉冉升起”,成为了业绩增长的新引擎。 2023年&…

c++视觉处理---拉普拉斯金字塔和高斯金字塔

拉普拉斯金字塔和高斯金字塔 拉普拉斯金字塔(Laplacian Pyramid)和高斯金字塔(Gaussian Pyramid)是两种不同类型的图像金字塔,用于多尺度图像处理和特征提取。它们之间的主要区别在于它们所包含的信息和用途&#xff…

ROS仿真软件Turtlebot-Gazebo的安装使用以及错误处理[机器人避障]

很多时候由于机器人价格比较贵,而且会因为环境因素、操作失误或者摔坏等,所以我们可以先在仿真软件上做测试,也可以避免这些问题,虽然没有那么真实感,可毕竟是免费的嘛。我们可以在这些仿真的机器人身上去学习如何控制…

格式化硬盘时提示“此驱动器正在使用”解决占用问题

Windows 11 或 Windows 10 的大多数问题都有一个很好的解决方案——格式化系统驱动器并重新安装 Windows。或者有时,我们可能只想擦除数据驱动器上的所有文件和文件夹,例如。D 盘、E 盘等。为此,我们只需右键单击 Windows 文件资源管理器的 P…

深度学习batch、batch_size、epoch、iteration以及小样本中episode、support set、query set关系

batch、batch_size、epoch、iteration关系: epoch:整个数据集 batch: 整个数据集分成多少小块进行训练 batch_size: 一次训练(1 batch)需要 batch_size个样本 iteration: 整个数据集需要用b…

深度学习简述

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据…

MT8390(Genio 700)安卓核心板参数_联发科MTK智能模组

MT8390安卓核心板是一款功能强大且高度集成的平台,专为广泛的人工智能(AI)和物联网(IoT)应用案例而设计。它具备高性能边缘处理、先进的多媒体和连接能力、多个高分辨率摄像头、连接的触摸屏显示以及多任务高级操作系统的使用。 MT8390安卓核心板采用了高性能的八核…

保护互联网数据安全:关键方法与最佳实践

在当今数字化时代,互联网数据安全已经成为个人、企业和组织的首要任务之一。随着信息技术的迅猛发展,网络威胁也不断演进,因此保护互联网数据安全变得尤为关键。本文将介绍一些关键方法和最佳实践,帮助您确保互联网数据的安全性。…

从零学算法(LCR 187. 破冰游戏)

社团共有 num 为成员参与破冰游戏,编号为 0 ~ num-1。成员们按照编号顺序围绕圆桌而坐。社长抽取一个数字 target,从 0 号成员起开始计数,排在第 target 位的成员离开圆桌,且成员离开后从下一个成员开始计数。请返回游戏结束时最后…

第五节 C++ 循环结构(算法)

文章目录 前言介绍1. for 语句1.1 语法结构1.2 语法流程的执行过程1.2.1 案例 1:循环的正序输入和倒序输入1.2.2 案例2 : 求1~n的平方数1.2.3 案例 3: 求输入a和b,求a~b区间数. 1.3 for 循环案例练习1.3.1 求最大值与最小值1.3.2 计算奇数和和偶数和1.3.3 计算平均气温与最高气…

day03_if_循环

今日内容 1.if.elseif 2.循环 3.控制关键词 复习 一 运算符算术,赋值,关系,逻辑,三目!,非,取反的作用boolean r !true; //falseboolean r2 !(1 > 0);// false 二 键盘录入1) 导包 import java.util.Scanner;2) 创建扫描器 Scanner scanner new Scanner(System.in);3) 调…