tech-install archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: EFI Boot problem



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


Home | Main Index | Thread Index | Old Index