Re: [OE-core][PATCH] grub: update search parameter

Yoann Congal
2026-04-23T06:38:08Z

On Thu Apr 23, 2026 at 8:04 AM CEST, Xiangyu Chen via lists.openembedded.org wrote:
> Hi Richard,
>
>
> Since the behavior was found in OE scarthgap branch, could you please
> help to cherry-pick this
>
> commit: 42b530581f72 ("grub: update search parameter") to whinlatter and
> scarthgap branch?

Hello,

For whinlatter, that will be too late (the last build has already left for
QA).

For scarthgap, I would need to look into it (change does not look
trivial). Can you send a rebased patch targeting scarthgap?

Thanks!

>
>
> Thanks.
>
>
> Br,
>
> Xiangyu
>
> 在 2026/3/31 10:57, Xiangyu Chen 写道:
>> Hi Paul,
>>
>>
>> On 3/5/26 19:49, Paul Barker wrote:
>>> I'm not sure that this can work for all use cases. The grub
>>> documentatation for hints says "First try the device HINT" (i.e. it's
>>> explicitly a device), whereas the documentation for cmdpath says that it
>>> is "an absolute directory name".
>> While the documentation defines $cmdpath as a directory and hints as
>> devices, grub’s internal implementation of
>> grub_disk_open (grub-core/kern/disk.c [1]) is designed to handle this
>> exact "device+path" format.
>>
>> When a hint like (hd0,gpt1)/EFI/BOOT/ is passed, grub_disk_open calls
>> find_part_sep to locate the partition/path delimiter.
>> It then uses grub_memcpy to extract only the device part (e.g., (hd0)
>> into the raw buffer for the disk driver.
>>
>> The remaining string (gpt1)/EFI/BOOT/) is passed to
>> grub_partition_probe, which identifies the partition and gracefully
>> ignores the trailing directory path.
>>
>> The current syntax ($cmdpath) results in double parentheses ((hd0...))
>> if the variable is already populated.
>> In grub_disk_open, this extracts a malformed device name ((hd0 which
>> no driver can open, triggering a hard no such device error.
>>
>>
>> Ref:
>>
>> [1]
>> https://elixir.bootlin.com/grub/grub-2.14/source/grub-core/kern/disk.c#L192
>>
>>
>> Br,
>>
>> Xiangyu
>>

--
Yoann Congal
Smile ECS