====== 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.