[gPXE-devel] [Qemu-devel] Netboot happens twice (first fail) when using etherboot ROMs

Michael Tokarev mjt at tls.msk.ru
Mon Aug 2 12:43:14 EDT 2010


02.08.2010 20:23, Gianni Tedesco wrote:
> On Sun, 2010-08-01 at 21:27 +0100, Stefan Hajnoczi wrote:
>> On Sun, Aug 1, 2010 at 10:44 AM, Michael Tokarev <mjt at tls.msk.ru> wrote:
>>> I wonder why with etherboot ROMs, the network boot
>>> happens two times (0.12.x), like this:
>>>
>>> -----
>>>  Starting SeaBIOS (version 0.5.1-20100801_125707-gandalf)
>>>
>>>  Booting from virtio-net.zrom 5.4.4 (GPL) ether...
>>>  ROM segment 0xc900 length 0x8000 reloc 0x00000000
>>>  Etherboot 5.4.4 (GPL) http://etherboot.org
>>>  Drivers: VIRTIO-NET   Images: NBI ELF PXE   Exports: PXE
>>>  Protocols: DHCP TFTP
>>>  Relocating _text from: [00087780,0009f310) to [07ee8470,07f00000)
>>>  Boot from (N)etwork or (Q)uit?
>>>
>>>  Probing pci nic...
>>>  Probing isa nic...
>>>  <sleep>
>>>  Boot from (N)etwork or (Q)uit?
>>>
>>>  Probing pci nic...
>>>  [virtio-net]I/O address 0x0000c020, IRQ #11
>>>  MAC address 52:54:00:12:34:56
>>>  Searching for server (DHCP)....
>>> -----
>>>
>>> The boot ROMs supplied with the source works as expected.
>>>
>>> What's the difference?  Is gpxe behaves differently, or
>>> is that a difference in build options?
>>
>> Etherboot and gPXE are different codebases.  gPXE was forked from
>> Etherboot around 2005 and is now very different.  The Etherboot and
>> gPXE behavior cannot always be compared, they are not meant to work
>> the same.

I never supposed it should work the same.  I wondered
why etherboot shows somewhat weird behavour.

> The BIOS boot protocol allows to continue from next device if an earlier
> boot method doesn't work. In the real hardware the ROM typically only
> supports one type of card. Therefore a ROM ought to be loaded and tried
> from each NIC until one of the attempts successfully boots or there are
> no more to try.

That's quite understandable.  But I _guess_ it's a bit more than that,
like, just from the wild, different paths or busses to the _same_ device
(say, PCI and ISA).

> Anyway, you will need to post more info on your setup: what and how many
> NIC's, where the ROM binaries came from...

There's no info to post.

Standard qemu-kvm (or qemu) 0.12.[45], and standard etherboot boot
rom (from rom-o-matic will do too), without any extra options.  Only
one NIC in a virtual machine, like this:

  kvm -net nic,model=rtl8139 -net tap -boot n

(no other options; model does not matter as long as the
right pxe ROM can be found).

The boot ROMs are searched in, depending on the qemu/kvm
configuration, /usr/share/kvm/.  If I put gpxe ones in there,
I see only one, successful, attempt to boot.  If I put
etherboot rom, there will be two attempts, first unsuccessful.

Not that it is a big issue, just... weird, and annoying --
in Debian for example we (re)build boot ROMs during
package build instead of using the ones supplied in
the source tarball, and currently gpxe isn't packages
in debian, but etherboot behaves somewhat erratically
(but works in the end), so I wondered what the issue is.

Thanks!

/mjt


More information about the gPXE-devel mailing list