====== 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. qemu -net nic -net user -fda ./gpxe.dsk -bootp /pxelinux.0 -tftp /home/myname/for_pxe_knife/ which boots pxe-knife over tftp and qemu -fda gpxe.dsk -net nic -net user -bootp http://10.0.0.2/gpxe/gtest.gpxe 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. qemu -fda gpxe.dsk -net nic -net user -bootp http://10.0.0.2/pxeknife/pxelinux.0 It loads pxelinux.0 successfully, but fails in loading //pxeknife/default// file with error 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... ==== With gpxe embedded script ==== I recompiled the gpxe with following embedded script ../contrib/scripts/forpxeknife.gpxe, #!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 and I compile with following command make clean && make EMBEDDED_IMAGE=../contrib/scripts/forpxeknife.gpxe I execute qemu with no extra parameters at-all. qemu -fda gpxe.dsk I do get my echo messages printed, but still I am getting same error. 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... 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.