Skip to content

[swupdate] Issue in loading the kernel file after swupdate

I have modified swupdate handler .ini file (recipes-core/swupdate-handler-roundrobin/files/swupdate.handler.efibootguard.ini) as below for kernel.bootenv

[kernel.bootenv]
kernelfile=C:BOOT${rrindex}:vmlinuz-linux

The software update is successful but failed to load the kernel image after reboot.

I checked bg_printenv after swupdate and observed the kernel environment variable is not updated properly.

bg_printenv
----------------------------
Config Partition #0 Values:
in_progress:      no
revision:         2
kernel:           C:BOOT0:cip-core-image-cip-core-buster-qemu-amd64-vmlinuz
kernelargs:       console=tty0 console=ttyS0,115200 rootwait earlyprintk root=PARTUUID=fedcba98-7654-3210-cafe-5e0710000001 rw initrd=cip-core-image-cip-core-buster-qemu-amd64-initrd.img
watchdog timeout: 60 seconds
ustate:           0 (OK)

user variables:
----------------------------
Config Partition #1 Values:
in_progress:      no
revision:         3
kernel:           C:BOOT1:vmlinuz%-linux
kernelargs:       root=PARTUUID=fedcba98-7654-3210-cafe-5e0710000002 console=tty0 console=ttyS0,115200 rootwait earlyprintk rw initrd=cip-core-image-cip-core-buster-qemu-amd64-initrd.img
watchdog timeout: 60 seconds
ustate:           1 (INSTALLED)

kernel: C:BOOT1:vmlinuz%-linux --> Character % is added in the kernel filename

Looks like the swupdate handler is not passing the correct value.

[DEBUG] : SWUPDATE running :  [bootloader_env_set] : Setting kernelfile=C:BOOT1:vmlinuz%-linux in bootloader environment

Please check the attached log file for more information.

cip-swupdate-log.txt

Edited by Shivanand Kunijadar
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information