• 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
    
    • 1
    • 2
    步骤 2:安装依赖软件包

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

    bash

    sudo apt install apt-transport-https ca-certificates curl software-properties-common
    
    • 1
    步骤 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
    
    • 1
    步骤 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
    
    • 1
    步骤 5:安装Docker Engine

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

    bash

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

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

    bash

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

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

    bash

    sudo docker --version
    
    • 1

    您将看到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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    -d :就是以后台运行方式运行  也可以 -t :以交互式运行
    -p :暴露端口号第一个8080是暴露linux 的端口号
    --name:给容器取名
    tomcat:7.0:运行时加上版本,指定是这个服务器
    
    • 1
    • 2
    • 3
    • 4

    在此可以在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
      
      • 1
      • 2
      • 3
      • 4
    • 配置远程服务器地址: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
      
      • 1
      • 2
      • 3
      • 4
    • 把升级包上传到指定的路径,即docker中的:/usr/local/tomcat/webapps/OtaUpdater/WEB-INF/packages
      注意根据manifast.xml中的路径对应。
      在这里插入图片描述
      如上配置后,设备端请求服务器,查找服务器中的版本号是否和设备端的一致,如果配置了package路径,那么就去下载23.10.10的升级包。

    4. 设备端OTA升级配置

    • 设备端上电,连接网络后会自动去查询远程ota服务器,无需手动操作。

    5. 测试

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

    连接wifi或者以太网,重启设备后会自动弹出升级框。
    在这里插入图片描述

    一旦您确认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设备始终保持最新的固件和软件版本

  • 相关阅读:
    Linux系统换源
    刷题笔记之七(统计每个月兔子的总数+汽水瓶+查找两个字符串a,b中的最长公共子串+公共子串计算)
    Go channel被关闭时的广播机制,以及遍历未关闭channel时会导致死锁阻塞问题
    leetcode mysql 626. 换座位
    OpenSergo & ShardingSphere 社区共建微服务视角的数据库治理标准
    【Android进阶】8、单 Activity-多 Fragment 的模式 与 Fragment 管理器
    《向量数据库指南》——Milvus Cloud和Elastic Cloud 特性对比
    [附源码]计算机毕业设计springboot海滨学院学生大创项目申报与审批系统
    机器学习 - 平均中位数模式——python
    【SQL刷题】Day12----SQL汇总数据专项练习
  • 原文地址:https://blog.csdn.net/qq_33544860/article/details/133772839