SWUpdate несколько разделов Bootenv

Я использую SWUpdate для обновления различных версий оборудования одного и того же устройства с помощью стратегии двойного копирования. Окружение загрузчика всех этих выглядит очень похоже. Тем не менее, я должен установить загрузочный раздел mmc в зависимости от активной копии и загрузочный_файл в зависимости от версии оборудования. Чтобы сохранить 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-Boot 2018.09.

Я чувствую, что у меня это работало в более старой установке (SWUpdate 2016).

0 ответов

Я обратился к списку рассылки с этим вопросом. Стефано Бабич (Stefano Babic), разработчик и сопровождающий SWUpdate, ответил на мой вопрос.

Я описал желаемое поведение. Не предусмотрено устанавливать переменные загрузчика дважды во время обновления. Переменные u-boot, определенные в файле, имеют приоритет над парами имя-значение u-boot в разделе bootenv, поскольку файл обрабатывается в самом конце обновления. Решение в моем случае - установить переменные только в разделе bootenv.

Другие вопросы по тегам