Greetings,
I have been trying to PXE boot clients over HTTP in Tiny Core 10.0 and could not find simple, direct, clear instructions on how to do this anywhere on the Web. I figured others might like to know just how easy it can be. This short note will be of most help to those that already have a PXE server up and running using syslinux (pxelinux.0) and tftp. If you don't have aWeb server set up yet you will also need to install something like apache or lightpd, etc. And you will need to configure it to share out the netboot/tftpboot/pxeboot files.
To change from using tftp to serve up the boot files you will need to make two changes. The first change is to whatever program you are using to serve pxelinux.0 to your PXE clients. I am currently using dnsmasq. For that I would edit /etc/dnsmasq.conf and change:
# The boot filename.
dhcp-boot=pxelinux.0
To:
# The boot filename.
dhcp-boot=lpxelinux.0
Note that the only change to dnsmasq.conf is the lower-case 'L' before 'pxelinux.0', which is now 'lpxelinux.0'.
Save the dnsmasq.conf file and restart dnsmasq.
For a typical tftp PXE setup you might have an entry like this in your 'default' file:
LABEL core1
MENU LABEL 0^1 - Tiny Core Linux 10.0 (base only)
KERNEL images/tc10/vmlinuz
APPEND quiet vga=786 initrd=images/tc10/core.gz
Now comes the easy part. To change from using tftp to serve the two boot files, just add the URL of your web server that is sharing out the netboot/pxeboot/tftpboot files to the path. Here is the same 'default' file snippet as above but with the URL added:
LABEL core1
MENU LABEL 0^1 - Tiny Core Linux 10.0 (base only)
KERNEL http://192.168.2.2:/images/tc10/vmlinuz
APPEND quiet vga=786 initrd=http://192.168.2.2:/images/tc10/core.gz
All that was added was the URL:
http://192.168.2.2:/. It doesn't get much easier than that!
I hope that this information proves useful to others. Any corrections, improvements, observations, etc., would be welcome.