Hi Peter-
I actually had NOT come across mkelfimage!
It may have to do with the fact that this page appears to be a stub:


and searching on the new documentation site yields no hits. 

Interestingly, the Google result for that page does show some text. Maybe an old version has it? I'll investigate.

Thanks for the hints so far, either way!


Peter Stuge <peter@stuge.se> schrieb am Fr., 19. Apr. 2019, 05:12:
Rafael Send wrote:
> I had already testes the coreboot + Linux kernel without SeaBIOS,
> that works fine.

That's a great start! So did you look into what happens under the
hood when you do that, to learn?

The original common case for coreboot payloads was also ELF files, so
there is much overlap with what you want to achieve.

You probably already noticed the tool mkelfimage in the pages I linked to.
Did you look into what it does, and why it's needed in the first place?
(Hint: Linux is a bit needy.)

> But I do want the rest of the boot menu presented by SeaBIOS
> because I usually use Windoze as well.

SeaBIOS creates a BIOS environment when there isn't one. That is its
key feature. This is a coffin for Windows to lie in.

BIOS environments are just inadequate in general, and supremely ill
equipped in particular for what you want to accomplish.

Consider using SeaBIOS exclusively for what it was made; Windows coffin.

Consider another payload before (time wise) SeaBIOS to provide the menu.

> Even if I put the initrd inside the kernel, that can't be loaded by
> SeaBIOS unless the whole thing is an ELF file, right?

I guess so.

The true-to-form BIOS way would probably be to put FreeDOS,
loadlin.exe, kernel and initramfs into a disk image. So please don't do
that. If you really want to, please be rational: Ask yourself why you
want to first start the wrong OS in order to then start the right OS.

> How would that step go (vmlinuz -> ELF)?

I'd recommend to study what coreboot does. It's not trivial, but also
not super complicated. The key point is that Linux needs a loader stub
(code and data) to be generated. It's not possible to just jump right
into the kernel and have it start. Unfortunately.

SeaBIOS mailing list -- seabios@seabios.org
To unsubscribe send an email to seabios-leave@seabios.org