ARM40-A5应用——ARM40文件的半自动远程更新示例(ARM40-semiauto-OTA)

ARM40-A5应用——ARM40文件的半自动远程更新示例(ARM40-semiauto-OTA)

2018.9.21

  在应用程序升级以后,希望ARM40能够从远程服务器下载并安装新版本的应用程序。
  本文提供一种应用程序的手动远程更新的参考方法。

一、半自动远程更新的步骤

1.1、服务器端文件

  服务器端涉及到的目录和文件如下:

/home/ARM40-A5/ARM40-A5-projects/rdace/APP_20180925/MANAGER			    #目录,存在管理文件
/home/ARM40-A5/ARM40-A5-projects/rdace/APP_20180925/RELEASE			    #目录,存放下载到ARM40的文件
/home/ARM40-A5/ARM40-A5-projects/rdace/APP_20180925/MANAGER/update.sh  	#脚本文件

1.2、ARM40上的操作

  (1)建立/opt/user/ota-dbg.sh文件
  (2)执行/opt/user/ota-dbg.sh
  (3)reboot重启ARM40,检查并测试。

二、服务器端文件

  服务端需要开启rsync服务,参考《ARM40-A5应用——使用rsync与Linux服务器的远程数据同步》。
  本示例中,服务器47.98.140.167上rsync的ARM40_IDC模块的地址为:
/home/ARM40-A5/ARM40-A5-projects/rdace/APP_20180925
  含MANAGER和RELEASE两个目录。
在这里插入图片描述
  MANAGER目录中存放update.sh脚本。
  RELEASE目录中存放需要下载到ARM40的文件。

  update.sh的内容见附录。

三、 ARM40上的操作

  (1)建立/opt/user/ota-dbg.sh文件
touch /opt/user/ota-dbg.sh
chmod 755 /opt/user/ota-dbg.sh
  其内容为:

#!/bin/sh
echo "hello ARM40_IDC"
SERVER_IDC=ARM40-A5@47.98.140.167::ARM40_IDC
rsync -avz --timeout=60 --password-file=/etc/rsync.passwd $SERVER_IDC/MANAGER/update.sh /tmp/
chmod 755 /tmp/update.sh
/tmp/update.sh

  (2)执行 /opt/user/ota-dbg.sh

  ota-dbg.sh会将服务器上的update.sh脚本下载到ARM40的/tmp/update.sh,并运行该脚本。
  脚本update.sh会依次把 BATCH_FILES 中罗列的文件拷贝到ARM40相应的位置,并修改各文件的chmod。
  脚本/opt/user/ota-dbg.sh的执行示例(删去了部分rsync的log):

root@ARM40:# /opt/user/ota-dbg.sh
hello ARM40_IDC
receiving incremental file list
update.sh
hello ARM40
/opt/user/AutoStartTest.sh OK
/opt/user/RS485-RS422-select.sh OK
/etc/init.d/S40network OK
/etc/init.d/S41network OK
/home/test/test_ad7689_4ch
/home/test/test_leds.sh OK
batch_files OK

  (3)reboot重启ARM40,检查并测试。

参考文章:

  ARM40-A5应用——使用rsync与Linux服务器的远程数据同步
  ARM40-A5应用——ARM40文件的自动远程更新(ARM40-auto-OTA)
  ARM40应用——ARM40文件的拓荒部署示例(ARM40-reclaim-OTA)
  嵌入式Linux固件升级
  https://blog.csdn.net/jsfzdd/article/details/6158258
  Linux下远程升级脚本
  https://blog.csdn.net/sdvch/article/details/14109997
  Android应用增量更新 - Smart App Updates
  https://github.com/cundong/SmartAppUpdates
  荟聚计划:共商 共建 共享 Grant

附:

(1)脚本 update.sh 的内容如下:

#!/bin/sh
#update.sh
#/opt/user/ota-dbg.sh

echo "hello ARM40"
SERVER_IDC=ARM40-A5@47.98.140.167::ARM40_IDC

cp_file_to_ARM40()
{
        rsync -avz --password-file=/etc/rsync.passwd $SERVER_IDC/RELEASE/$1 /$1
        if [ "$?" != "0" ]; then # rsync is not OK, game over
                return 1
        fi
        echo "/$1 OK"
        return 0
}

BATCH_FILES="opt/user/AutoStartTest.sh
        opt/user/RS485-RS422-select.sh
        etc/init.d/S40network
        etc/init.d/S41network
        home/test/test_ad7689_4ch
        home/test/test_leds.sh"

batch_files()
{
        for batch in $BATCH_FILES
        do
                cp_file_to_ARM40 $batch
                if [ "$?" != "0" ]; then
                        return 1
                fi
        done
        echo "batch_files OK"
        return 0
}

if [ ! -d /home/test ]; then
    mkdir -p /home/test
fi

batch_files

chmod 755 /opt/user/AutoStartTest.sh
chmod 755 /opt/user/RS485-RS422-select.sh
chmod 755 /etc/init.d/S40network
chmod 755 /etc/init.d/S41network
chmod 555 /opt/user/me.info
chmod 755 /tmp/setby-meinfo.sh
chmod 755 /home/test/test_ad7689_4ch
chmod 755 /home/test/test_leds.sh
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值