[gPXE-devel] Opensolaris workaround

Stefan Hajnoczi stefanha at gmail.com
Sun Apr 25 13:38:52 EDT 2010


On Sun, Apr 25, 2010 at 12:23 AM, Floris Bos <bos at je-eigen-domein.nl> wrote:
> I managed to get Opensolaris working, but I'm not sure if my quick workaround
> is the best way to solve it.

Nice job figuring this out and getting gPXE to boot OpenSolaris!

Syslinux mboot.c32 supports Solaris so I have CCed H. Peter Anvin who
might have some ideas and has solved GRUB and Solaris multiboot quirks
for Syslinux.

> - Opensolaris expects to receive the full path to the kernel, not just the
> filename.

Do you have a link to the code?  Depending on how the image command
line is parsed it may be possible to satisfy Solaris without forcing
the image command-line to start with "/platform/i86pc/kernel/unix".
Maybe ;).

> - Grub loads modules at the beginning of the address space, while Gpxe seems
> to do at the end.
> Opensolaris's kernel startup routine expects grub's behavior, and searches for
> a region of free memory after the address of the last loaded module, which is
> normally not available when you use gpxe.

Do you have a link to the code?  Any idea what the minimum free memory
requirement is?

We can't hardcode urealloc(UNULL, 255*1024*1024) since multiboot
should work on machines with 256 MB or less.

> - Opensolaris expects to be passed the DHCP ACK packet.

This quirk disregards the multiboot specification by replacing what
would normally be a drive description with a DHCP packet.  This means
gPXE cannot unconditionally fill the DHCP packet in since non-Solaris
images might try to interpret this information as a drive.

The Solaris kernel either needs to be recognized automatically by gPXE
or a setting is needed to control this variation from the multiboot
specification.

Any ideas on recognizing a Solaris kernel?  If there is no simple
unique way to identify a Solaris kernel image then a settings variable
could be used.

> Perhaps someone more familiar with the gpxe codebase, can take a look at it
> and transform it into a proper patch.

Thanks for your efforts.  I think some discussion and refinement of
your patch will lead to Solaris boot support in mainline gPXE, so I
hope you are interested in taking this patch further :).

Stefan


More information about the gPXE-devel mailing list