[ipxe-devel] building for use virtualbox

Robin Smidsrød robin at smidsrod.no
Mon Feb 4 15:47:30 UTC 2013

On 04.02.2013 15:39, Klaus Espenlaub wrote:
> On 29.01.2013 13:45, Robin Smidsrød wrote:
>> On 28.01.2013 17:01, Klaus Espenlaub wrote:
>>> Actually it's not really intentional that VirtualBox ships iPXE, because
>>> the "switch to iPXE" project isn't complete yet. The intended "free" PXE
>>> ROM in the VirtualBox base package would be some reasonably dated
>>> Etherboot (derived from "almost" 5.4.3). Seems to have slipped into
>>> 4.2.0 :)
>> Interesting to hear. I noticed that there was a gpxe subdir in the vbox
>> source code, but it wasn't really the one that was part of the binary
>> build you can download. Let's hope this is settled soon, so that the
>> source code and the binary build matches.
> Wonder where you saw a gpxe subdir... internally we're working on some
> aging iPXE git snapshot, but that'll be updated when we officially
> switch to iPXE (and kick out Etherboot). No idea when that'll happen,
> this is blocked purely on the Oracle side, no issue with iPXE at all.

Is there something we, the community of both vbox and ipxe, can do to
speed this up, like testing?

> Either way, the next VirtualBox release will ship Etherboot again. Can't
> predict when the "switch to iPXE" project will start moving again.

I was mistaken. I rechecked my 4.2.4 source download. It was Etherboot I
saw, not gPXE.

>>> Telling VirtualBox to use a different PXE ROM is quite easy, you just
>>> have to make sure that the ROM image meets the size requirements. 56KB
>>> max (to spell it out: 57344 bytes), anything bigger will be silently
>>> ignored and the internal fallback will kick in again.
>>> You have to be rather selective with the features, otherwise it won't
>>> fit. It's so easy to pick too many iPXE features :)
>> Are you able to build one ROM file that supports all the NICs vbox
>> supports? I currently build intel--virtio-net--pcnet32.dsk and boot
>> using a floppy to get support for all the hardware. That is obviously
>> not the best solution.
> Yes, but this means kicking out pretty much any cool feature which is
> not mandatory in the PXE spec (i.e. only TFTP, no HTTP/iSCSI/..., and
> also only the PXE executable format).

Thanks for the heads up. I'll have to try that and report back.

>> I also tried building bin/10222000.rom, bin/1af41000.rom and
>> bin/8086100e.rom, but I'm not sure if it is possible to combine them all
>> together and still get below the 56KB limit. That would make it so much
>> easier than having to twiddle the NIC ROM for each VM based on what
>> network card is configured. Then I could just replace the global PXE ROM
>> and be done with it. The non-free Intel PXE ROM works well, but it only
>> supports the Intel adapter, as far as I can tell. Would be nice to have
>> PXE support for the others as well.
>> It would be super-helpful if you could post the config used to build the
>> vbox-bundled iPXE ROM. I assume you have access to it, considering you
>> work at Oracle...
> We use a different build system, and that means I can't easily tell you
> the equivalent make target for iPXE. Forgot those already, but I know
> that it allows to build ROMs which includes support for several NIC
> types. VirtualBox includes the ROM as a system BIOS extension, so it
> doesn't care about the PCI IDs in the PnP ROM header.

This last bit about the PnP ROM header was useful. That should make
debugging a bit simpler.

-- Robin

More information about the ipxe-devel mailing list