This is an old revision of the document!
====== Problems faced in getting PxeLinux and PXE-Knife working with QEMU over HTTP ====== I am taking similar approach as I took for TFTP for which QEMU + PXE Knife combination is working if I use qemu TFTP stack. Here are the things that are working for me. <code> qemu -net nic -net user -fda ./gpxe.dsk -bootp /pxelinux.0 -tftp /home/myname/for_pxe_knife/ </code> which boots pxe-knife over tftp and <code> qemu -fda gpxe.dsk -net nic -net user -bootp http://10.0.0.2/gpxe/gtest.gpxe </code> boots gtest.gpxe which is copy of [[http://etherboot.org/gtest/gtest.gpxe]].\\ But when I try and use HTTP with qemu over pxe_knife which is based on __pxelinux__, it does not work. <code> qemu -fda gpxe.dsk -net nic -net user -bootp http://10.0.0.2/pxeknife/pxelinux.0 </code> It loads pxelinux.0 successfully, but fails in loading //pxeknife/default// file with error <code> TFTP prefix: http://10.0.0.2/ Trying to load: pxelinux.cfg/default Unable to locate configuration file Boot failed: press a key to retry, or wait for reset... </code> ==== With gpxe embedded script ==== I recompiled the gpxe with following embedded script ../contrib/scripts/forpxeknife.gpxe, <code> #!gpxe echo "Hi there" dhcp net0 set 209:string pxelinux.cfg/default set 210:string http://10.0.0.2/pxeknife/ chain http://10.0.0.2/pxeknife/pxelinux.0 boot </code> and I compile with following command <code> make clean && make EMBEDDED_IMAGE=../contrib/scripts/forpxeknife.gpxe </code> I execute qemu with no extra parameters at-all. <code> qemu -fda gpxe.dsk </code> I do get my echo messages printed, but still I am getting same error. <code> TFTP prefix: http://10.0.0.2/ Trying to load: pxelinux.cfg/default Unable to locate configuration file Boot failed: press a key to retry, or wait for reset... </code> All above problems were there because of older version of PxeLinux :-(\\ I switched to 3.80 and problem solved :-)\\ Refer page [[wiki:qemupxeknifehttp]] to check out proper working documentation.