On 16/01/16 14:19, Linus Lüssing wrote:
No; on a UEFI platform you can load only iPXE scripts and EFI
executables. You can't directly load an ELF binary.
Ah, okay. But technically, theoretically it would be possible to
implement an iPXE EFI to boot into an ELF kernel, wouldn't it? I
mean, even an EFI kernel will be able and need to run ELFs at some
point.
It would be fairly easy to place an arbitrary ELF binary in memory and
jump to its execution point, but that ELF binary would need some way to
interact with the firmware to carry out tasks such as discovering the
system memory map. No such standard is defined on UEFI except for the
EFI API itself, which requires an EFI executable.
Anyways, the kernel I have seems to have CONFIG_EFI_STUB=y set, so
it should be suitable to be chainloaded from an iPXE EFI, even if
"$ file vmlinux" says it's an ELF, right?
(though from the brief wiki scaning I'm not quite sure what
EFI_STUB does, yet. Especially don't know whether extracting the
vmlinux from the provided vmlinuz kind of breaks EFI_STUB for
vmlinux bc. of specific entry point addresses or something like
that, don't know - that would explain the "Exec format error" for
the extracted vmlinux and why there's no such error for the
original vmlinuz)
vmlinux is an ELF binary
vmlinuz is vmlinux wrapped into the format of an EFI executable
(Actually, vmlinuz is a hybrid binary that acts as both an EFI
executable and a bzImage, but that's not relevant here.)
Michael
_______________________________________________
ipxe-devel mailing list
[email protected]
https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel