Edit online

升级过程及判断

Read time: 1 minute(s)

升级过程会进行两次重启,参考 sw-descriptionswupdate_cmd.sh 文件。主要过程如下:

  1. 运行主系统, 启动升级命令以后, 升级 recovery 分区 、引导等。

  2. 重启,进入 Recovery 系统。

  3. 升级 Kernel、RootFS 等。

  4. 重启,进入主系统,升级完成。

关于升级的详细说明,可参考 OTA 设计部分。

升级判断

从程序打印 log 差异和 RootFS 中文件差异判断当前运行的版本。Recovery 系统启动内核时打开了内核信息,主系统默认关闭,通过内核打印信息可以判断执行程序的系统。

Edit online

本地升级方式

Read time: 1 minute(s)
  1. 烧录 OTA 升级包到 OTA 分区

    将 OTA 升级包拷贝到 target/d211/demo_folder/ota 目录中:

    对于不同的存储设备,demo_folder 可能不一致,

    cp ~/Luban/output/d211_demo/images/swupdate/d211_demo.swu ~/Luban/target/d211/demo/ota
    1. 执行 m 命令,将 ota 分区 镜像文件 ota.ext4 编译到 Luban 烧录镜像文件 d211_demo_v1.0.0.img 中。

    2. 通过 AiBurn 方式将 ota.ext4 单独烧录到 ota 分区 中,如下图所示:

      burn_ota_emmc_partition

  2. 挂载 OTA 分区

    重新上电,将 ota 分区 挂载到 mnt/ota 目录下:

    /etc/swupdate_main start

    检查 OTA 升级包是否存在。mnt/ota 目录下默认存在 d211_demo.swuthis_is_a_test_file 两个文件。

  3. 主系统下启动升级命令
    ./usr/lib/swupdate/swupdate_cmd.sh -i /mnt/ota/d211_demo.swu -e stable,upgrade_recovery
    • -i:本地升级文件的路径,根据具体路径配置。

    • e:需要升级的项目。

    执行命令以后,整个升级过程自动执行完成。

Edit online

网络升级方式

Read time: 1 minute(s)

网络升级方式包含下列两种:

  • 设备端为服务器,电脑为用户端。

  • 设备端为用户端,电脑为服务器。

    实际生产过程中,使用第二种方式

    1. 在启动脚本里面添加网络环境的配置。主系统和 Recovery 系统在启动时自动搭建好网络环境。

      ifconfig eth0 up
      ifconfig eth0 192.168.1.200
    2. 主系统下启动升级命令

      主系统自动联网完成,执行下列命令启动升级:

      ./usr/lib/swupdate/swupdate_cmd.sh -d -uftp://192.168.1.100/d211_demo.swu -e stable,upgrade_recovery

      如果搭建 HTTP 服务器,则执行下列启动命令:

      ./usr/lib/swupdate/swupdate_cmd.sh -d -uhttp://192.168.1.100/d211_demo.swu -e stable,upgrade_recovery
Edit online

SD 卡升级方式

Read time: 1 minute(s)
  1. 将 OTA 升级包拷贝到 SD 卡根目录下。

  2. 插入 SD 卡,Luban 中会自动挂载 SD 卡。

  3. 执行下面命令启动 OTA 升级:
    ./usr/lib/swupdate/swupdate_cmd.sh -i /mnt/sdcard/d211_demo.swu -e stable,upgrade_recovery