导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

    【FAQ】全志系列芯片 如何在Tina Linux中使用脚本完成定制化升级?

    MR Series
    d1 v853 r128 faq h616
    1
    1
    1263
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • q1215200171
      budbool LV 9 最后由 q1215200171 编辑

      1.主题

      在Tina Linux中,如何使用脚本完成定制化升级

      2.问题背景

      硬件:全平台
      软件:Tina
      其他:支持OTA升级的平台,可实现脚本定制化升级

      3.具体表现

      在OTA升级过程中,添加定制化需求,实现控制变量升级。

      4.问题分析

      利用swupdate升级满足定制化脚本需求

      5.解决办法

      因为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.jfif
      脚本内容如下:
      5d311321539a4651a33d32c62650894d.jfif

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

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

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

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

      1 条回复 最后回复 回复 引用 分享 2
      • 1 / 1
      • First post
        Last post

      Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

      行为准则 | 用户协议 | 隐私权政策