SWUpdate多个bootenv部分

问题描述 投票:0回答:1

我使用SWUpdate通过双重复制策略更新同一设备的不同硬件版本。所有这些的引导程序环境看起来非常相似。但是,我必须将mmc分区设置为根据主动副本和boot_file进行引导,具体取决于硬件版本。为了使sw-description文件尽可能全面并且易于维护,我想在第一步为所有设备设置“基本”引导环境,在第二步中根据硬件覆盖一些变量 - 修订和主动副本:

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”没有改变。

我在用

SWUpdate v2018.11.0

U-boat 2018.09。

我觉得我在旧的设置中使用了这个(SWUpdate 2016)。

embedded-linux updates u-boot buildroot
1个回答
0
投票

我已经用这个问题在邮件列表中发了言。 SWUpdate开发人员和维护人员Stefano Babic回答了我的问题,我只想在这里总结一下。

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

© www.soinside.com 2019 - 2024. All rights reserved.