Re: EFI Boot problem

Peter Skvarka <[email protected]> Wed, 19 Feb 2025 10:45:53 +0100
Newsgroups gmane.os.netbsd.devel.installation
Message-ID <[email protected]>
Yes, my opinion is the same like you wrote, it's this machine (or this 
EFI partition) specific problem.

I found workaround.
Rebuilt bootx64.efi with path equal to "boot.cfg" instead of 
"esp:/EFI/NetBSD/boot.cfg".
It works with this adjustment.
So bootx64.efi has problem with above path on this machine.

I am not familiar with history of this efiboot development and how in 
current code object "esp:" is created,
but it seems that run-time function open() has problem.
open() should return error due to invalid path and not hang. Maybe it 
can help to add in C code some test like:

if(files on "esp:..." are readable) {
   use open("esp:/EFI/NetBSD/boot.cfg",..)
} else {
   use open("boot.cfg",...) or printf(error message)
}

This HW (HP Compaq Elite 8300 CMT) is quite old (16years), it supports 
as BIOS as EFI boot and it seems that also some mix of both.

On 2/19/25 09:19, Martin Husemann wrote:
> On Tue, Feb 18, 2025 at 07:05:36PM +0100, Peter Skvarka wrote:
>> and hangs inside of open().
>>
>> open() uses config path from:
>> #define EFIBOOTCFG_FILENAME     "esp:/EFI/NetBSD/boot.cfg"
>> it is seen on my printf messages.
>>
>> I have present valid boot.cfg there.
>> When I remove boot.cfg the result is the same, it hangs inside of open()
>>
>> Why open() is not work on that older machine ?
>> Any ideas ?
> That sounds like a bug in your UEFI firmware. Maybe it does not like the
> exact file system format the ESP uses? You could try saving the contents,
> reformatting with various newfs_msdos options (especially -F 12 ... 32)
> and restoring the content.
>
> Martin