====== Integreting BKO with latest gpxe and rom-o-matic ======
The latest gpxe code, and gpxe version used by rom-o-matic, both are creating trubble while booting.\\
I am hosting them at [[http://etherboot.org/share/pravin/BKO/rom-o-matic/]]
Following is the error thrown.
$qemu -fda gpxe-git-rtl8139.dsk -net nic,model=rtl8139 -net user
...
...
...
PXELINUX 3.80 2009-05004 Copyright(C) 1994-2009 H. Peter Anvin et al
!PXE entry point found (we hope) at 9C79:039E via plan A.
UNDI code segment at 9C79 len 0794
UNDI data segment at 9CF3 len 2CC8
Getting cached packet 01 02PXE API call failed, error 0000
Boot failed: press any key to retry, or wait for reset........
I am not sure if this problem is from gpxe or from pxelinux. My guess is that, it should be gpxe problem
as same setup is working fine with my version of gpxe code.\\
all my modifications are listed on page [[pxekniferomomatic]]
===== Error Location =====
Problem should be because of latest gpxe code ///pub/share/pravin/gpxe.git//, because when I use the code which I normally use on my machine (which is copied on ///pub/share/pravin/gpxe//), it works fine.
===== trying to see if networking works =====
the location for problematic gpxe is
$ cd /pub/share/pravin/gpxe.git/src/
$ git log
commit 768fe5c032727f585e29834d427cb5fd4ff8d84e
Merge: e957581... edfbd4e...
Author: Marty Connor
Date: Thu Jun 4 20:20:03 2009 -0400
Merge branch 'master' of /pub/scm/gpxe
commit edfbd4e4fa63ded7df7232d38cfeb16bc5662f6d
Author: Michael Brown
Date: Fri Jun 5 01:06:07 2009 +0100
[netdevice] Fix incorrect value for MAX_LL_HEADER_LEN
MAX_LL_HEADER_LEN is erroneously set to 6 rather than 14, resulting
in possible data corruption whenever we send an ARP packet.
Fix value and add a comment explaining why MAX_LL_ADDR_LEN is greater
than MAX_LL_HEADER_LEN.
Reported-by: Joshua Oreman
and working gpxe is at
$ cd /pub/share/pravin/gpxe/src/
$ git log
commit f4bf4e69f797e3a93e02b51aae43af303bb94525
Author: Michael Brown
Date: Mon May 18 09:33:36 2009 +0100
[legal] Add FILE_LICENCE declaration to romprefix.S
commit c44a193d0d147ed6f98741124569864e516e9d4b
Author: Michael Brown
Date: Fri May 1 15:41:06 2009 +0100
[legal] Add a selection of FILE_LICENCE declarations
Add FILE_LICENCE declarations to almost all files that make up the
various standard builds of gPXE.
Following command works in my old pxe, but does not work in trubbled pxe.
$ make bin/rtl8139.dsk
$ qemu -fda bin/rtl8139.dsk -net nic,model=rtl8139 -net user -bootp http://etherboot.org/share/pravin/pxeDHCP.gpxe
===== Going one more level deeper =====
Testing if generic network booting over http works or not by using __-bootp [[http://etherboot.org/gtest/gtest.gpxe]]__
qemu -fda bin/rtl8139.dsk -net nic,model=rtl8139 -net user -bootp http://etherboot.org/gtest/gtest.gpxe
**This works for both problematic and good gpxe**
So, the problem lies in transition from
qemu -fda bin/rtl8139.dsk -net nic,model=rtl8139 -net user -bootp http://etherboot.org/gtest/gtest.gpxe
to
qemu -fda bin/rtl8139.dsk -net nic,model=rtl8139 -net user -bootp http://etherboot.org/share/pravin/pxeDHCP.gpxe
===== The commit causing problem =====
used git bisect to find the problematic commit.
the test used to check if commit is correct or not is
make clean
make bin/rtl8139.dsk
qemu -fda bin/rtl8139.dsk -net nic,model=rtl8139 -net user -bootp http://etherboot.org/share/pravin/pxeDHCP.gpxe
Commit used as last known good commit is
git bisect good f4bf4e6
Following is the problematic commit.
$ git bisect bad
3c06277bbb6ea135e6a1daf22463a347fc7898c7 is first bad commit
commit 3c06277bbb6ea135e6a1daf22463a347fc7898c7
Author: Michael Brown
Date: Tue May 26 11:05:58 2009 +0100
[settings] Allow for arbitrarily-named settings
This provides a mechanism for using arbitrarily-named variables within
gPXE, using the existing syntax for settings.
:040000 040000 59221f26fc6a070c21fad5ca53329202425336ba 5aebb5cbcfe8c1aafa4679fd5938e12eb182c07b M src