您尚未登录。

楼主 # 2023-03-20 10:12:51

LIVPO
会员
注册时间: 2022-10-09
已发帖子: 22
积分: 302

全志系列芯片在Tina Linux中使用脚本完成定制化升级

在OTA升级过程中,添加定制化需求,实现控制变量升级。所以选择利用swupdate升级满足定制化脚本需求

该方法在831,853,t113两个平台上测试有效

因为swupdate支持脚本,所以在升级过程中,添加能够实现定制升级的脚本即可,将带有定制升级的脚本编入策略描述文件(sw-descrition)OTA升级配置文件中(sw-subimgs),在打包ota升级包时,将脚本一起打包进ota包中。在进行下面的配置后,输入升级命令时,首先开始执行脚本中的内容,满足升级条件后,再进行升级流程。下面进行详细的步骤介绍:

1.swupdate支持shellscript脚本,需要以下功能配置(默认选中)

执行:make menuconfig/make ota_menuconfig
Allwinner  --->
    <*> swupdate............................. software update for embedded system
        Swupdate Settings  --->
            General Configuration  --->
                [*] enable pre and postinstall scripts
        Image Handlers  --->
            [*] shellscript

2.在swupdate文件夹下创建脚本,名字随意,在脚本中写入要实现的功能。例如:目前有一个方案需要升级,但是分为A,B两种产品,对应做了不同的功能,为了防止升级混淆,可以利用脚本去控制变量升级,比如A产品方案中的env,可以添加一个变量project=a,B产品方案中的env添加一个变量project=b,那么脚本中的内容就可以判断project=a或b时,继续完成升级。env中添加内容和脚本内容举例如下:
env中:
437b4dfb25d84a1888090f5e7e82f323.png
脚本内容如下:
5d311321539a4651a33d32c62650894d.png

3.在描述文件中添加脚本功能,在sw-description中添加以下代码:
09a9b95225664e3c8e7b8fd5e7dcdbb2.png

4.将脚本打包进ota包中,脚本名字可以任意起,我这里是preinstall_checkAB.sh。
e547c5d447ba4368a39fb6db128e7ded.png

5.重新编译主系统和recovery系统,烧录固件,打包ota包,再进行验证。

6.验证:当校验失败时,返回值为1,会看到如下打印,不能升级。
d58b2c9b048e4c6780f6a8ebafe08cc1.png
校验成功时,返回值为0,看到如下打印,升级成功。
1d1de11a87624a8d846a01351fd0b79b.png

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn