ОШИБКА SWupdate: не найдено подходящего изображения .swu.

Я новичок в eclipse hawkbit и SWupdate. Я пытался выполнить тестовую реализацию на RPi, прежде чем перейти к производственной реализации. У меня есть Hawkbit, но у меня есть несколько проблем с SWupdate, я создал «core-image-full-cmdline.wic» и образ обновления .swu вместе с ним: Это local.conf:

МАШИНА = "raspberrypi3"

IMAGE_FSTYPES += "wic"

RPI_USE_U_BOOT = "1"

KERNEL_IMAGETYPE = "uImage"

IMAGE_INSTALL_append = "модули ядра образа ядра"

#WKS_FILES_raspberrypi3 = "ts-raspberrypi.wks"

PREFERRED_PROVIDER_u-boot-fw-utils = "libubootenv"

DISTRO_FEATURES_append = "systemd"

DISTRO_FEATURES_BACKFILL_CONSIDERED += "sysvinit"

VIRTUAL-RUNTIME_init_manager = "systemd"

VIRTUAL-RUNTIME_initscripts = "systemd-compat-units"

ENABLE_UART = "1"

Я также получил эту ошибку, когда изменил IMAGE_FSTYPE с ext4 rpimg на wic:

      ERROR: Logfile of failure stored in: /home/aswin/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/update-image/1.0-r0/temp/log.do_swuimage.87006
ERROR: Task (/home/aswin/yocto/layers/meta-swupdate-boards/recipes-extended/images/update-image.bb:do_swuimage) failed with exit code '1'

Поэтому мне пришлось изменить update-image.bb FSTYPE = ".wic"

И когда я прокомментирую это "#WKS_FILES_raspberrypi3 =" ts-raspberrypi.wks "" Затем прошейте образ на SD-карту и загрузите его, на самом деле ничего не отображается, кроме мигающей строки, но если я оставлю это, то файл .swu будет подходящим. слишком большой, чтобы загрузить его на hawkbit. Кто-нибудь еще сталкивался с этой проблемой, очень приветствуется небольшая помощь.

изображение ошибки

Спасибо

2 ответа

Протестировано с использованием версии, поэтому она по-прежнему актуальна в 2023 году и обобщает то, что я обнаружил при тестировании замены на rpi3B +.

Есть два вопроса, которые необходимо решить:

  1. Ожидаемое изображение и файловая система, созданная bitbake, неверны, и
  2. Ожидаемые пакеты, установленные в образе для правильной работы swapdate, отсутствуют.

1. Ожидаемое изображение

Уровень мета-обновления обновлений программного обеспечения предполагает, что образ, созданныйmeta-raspberrypiпоставляется в формате .ext4.gz, однако файловая система и образ по умолчанию находятся в формате .ext3.gz , поэтому при запуске «bitbake update-image» не удастся найти образ с правильным расширением, которое должно быть:

core-image-full-cmdline.ext4.gz

Эту проблему легко решить, добавив эти строки в файл conf/local.conf:

      ...
MACHINE ??= "raspberrypi3-64"
...

# Overwrite SDIMG_ROOTFS_TYPE in local.conf
SDIMG_ROOTFS_TYPE = "ext4.gz"

IMAGE_FSTYPES += " tar.bz2 ext4.gz wic.bz2 wic.bmap"

2. Ожидаемые пакеты

В предоставленном вами файле конфигурации вы уже включаете systemd в качестве менеджера инициализации, который необходим для Swupdate, чтобы иметь возможность загружаться при запуске.

В дополнение к этому, если вы обнаружили, что двоичные файлы и файлы swudate отсутствуют в вашей rootfs. Это означает, что swupdate не был автоматически добавлен в строку core-image-full-cmdline.

Для этого нам нужно «добавить» пакеты в строку core-image-full-cmdline. Внутриmeta-swupdate-boardsслой, добавьте или создайте файл

мета-swupdate-boards/recipes-extended/images/core-image-full-cmdline.bbappend

      IMAGE_INSTALL += " \
                        swupdate \
                        swupdate-www \
                 "

3. Резюме

Ваш файл конфигурации в conf/local.conf должен содержать следующие строки:

      ...
MACHINE ??= "raspberrypi3-64"
...

# Overwrite SDIMG_ROOTFS_TYPE in local.conf
SDIMG_ROOTFS_TYPE = "ext4.gz"

IMAGE_FSTYPES += " tar.bz2 ext4.gz wic.bz2 wic.bmap"

PREFERRED_PROVIDER:u-boot-fw-utils = "libubootenv"
RPI_USE_U_BOOT = "1"
ENABLE_UART = "1"

# Notice that the new parsing : instead of _ is used
WKS_FILES:raspberrypi3 = "ts-raspberrypi.wks"


# Enable systemd as default init manager
DISTRO_FEATURES:append = " systemd"
DISTRO_FEATURES_BACKFILL_CONSIDERED += "sysvinit"
VIRTUAL-RUNTIME_init_manager = "systemd"
VIRTUAL-RUNTIME_initscripts = "systemd-compat-units"

и обновление должно быть добавлено к слою core-image-full-cmdline, как описано в пункте 2.

4. Тестирование

После того, как вы изменили файл local.conf, запустите в своей среде сборки команду:

bitbake core-image-full-cmdline

Затем,

изображение обновления bitbake

Вывод изображений

Для SD-карты

Нам нужны два файла wic.bz2 и wic.bmap для правильной записи на SD-карту с помощью инструмента bmap, мы можем проверить их в

      jenkins@xbuilder:~/poky/build-rpi$ ls tmp/deploy/images/raspberrypi3-64/*.wic*
tmp/deploy/images/raspberrypi3-64/core-image-full-cmdline-raspberrypi3-64-20231123091223.rootfs.wic.bmap  
tmp/deploy/images/raspberrypi3-64/core-image-full-cmdline-raspberrypi3-64.wic.bmap
tmp/deploy/images/raspberrypi3-64/core-image-full-cmdline-raspberrypi3-64-20231123091223.rootfs.wic.bz2   
tmp/deploy/images/raspberrypi3-64/core-image-full-cmdline-raspberrypi3-64.wic.bz2

Файлы, не включающие дату, представляют собой просто символические ссылки.

Для изображений обновления программного обеспечения

Файлы с расширением .swu будут использоваться для загрузки в hawkbit.

      jenkins@builder:~/poky/build$ ls  tmp/deploy/images/raspberrypi3-64/*.swu
tmp/deploy/images/raspberrypi3-64/update-image-raspberrypi3-64-20231123091614.swu  tmp/deploy/images/raspberrypi3-64/update-image-raspberrypi3-64.swu

Я проверил это, используяkirkstoneветки во всех связанных метаслоях:

  • мета-поки
  • мета-raspberrypi
  • мета-openembedded/мета-oe
  • мета-замена
  • мета-обмен-доски

Ваше здоровье,

Как вы ожидаете, что это будет работать, когда у вас есть ошибки совместимости HW, ошибки, связанные с повреждением файла JSON, забудьте на данный момент о hawkbit и попытайтесь увидеть, создает ли ваш файл описания sw правильный файл образа swu, который обновляет rootfs или что-то еще? хотите обновить с помощью веб-сервера mongoose и только потом переходить на hawkbit.

Сначала устраните ошибки, которые приходят до

подходящее изображение .swu не найдено

Отредактировано: также поместите файл описания sw, который вы используете для создания файла swu, для получения дополнительной помощи.

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