Edit online

参数配置

Read time: 16 minute(s)

对于不同的存储设备,OTA 主要涉及以下参数配置:

注:

本节及后续流程均以下列不同设备的默认配置文件为例进行详细说明。

  • 主系统配置

    • eMMC 配置文件 d211_demo_defconfig 示例如下:
      1. target/d211/demo/image_cfg.json //分区配置和烧录
      2. target/d211/common/env.txt //U-Boot 环境变量
      3. target/d211/demo/rootfs_overlay/etc/fw_env.config //环境变量分区信息
      4. target/d211/demo/rootfs_overlay/etc/swupdate_main //挂载 OTA 本地升级文件系统
      5. target/d211/demo/swupdate/sw-description //OTA 策略描述文件
      6. target/d211/demo/swupdate/sw-images.cfg //打包相应文件到 OTA 升级包中
      7. target/configs/d211_demo_defconfig //板级配置文件
    • SPI NAND 配置文件 d211_demo128_nand_defconfig 示例如下:
      1. target/d21x/demo128_nand/image_cfg.json //分区配置和烧录
      2. target/d21x/common/env.txt //U-Boot 环境变量
      3. target/d21x/demo128_nand/rootfs_overlay/etc/fw_env.config //环境变量分区信息
      4. target/d21x/demo128_nand/rootfs_overlay/etc/swupdate_main //挂载 OTA 本地升级文件系统
      5. target/d21x/demo128_nand/swupdate/sw-description //OTA 策略描述文件
      6. target/d21x/demo128_nand/swupdate/sw-images.cfg  //打包相应文件到 OTA 升级包中
      7. target/configs/d21x_demo128_nand_defconfig //板级配置文件
  • Recovery 系统配置
    • eMMC 配置文件 d211_ota_emmc_defconfig 示例如下,默认路径为 target/configs/d211_ota_emmc_defconfig
      1. target/d211/ota_emmc/rootfs_overlay/etc/fw_env.config //环境变量分区信息
      2. target/d211/ota_emmc/rootfs_overlay/etc/init.d/S91swupdate_ota //开机自动挂载 OTA 分区与启动 OTA 升级程序
      3. target/configs/d211_ota_emmc_defconfig //OTA 配置文件
    • SPI NAND 配置文件 d211_ota_defconfig 示例如下,默认路径为 target/configs/d211_ota_defconfig
      1. target/d21x/ota/rootfs_overlay/etc/fw_env.config //环境变量分区信息
      2. target/d21x/ota/rootfs_overlay/etc/init.d/S91swupdate_ota //开机自动挂载 OTA 分区与启动 OTA 升级程序
      3. target/target/configs/d21x_ota_defconfig //OTA 配置文件
  • 主系统与 Recovery 系统启动脚本文件:
    package/third-party/swupdate/S90swupdate //开机后台执行 SWUpdate 程序
Edit online

平台配置文件说明

Read time: 16 minute(s)
本节及后续流程均以下列不同设备的默认配置文件为例进行详细说明:
1. 平台配置文件说明
文件说明 eMMC SPI NAND
Demo 示例 d211_demo d211_demo128_nand
主系统配置文件
  • 对于 eMMC,以 d211_demo 为例:
    • 主系统配置文件为 d211_demo_defconfig
    • Recovery 系统配置文件为 d211_ota_emmc_defconfig,默认路径为 target/configs/d211_ota_emmc_defconfig
    • image_cfg.json 文件路径 target/d211/demo128_nand/image_cfg.json
    • OTA 包文件 ota_folder,路径为 target/d211/ota_emmc/
  • 对于 SPI NAND:以 d211_demo128_nand 为例:
    • 主系统配置文件为 d211_demo128_nand_defconfig
    • Recovery 系统配置文件为 d211_ota_defconfig,默认路径为 target/configs/d211_ota_defconfig
    • image_cfg.json 文件路径 target/d211/demo/image_cfg.json
    • OTA 包文件 ota_folder,路径为 target/d211/ota/
Edit online

Recovery 系统配置

Read time: 16 minute(s)

为了简化使用,Recovery 系统的 OTA 相关配置已打开,用户无需手动开启。

本节及后续流程均以下列不同设备的默认配置文件为例进行详细说明:
  • 对于 eMMC,以 d211_demo 为例:
    • 主系统配置文件为 d211_demo_defconfig
    • Recovery 系统配置文件为 d211_ota_emmc_defconfig,默认路径为 target/configs/d211_ota_emmc_defconfig
    • image_cfg.json 文件路径 target/d211/demo128_nand/image_cfg.json
    • OTA 包文件 ota_folder,路径为 target/d211/ota_emmc/
  • 对于 SPI NAND:以 d211_demo128_nand 为例:
    • 主系统配置文件为 d211_demo128_nand_defconfig
    • Recovery 系统配置文件为 d211_ota_defconfig,默认路径为 target/configs/d211_ota_defconfig
    • image_cfg.json 文件路径 target/d211/demo/image_cfg.json
    • OTA 包文件 ota_folder,路径为 target/d211/ota/

Recovery 系统详细配置流程如下所示:

  1. 配置 SWUpdate 包
    1. 在 Recovery 系统配置文件根目录中,执行下列命令进入 Recovery 系统 SDK 生产环境:
      • eMMC:
        lunch ota_emmc
      • SPI NAND:
        lunch ota
    2. 在 Luban SDK 根目录下,执行下列命令进入功能配置界面:
      make m
    3. 在 Luban SDK 功能配置界面,按如下选择:
      Third-party packages  --->
          -*- libubootenv  --->
          -*- libconfig  --->
          -*- libcurl  --->
          [*] swupdate  --->
          
          [*] mtd, jffs2 and ubi/ubifs tools  --->        //仅 SPINAND 平台需要
  2. 配置 RootFS 为 initramfs
    1. 默认切换 RootFS imagesinitial RAM filesystem (initramfs),执行 make m 命令 。
      配置如下:
      Filesystem images  --->
          RootFS images  --->
              -*- cpio the root filesystem (for use as an initial RAM filesystem)
                  Compression method (gzip)  --->
          [*] initial RAM filesystem linked into linux kernel
    2. 默认将 initramfs 编译进 Kernel,执行 make km 命令。

      配置如下:
      General setup  --->
          [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
          [*]   Support initial ramdisk/ramfs compressed using gzip
  3. 编译 Recovery 系统
    1. 检查或配置完成后,执行 make m 命令编译 Recovery 系统。

      编译完成后,会生成 Recovery 系统的打包文件 Recovery.gz,默认存放路径如下:
      • eMMC:output/d211_ota_emmc/images
      • SPI NAND:output/d211_ota/images

      Recovery.gz 是 Recovery 系统的打包镜像文件,是平台通用 Recovery 系统。

    2. Recovery.gz 拷贝到 target/d211/common 目录中:

      各板级文件编译时会打包 Recovery.gz 到最终的镜像文件中,从而烧录到 recovery 分区 中。

Edit online

eMMC 主系统配置

Read time: 16 minute(s)
本节及后续流程均以下列不同设备的默认配置文件为例进行详细说明:
  • 对于 eMMC,以 d211_demo 为例:
    • 主系统配置文件为 d211_demo_defconfig
    • Recovery 系统配置文件为 d211_ota_emmc_defconfig,默认路径为 target/configs/d211_ota_emmc_defconfig
    • image_cfg.json 文件路径 target/d211/demo128_nand/image_cfg.json
    • OTA 包文件 ota_folder,路径为 target/d211/ota_emmc/
  • 对于 SPI NAND:以 d211_demo128_nand 为例:
    • 主系统配置文件为 d211_demo128_nand_defconfig
    • Recovery 系统配置文件为 d211_ota_defconfig,默认路径为 target/configs/d211_ota_defconfig
    • image_cfg.json 文件路径 target/d211/demo/image_cfg.json
    • OTA 包文件 ota_folder,路径为 target/d211/ota/

主系统详细配置流程如下所示:

  1. 配置 SWUpdate 包参数
    注: 如果需要重新配置 SWUpdate 参数,必须先关掉 SWUpdate 预编译功能,修改的 SWUpdate 配置才能够生效。关于预编译相关说明,可参考配置预编译包
    1. 执行下列命令进入主系统 SDK 生产环境:
      • eMMC
        lunch d211_demo
      • SPI NAND
        lunch d211_demo128_nand
    2. 在 Luban SDK 根目录下执行下列命令,进入功能配置界面:

      make m
    3. 在 Luban SDK 功能配置中,按如下选择:
      Third-party packages  --->
          -*- libubootenv  --->
          -*- libconfig  --->
          -*- libcurl  --->
          [*] swupdate  --->
      
          [*] mtd, jffs2 and ubi/ubifs tools  --->        //仅 SPINAND 平台需要
    4. 查看并修改 SWUpdate 库相关配置。

      关于 SWUpdate 包的参数描述,可查看SWUpdate 包 (eMMC) 重要配置描述

      示例如下:
      [*]   use prebuilt binary instead of building from source
      (package/third-party/swupdate/luban_swupdate.config) swupdate configuration file
      [*]   swupdate webserver
      1. 取消勾选下列选项,关闭 SWUpdate 预编译功能:
        [ ]   use prebuilt binary instead of building from source
      2. 执行下列命令查看和修改 SWUpdate 相关配置:
        make swupdate-menuconfig
  2. 增加 recovery 分区并烧录系统镜像程序
    image_cfg.json 中增加 recovery 分区,烧录 Recovery 系统镜像:
    1. 添加 recovery 分区:
      "kernel":   { "size": "12m" },
      + "recovery": { "size": "16m" },          //在 kernel 分区后面增加 recovery 分区
    2. 确保 kernel.itsrecovery.its 文件存在并正确配置:
      "kernel": {
              "file": "kernel.itb",
              "attr": ["mtd", "required"],      //在 kernel 镜像烧录配置后面添加 recovery 镜像烧录配置
              "part": ["kernel"]
      },
      + "recovery": {
      +    "file": "recovery.itb",              //将 recovery.itb 镜像文件烧录到 recovery 分区里面
      +    "attr": ["mtd", "required"],
      +    "part": ["recovery"]
      + },
      
      "kernel.itb": {
              "its": "kernel.its"               //在 kernel 镜像生成方法后面增加 recovery 镜像生成方法
      
      },
      + "recovery.itb": {
      +    "its": "recovery.its"                //配置 recovery.itb 文件通过 recovery.its 指导编译完成
      + },
    3. image 目录中检查 recovery.itb 文件是否生成。

      通过升级信息判断 recovery.itb 是否烧录到 recovery 分区。

  3. 增加 OTA 分区并烧录 OTA 升级包,用于验证本地 OTA 使用。

    如使用网络 OTA 或 SD 卡 OTA,可略过此步。

    1. target/d211/demo_folder/image_cfg.json 文件中,增加 OTA 分区配置:

      "partitions": { // Partition table apply to device
              "rootfs": { "size": "72m" },
      +       "ota": { "size": "96m" },
      },
      
      "rootfs": {
          "file": "rootfs.ext4",
          "attr": ["block", "required"],
          "part": ["rootfs"]
      },
      + "ota": {
      +    "file": "ota.ext4",
      +    "attr": ["block", "required"],
      +    "part": ["ota"]
      + },
    2. 将 OTA 升级包下载到 ota 分区,方便测试 OTA 本地升级功能。

      关于 ota 分区说明,可查看 方案介绍

    3. 在 Luban SDK 根目录下执行 make m 命令。

      配置如下:
      Filesystem images  --->
          [*] UserFS 1  --->
          (ota) Name
              FS Type (Ext4)  --->
          [*]   generate sparse format filesystem
          (96M) Size
          (0)   Number of inodes (leave at 0 for auto calculation)
          (5)   Reserved blocks percentage
          (-O ^64bit) Additional mke2fs options
          (target/$(LUBAN_CHIP_NAME)/$(LUBAN_BOARD_NAME)/ota) Overlay directory
    4. target/$(LUBAN_CHIP_NAME)/$(LUBAN_BOARD_NAME)/ota 目录里的内容生成 ota.ext4 镜像文件,之后将整个文件烧录到 ota 分区中。

Edit online

SPI NAND 主系统配置

Read time: 16 minute(s)
本节及后续流程均以下列不同设备的默认配置文件为例进行详细说明:
  • 对于 eMMC,以 d211_demo 为例:
    • 主系统配置文件为 d211_demo_defconfig
    • Recovery 系统配置文件为 d211_ota_emmc_defconfig,默认路径为 target/configs/d211_ota_emmc_defconfig
    • image_cfg.json 文件路径 target/d211/demo128_nand/image_cfg.json
    • OTA 包文件 ota_folder,路径为 target/d211/ota_emmc/
  • 对于 SPI NAND:以 d211_demo128_nand 为例:
    • 主系统配置文件为 d211_demo128_nand_defconfig
    • Recovery 系统配置文件为 d211_ota_defconfig,默认路径为 target/configs/d211_ota_defconfig
    • image_cfg.json 文件路径 target/d211/demo/image_cfg.json
    • OTA 包文件 ota_folder,路径为 target/d211/ota/

主系统详细配置流程如下所示:

  1. 配置 SWUpdate 包参数
    注: 如果需要重新配置 SWUpdate 参数,必须先关掉 SWUpdate 预编译功能,修改的 SWUpdate 配置才能够生效。关于预编译相关说明,可参考
    1. 执行下列命令进入主系统 SDK 生产环境:
      • eMMC
        lunch d211_demo
      • SPI NAND
        lunch d211_demo128_nand
    2. 在 Luban SDK 根目录下执行下列命令,进入功能配置界面:

      make m
    3. 在 Luban SDK 功能配置中,按如下选择:
      Third-party packages  --->
          -*- libubootenv  --->
          -*- libconfig  --->
          -*- libcurl  --->
          [*] swupdate  --->
      
          [*] mtd, jffs2 and ubi/ubifs tools  --->        //仅 SPINAND 平台需要
    4. 查看并修改 SWUpdate 库相关配置。

      关于 SWUpdate 包的参数描述,可查看

      示例如下:
      [*]   use prebuilt binary instead of building from source
      (package/third-party/swupdate/luban_swupdate.config) swupdate configuration file
      [*]   swupdate webserver
      1. 取消勾选下列选项,关闭 SWUpdate 预编译功能:
        [ ]   use prebuilt binary instead of building from source
      2. 执行下列命令查看和修改 SWUpdate 相关配置:
        make swupdate-menuconfig
  2. 增加 recovery 分区并烧录系统镜像程序
    image_cfg.json 中增加 recovery 分区,烧录 Recovery 系统镜像:
    1. 添加 recovery 分区:
      "kernel":   { "size": "12m" },
      + "recovery": { "size": "16m" },          //在 kernel 分区后面增加 recovery 分区
    2. 确保 kernel.itsrecovery.its 文件存在并正确配置:
      "kernel": {
              "file": "kernel.itb",
              "attr": ["mtd", "required"],      //在 kernel 镜像烧录配置后面添加 recovery 镜像烧录配置
              "part": ["kernel"]
      },
      + "recovery": {
      +    "file": "recovery.itb",              //将 recovery.itb 镜像文件烧录到 recovery 分区里面
      +    "attr": ["mtd", "required"],
      +    "part": ["recovery"]
      + },
      
      "kernel.itb": {
              "its": "kernel.its"               //在 kernel 镜像生成方法后面增加 recovery 镜像生成方法
      
      },
      + "recovery.itb": {
      +    "its": "recovery.its"                //配置 recovery.itb 文件通过 recovery.its 指导编译完成
      + },
    3. image 目录中检查 recovery.itb 文件是否生成。

      通过升级信息判断 recovery.itb 是否烧录到 recovery 分区。

  3. 增加 OTA 分区烧录 OTA 升级包,用于验证本地 OTA 使用。

    如使用网络 OTA 或 SD 卡 OTA,可略过此步。

    1. target/d211/demo128_nand/image_cfg.json 文件中,增加 OTA 分区配置和相应修改:
      "ubiroot":  {
          "size": "40m",                                 //适当裁剪主系统文件系统大小,确保不超总 FLASH 的大小
          "ubi": { // Volume in UBI device
              "rootfs": { "size": "-" },
          },
      },
      "ubisystem": {
          "size": "-",
          "ubi": { // Volume in UBI device
          +   "ota":   { "size": "60m" },                //ubisystem 分区上增加 ota 分区
              "user":   { "size": "-" },
          },
      },
      "rootfs": {
              "file": "rootfs*.ubifs",
              "attr": ["ubi", "required"],
              "part": ["ubiroot:rootfs"]                 //在根文件系统烧录之后增加 ota 分区烧录
      },
      +   "ota": {
      +          "file": "ota*.ubifs",
      +          "attr": ["ubi", "optional"],
      +          "part": ["ubisystem:ota"]               //将 ota*.ubifs 文件烧录到 ota 分区里面
      +  },
      
      注:

      剪裁主系统文件大小后,需同步修改 BR2_TARGET_ROOTFS_UBIFS_MAX_SIZE 宏,具体操作如下。

    2. 执行 make m :

      Filesystem images  --->
          RootFS images  --->
          (0x2800000) ubifs size(Should be aligned to MB)
      
    3. 主系统配置生成 ota*.ubifs 目标文件

      将 OTA 升级包下载到 ota 分区 中,方便测试 OTA 本地升级功能。

      ota 分区 如下所示:


      part

      1. 进入主系统 SDK 生产环境:

        lunch d211_demo128_nand
      2. 在 Luban 根目录下执行配置命令:

        make m
      3. 配置如下:

        [*] UserFS 1  --->
            (ota) Name
                FS Type (UBIFS)  --->
            (0x3C00000) ubifs size(Should be aligned to MB)
                ubifs runtime compression (no compression)  --->
                Compression method (no compression)  --->
            ()    Additional mkfs.ubifs options
            (target/$(LUBAN_CHIP_NAME)/$(LUBAN_BOARD_NAME)/ota) Overlay directory
        
      4. target/$(LUBAN_CHIP_NAME)/$(LUBAN_BOARD_NAME)/ota 目录里的内容生成 ota_page_2k_block_128k.ubifs 镜像文件,之后会将整个文件烧录到 ota 分区 中。

Edit online

U-Boot 环境变量配置

Read time: 16 minute(s)

为了简化使用,U-Boot 环境变量的 OTA 相关配置已添加和开启,无需用户手动配置。

通过环境变量 boot_partition 确定从 kernel 分区还是 recovery 分区引导启动。
  1. project directory/common/env.txt 文件中,修改下列相关参数,以 d211/common/env.txt 为例:
    • eMMC:
      + set_commonargs_recovery=setenv bootargs earlycon=${earlycon} earlyprintk console=${console} rdinit=/linuxrc
      +  //从 Recovery 系统启动, 引导 initramfs 启动
      
      + set_mmc_bootargs_recovery=run set_commonargs_recovery; \ //设置环境变量 set_mmc_bootargs_recovery
                            run set_mmc_root; \
                            setenv bootargs "${bootargs}";
      
      + boot_partition=kernel   //初始化环境变量 boot_partition 从 kernel 分区启动
      
      + run set_mmc_bootargs_recovery; \
      + loadknl mmc ${boot_devnum} recovery ${knl_addr}; \
      + bootm ${knl_addr};      //mmc_boot 环境变量增加从 recovery 分区引导启动
    • SPI NAND:
      + set_commonargs_recovery=setenv bootargs earlycon=${earlycon} earlyprintk console=${console} rdinit=/linuxrc
      + //从 Recovery 系统启动, 引导 initramfs 启动
      
      + set_nand_bootargs_recovery=run set_nand_mtdargs; \      //设置环境变量 set_nand_bootargs_recovery
      +    run set_commonargs_recovery; \
      +    setenv bootargs ${bootargs} mtdparts=${MTD}
      
      + ubi_rootfs_mtd=10       //适配环境变量 ubi_rootfs_mtd, 保证主系统能够正常启动
      + boot_partition=kernel   //初始化环境变量 boot_partition 从 kernel 分区启动
      
      + run set_nand_bootargs_recovery; \
      + loadknl mtd recovery ${knl_addr}; \
      + bootm ${knl_addr};      //nand_boot 环境变量增加从 recovery 分区引导启动
      
    注:

    手动配置环境变量 boot_partition 后保存并重启,测试 U-Boot 是否能够引导 Recovery 系统启动,以此判断配置文件是否生效。

  2. image_cfg.json 分区表中,增加 env 备份分区,保障 env 数据掉电安全。
    "env":      { "size": "256k" },
    + "env_r":    { "size": "256k" },         //在 env 分区后面增加 env_r 分区
    
    "env": {
        "file": "env.bin",
        "attr": ["mtd", "required"],
    -    "part": ["env"]
    +    "part": ["env","env_r"]             //将 env.bin 文件同时烧录到 env、env_r 分区
    },
    注:

    通过升级串口打印信息可以判断 env.bin 文件是否烧录到 env_r 分区,判断配置是否生效。

  3. U-Boot 中使能 Redundant Environment 机制。

    执行 make um 进入功能配置界面,并按如下选择使能 Redundant Environment 机制:

    Environment  --->
        [*] Enable redundant environment support
        (0x200000) Redundant environment offset
    • 当升级过程中掉电时,其中一份环境变量如果被破坏,另外一份环境变量还能够继续引导启动。

    • 用户可以手动擦除其中一份环境变量,测试系统能否正常启动,写入保存环境变量后,被擦除的环境变量是否能够恢复。

    • CONFIG_ENV_OFFSET_REDUNDenv_r 分区的偏移值,需要与分区表匹配。

    故障:
    当使能了 Redundant 机制,编译后烧录程序时,可能会出现如下错误信息:
    Loading Environment from RAM... *** Warning - bad CRC, using default environment
    因为 U-Boot 解析的方法发生了改变,解析数据格式增加了一个字节,判断哪一份 env 数据最新,具体可以通过 redundant 宏查看对应的程序。 可在 image_cfg.json 中做如下修改进行解决:
        "uboot_env": {
            "env.bin": {
                "file": "env.txt",
                "size": "0x4000",
    +           "redundant": "enable",
            },
        },
    注:

    如不使能 env 备份区域,设置 “redundant” 为 “disable” 或者不设置。

  4. 配置 fw_env.config 文件。

    在 OTA 升级过程中,主系统和 Recovery 系统都使用到 SWUpdate 命令。SWUpdate 依赖 U-Boot 环境变量,需要在 Linux 中配置 U-Boot 环境变量索引路径。

    1. 因为使用到了 env_r 备份分区,fw_env.config 需要包含 envenv_r 分区信息。如果修改了 envenv_r 分区信息,则需要同步更新下列 fw_env.config 文件:

      • Recovery 系统 SDK 生产环境所在的 fw_env.config 文件,默认路径如下:
        • eMMC:target/d211/ota_emmc/rootfs_overlay/etc/fw_env.config
        • SPI NAND:target/d211/ota/rootfs_overlay/etc/fw_env.config
      • 主系统 SDK 生产环境所在的 fw_env.config 文件,路径如下:
        • eMMC:target/d211/demo/rootfs_overlay/etc/fw_env.config
        • SPI NAND:target/d211/demo128_nand/rootfs_overlay/etc/fw_env.config
    2. 在 Linux 环境下执行下列 命令,测试能够正常打印 U-Boot 环境变量信息。

      fw_env.configfw_setenv 命令默认会读取 /etc/fw_env.config 文件来获取环境变量的分区信息。

      fw_printenv/fw_setenv
      • eMMC 的默认的配置信息如下:
        //device name   Device offset   Env. size
        /dev/mmcblk0    0x1C0000        0x4000
        /dev/mmcblk0    0x200000        0x4000
        
        • /dev/mmcblk0: eMMC 分区的设备号
        • Device offset:环境变量分区的偏移值
        • Env. size:实际环境变量的大小
      • SPINAND 的默认的配置信息如下:
        /dev/mtd4               0x0000          0x4000          0x20000
        /dev/mtd5               0x0000          0x4000          0x20000
        
        2. SPINAND 默认配置参数描述
        /dev/mtd4 env 分区 的设备号
        /dev/mtd5 env_r 分区的设备号
        第二列 0x0000 Device offset
        第三列 0x4000 Env. size
        第四列 0x20000 块擦除大小
Edit online

启动脚本配置

Read time: 16 minute(s)
提示:

为了简化使用,启动脚本配置一般无需修改即可使用。

  1. S90swupdate

    主系统 和 Recovery 系统默认启动脚本 S90swupdate,路径为 package/third-party/swupdate/S90swupdate

    在后台执行 swupdate-progress 命令,可以接受 SWUpdate 传递的升级信息并打印到调试串口,用户也可以重定向到显示屏上:

    exec /usr/bin/swupdate-progress -w -r &
  2. S91swupdate_ota

    使用 Recovery 系统启动脚本可以挂载好对应的升级分区,并执行 Recovery 系统 OTA 升级程序。脚本路径为u target/d211/ota_folder/rootfs_overlay/etc/init.d/S91swupdate_ota

    • eMMC OTA 包文件 ota_folder,路径为 target/d211/ota_emmc/
      主要功能如下:
      mkdir -p /mnt/ota
      mount /dev/mmcblk0p7 /mnt/ota               //挂载 ota 分区到 mnt/ota 目录下
      ./usr/lib/swupdate/swupdate_cmd.sh          //调用 swupdate_cmd.sh 脚本执行 OTA 升级程序
    • SPI NAND OTA 包文件 ota_folder,路径为 target/d211/ota/
      主要功能如下:
      ubiattach dev/ubi_ctrl -m $mtd_num          //识别 ota 分区
      mount -t ubifs /dev/$ubi_param /mnt/ota     //挂载 ota 分区到 mnt/ota 目录下
      ./usr/lib/swupdate/swupdate_cmd.sh          //执行 OTA 升级程序
      
    注:

    如需自定义分区,则对应的设备节点会有变更,此时需要修改对应的挂载方式。