[PATCH] bootstd: Fix relative path use in extlinux bootmeth
Simon Glass
sjg at chromium.org
Mon Jun 12 23:17:49 CEST 2023
Hi Jonas,
On Fri, 9 Jun 2023 at 15:59, Jonas Karlman <jonas at kwiboo.se> wrote:
>
> Using relative path in a /boot/extlinux/extlinux.conf file fails to load
> linux kernel.
>
> Using a /boot/extlinux/extlinux.conf file:
>
> LABEL test
> LINUX ../linux/Image
>
> Result in following error:
>
> Retrieving file: ../linux/Image
> Skipping test for failure retrieving kernel
> Boot failed (err=-14)
>
> However, using sysboot cmd successfully load kernel using same file:
>
> sysboot mmc 1:1 any ${scriptaddr} /boot/extlinux/extlinux.conf
>
> Retrieving file: /boot/extlinux/../linux/Image
>
> Fix relative path using bootmeth extlinux by supplying bootfile path
> instead of subdir path in the call to pxe_setup_ctx, same as done in the
> sysboot command.
>
> Fixes: 31aefaf89a5b ("bootstd: Add an implementation of distro boot")
> Signed-off-by: Jonas Karlman <jonas at kwiboo.se>
> ---
> boot/bootmeth_extlinux.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
Reviewed-by: Simon Glass <sjg at chromium.org>
Thank you for the fix.
I'd like to find a way to test some of this internal code, but so far
have not had any easy ideas.
>
> diff --git a/boot/bootmeth_extlinux.c b/boot/bootmeth_extlinux.c
> index 24be0760229c..6b2b84003836 100644
> --- a/boot/bootmeth_extlinux.c
> +++ b/boot/bootmeth_extlinux.c
> @@ -150,7 +150,7 @@ static int extlinux_boot(struct udevice *dev, struct bootflow *bflow)
> info.dev = dev;
> info.bflow = bflow;
> ret = pxe_setup_ctx(&ctx, &cmdtp, extlinux_getfile, &info, true,
> - bflow->subdir, false);
> + bflow->fname, false);
> if (ret)
> return log_msg_ret("ctx", -EINVAL);
>
> --
> 2.40.1
>
Regards,
Simon
More information about the U-Boot
mailing list