SWUpdate 多个 bootenv 部分

SWUpdate multiple bootenv sections

我使用 SWUpdate 以双重复制策略更新同一设备的不同硬件版本。 所有这些的引导加载程序环境看起来非常相似。但是,我必须将 mmc-partition 设置为根据活动副本启动,并根据硬件设置 boot_file -修订。 为了使 sw-description-file 尽可能全面并使其易于维护,我想在第一步中为所有设备设置一个 "basic" 引导环境,然后在第二步中覆盖一些变量,具体取决于硬件修订版和活动副本:

software =
{
    version = "1.1";
    hardware-compatibility = ["0.1","1.0"];

    device1=
    {
    copy-1:
    {
        images:
        (
            {
                filename = "rootfs.ext3.gz";
                device   = "/dev/mmcblk0p3";
                compressed = true;
            },
            {
                filename = "u-boot-env-base"; #basic boot environment
                type     = "uboot";
            }
        );
        bootenv:      #  device-specific boot variables
        (
            {
                name = "boot_file"
                value = "uImage1"
            },
            {
                name    = "mmcpart";
                value   = "3";
            }
        );
    }
    }
}

虽然报告了两个引导加载程序环境的解析,但只应用了一个或同时应用了两个,但顺序错误,因为通过 fw_printenv 检查时 "u-boot-env-base" 没有改变。

我正在使用

软件更新 v2018.11.0

优盘 2018.09.

我觉得我在较旧的设置(SWUpdate 2016)中工作。

我已经用这个问题解决了邮件列表。 Stefano BabicSWUpdate 开发者和维护者,回答了我的问题,我只是想在这里总结一下。

我所描述的是期望的行为。预计不会在更新期间设置两次引导加载程序变量。文件中定义的 u-boot 变量优先于 bootenv 部分中的 u-boot 名称-值对,因为文件是在更新的最后处理的。我的解决方案是在 bootenv 部分设置变量 only