我使用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 env-base”是不变的。
我在用
SWUpdate v2018.11.0
U-Boot 2018.09.
我觉得我的工作是在一个更老的设置(SWUpdate 2016)。
发布于 2019-03-04 16:25:25
我已经把这个问题写在邮件列表上了。Stefano Babic,SWUpdate开发人员和维护人员,回答了我的问题,我只是想在这里总结一下。
我所描述的是所期望的行为。在更新期间不能两次设置引导加载器变量。在文件中定义的u引导变量在bootenv部分中比u-boot名称-value-对具有优先级,因为该文件是在更新的末尾处理的。在我的例子中,解决方案是在bootenv部分中只设置变量。
https://stackoverflow.com/questions/54862277
复制相似问题