@@ -380,27 +380,42 @@ function setup_reboot_variables()
380
380
{
381
381
# Kernel and initrd image
382
382
HWSKU=$( show platform summary --json | python -c ' import sys, json; print(json.load(sys.stdin)["hwsku"])' )
383
+ CURR_SONIC_IMAGE=$( sonic-installer list | grep " Current: " | cut -d ' ' -f 2)
383
384
NEXT_SONIC_IMAGE=$( sonic-installer list | grep " Next: " | cut -d ' ' -f 2)
384
385
IMAGE_PATH=" /host/image-${NEXT_SONIC_IMAGE# SONiC-OS-} "
386
+ if [ " $NEXT_SONIC_IMAGE " = " $CURR_SONIC_IMAGE " ]; then
387
+ if [[ -f ${DEVPATH} /${PLATFORM} /installer.conf ]]; then
388
+ . ${DEVPATH} /${PLATFORM} /installer.conf
389
+ fi
390
+ else
391
+ tmp_dir=` mktemp -d`
392
+ mount -o ro $IMAGE_PATH /fs.squashfs $tmp_dir
393
+ if [[ -f $tmp_dir /${DEVPATH} /${PLATFORM} /installer.conf ]]; then
394
+ . $tmp_dir /${DEVPATH} /${PLATFORM} /installer.conf
395
+ fi
396
+ umount $tmp_dir
397
+ rm -rf $tmp_dir
398
+ fi
399
+
385
400
if grep -q aboot_platform= /host/machine.conf; then
386
401
if is_secureboot; then
387
402
KERNEL_IMAGE=" "
388
403
BOOT_OPTIONS=" SONIC_BOOT_TYPE=${BOOT_TYPE_ARG} secure_boot_enable=1"
389
404
else
390
405
KERNEL_IMAGE=" $( ls $IMAGE_PATH /boot/vmlinuz-* ) "
391
- BOOT_OPTIONS=" $( cat " $IMAGE_PATH /kernel-cmdline" | tr ' \n' ' ' ) SONIC_BOOT_TYPE=${BOOT_TYPE_ARG} "
406
+ BOOT_OPTIONS=" $( cat " $IMAGE_PATH /kernel-cmdline" | tr ' \n' ' ' ) ${KEXEC_LOAD_EXTRA_CMDLINE_LINUX} SONIC_BOOT_TYPE=${BOOT_TYPE_ARG} "
392
407
fi
393
408
INITRD=$( echo $KERNEL_IMAGE | sed ' s/vmlinuz/initrd.img/g' )
394
409
elif grep -q onie_platform= /host/machine.conf; then
395
410
if [ -r /host/grub/grub.cfg ]; then
396
411
KERNEL_OPTIONS=$( cat /host/grub/grub.cfg | sed " /$NEXT_SONIC_IMAGE '/,/}/" ' !' " g" | grep linux)
397
412
KERNEL_IMAGE=" /host$( echo $KERNEL_OPTIONS | cut -d ' ' -f 2) "
398
- BOOT_OPTIONS=" $( echo $KERNEL_OPTIONS | sed -e ' s/\s*linux\s*/BOOT_IMAGE=/' ) SONIC_BOOT_TYPE=${BOOT_TYPE_ARG} "
413
+ BOOT_OPTIONS=" $( echo $KERNEL_OPTIONS | sed -e ' s/\s*linux\s*/BOOT_IMAGE=/' ) ${KEXEC_LOAD_EXTRA_CMDLINE_LINUX} SONIC_BOOT_TYPE=${BOOT_TYPE_ARG} "
399
414
INITRD=$( echo $KERNEL_IMAGE | sed ' s/vmlinuz/initrd.img/g' )
400
415
# Handle architectures supporting Device Tree
401
416
elif [ -f /sys/firmware/devicetree/base/chosen/bootargs ]; then
402
417
KERNEL_IMAGE=" $( ls $IMAGE_PATH /boot/vmlinuz-* ) "
403
- BOOT_OPTIONS=" $( cat /sys/firmware/devicetree/base/chosen/bootargs | sed ' s/.$//' ) SONIC_BOOT_TYPE=${BOOT_TYPE_ARG} "
418
+ BOOT_OPTIONS=" $( cat /sys/firmware/devicetree/base/chosen/bootargs | sed ' s/.$//' ) ${KEXEC_LOAD_EXTRA_CMDLINE_LINUX} SONIC_BOOT_TYPE=${BOOT_TYPE_ARG} "
404
419
INITRD=$( echo $KERNEL_IMAGE | sed ' s/vmlinuz/initrd.img/g' )
405
420
406
421
# If initrd is a U-Boot uImage, remove the uImage header
0 commit comments