====== Differences ====== This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
soc:2009:pravin:journal:probsbkoromomatic [2009/06/09 21:41]
less1 created
soc:2009:pravin:journal:probsbkoromomatic [2009/06/10 13:44] (current)
less1
Line 1: Line 1:
 ====== Integreting BKO with latest gpxe and rom-o-matic ====== ====== 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.+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. Following is the error thrown.
 <​code>​ <​code>​
 +$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. !PXE entry point found (we hope) at 9C79:039E via plan A.
 UNDI code segment at 9C79 len 0794 UNDI code segment at 9C79 len 0794
Line 11: Line 17:
 Boot failed: press any key to retry, or wait for reset........ Boot failed: press any key to retry, or wait for reset........
 </​code>​ </​code>​
 +
 +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 
 +<​code>​
 +$ cd /​pub/​share/​pravin/​gpxe.git/​src/​
 +$ git log 
 +commit 768fe5c032727f585e29834d427cb5fd4ff8d84e
 +Merge: e957581... edfbd4e...
 +Author: Marty Connor <​mdc@etherboot.org>​
 +Date:   Thu Jun 4 20:20:03 2009 -0400
 +
 +    Merge branch '​master'​ of /​pub/​scm/​gpxe
 +
 +commit edfbd4e4fa63ded7df7232d38cfeb16bc5662f6d
 +Author: Michael Brown <​mcb30@etherboot.org>​
 +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 <​oremanj@rwcr.net>​
 +</​code>​
 +
 +and working gpxe is at
 +
 +<​code>​
 +$ cd /​pub/​share/​pravin/​gpxe/​src/​
 +$ git log 
 +
 +
 +commit f4bf4e69f797e3a93e02b51aae43af303bb94525
 +Author: Michael Brown <​mcb30@etherboot.org>​
 +Date:   Mon May 18 09:33:36 2009 +0100
 +
 +    [legal] Add FILE_LICENCE declaration to romprefix.S
 +
 +commit c44a193d0d147ed6f98741124569864e516e9d4b
 +Author: Michael Brown <​mcb30@etherboot.org>​
 +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.
 +
 +</​code>​
 +Following command works in my old pxe, but does not work in trubbled pxe.
 +<​code>​
 +$ make bin/​rtl8139.dsk
 +$ qemu -fda bin/​rtl8139.dsk -net nic,​model=rtl8139 -net user -bootp http://​etherboot.org/​share/​pravin/​pxeDHCP.gpxe
 +</​code>​
 +
 +
 +===== Going one more level deeper =====
 +Testing if generic network booting over http works or not by using  __-bootp [[http://​etherboot.org/​gtest/​gtest.gpxe]]__
 +
 +<​code>​
 +qemu -fda bin/​rtl8139.dsk -net nic,​model=rtl8139 -net user -bootp http://​etherboot.org/​gtest/​gtest.gpxe
 +</​code>​
 +
 +
 +**This works for both problematic and good gpxe**
 +
 +So, the problem lies in transition from
 +
 +<​code>​
 +qemu -fda bin/​rtl8139.dsk -net nic,​model=rtl8139 -net user -bootp http://​etherboot.org/​gtest/​gtest.gpxe
 +</​code>​
 +
 +to
 +
 +<​code>​
 +qemu -fda bin/​rtl8139.dsk -net nic,​model=rtl8139 -net user -bootp http://​etherboot.org/​share/​pravin/​pxeDHCP.gpxe
 +</​code>​
 +
 +
 +===== The commit causing problem =====
 +used git bisect to find the problematic commit.
 +the test used to check if commit is correct or not is
 +<​code>​
 +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
 +</​code>​
 +
 +
 +Commit used as last known good commit is
 +<​code>​
 +git bisect good f4bf4e6
 +</​code>​
 +
 +Following is the problematic commit.
 +<​code>​
 +$ git bisect bad
 +3c06277bbb6ea135e6a1daf22463a347fc7898c7 is first bad commit
 +commit 3c06277bbb6ea135e6a1daf22463a347fc7898c7
 +Author: Michael Brown <​mcb30@etherboot.org>​
 +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
 +</​code>​
 +

QR Code
QR Code soc:2009:pravin:journal:probsbkoromomatic (generated for current page)