[PATCH] distro_boot: Fix bootfile env after calling boot_extlinux
Artem Lapkin
email2tema at gmail.com
Tue Oct 12 10:55:44 CEST 2021
Problem
PXE cannot boot normally after Sysboot changed the bootfile env (called
from boot_extlinux) from the default "boot.scr.uimg" to
"/boot/extlinux/extlinux.conf".
In addition, an unbootable extlinux configuration will also make the PXE
boot unbootable, because it will use the incorrect path "/boot/extlinux/"
from the bootfile env.
Solution
Save and restore default bootfile env value when boot_extlinux is used.
Example
================================================================
Hit SPACE in 2 seconds to stop autoboot
... is now current device
Found /boot/extlinux/extlinux.conf
Retrieving file: /boot/extlinux/extlinux.conf
413 bytes read in 2 ms (201.2 KiB/s)
Skipping Krescue for failure retrieving kernel
SCRIPT FAILED: continuing...
...
Speed: 1000, full duplex
BOOTP broadcast 1
DHCP client bound to address 192.168.11.151 (8 ms)
Using ethernet at ff3f0000 device
TFTP from server 192.168.11.1; our IP address is 192.168.11.151
Filename '/boot/extlinux/pxelinux.cfg/default'.
Not retrying...
================================================================
Signed-off-by: Artem Lapkin <art at khadas.com>
---
include/config_distro_bootcmd.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/config_distro_bootcmd.h b/include/config_distro_bootcmd.h
index 3f724aa10f..db3d1b2362 100644
--- a/include/config_distro_bootcmd.h
+++ b/include/config_distro_bootcmd.h
@@ -445,7 +445,9 @@
"${devnum}:${distro_bootpart} " \
"${prefix}${boot_syslinux_conf}; then " \
"echo Found ${prefix}${boot_syslinux_conf}; " \
+ "bootfile_bak=${bootfile}; " \
"run boot_extlinux; " \
+ "setenv bootfile ${bootfile_bak}; " \
"echo SCRIPT FAILED: continuing...; " \
"fi\0" \
\
--
2.25.1
More information about the U-Boot
mailing list