[ipxe-devel] building for use virtualbox

Klaus Espenlaub klaus.espenlaub at oracle.com
Mon Feb 4 14:39:33 UTC 2013

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.

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

>> 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).

> 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.


> -- Robin

More information about the ipxe-devel mailing list