This is a quick run down on how I got my PXE server up using a Buffalo router as the DHCP/DNS server.
My router is a Buffalo WHR-G54S with DD-WRT installed with DNSMasq (default install).
No matter what linux distribution you have, the main component you need is a TFTP daemon. I recommend
tftpd-hpa as it has the most uses in my collection of PXE installations of OSes. So in Debian/Ubuntu
run "(sudo) apt-get install tftpd-hpa". In RHEL, SLES and company it is the standard from the DVDs.
In Debian/Ubuntu, the tftp directory will most likely be /var/lib/tftpboot. The other OSes will most likely
be in /tftpboot. What happens from there is dependent on whatever OSes are going to be installed. I guess
I'll place a link later with my solutions.
Afterward, find the IP address of the PXE server (ie 10.20.30.1). Try to keep it static if possible. Go to the router
configuration page and find where "DNSMasq options" is located. Add the line below to the options:
dhcp-boot=pxelinux.0,,10.20.30.1
Apply settings on the router. Make sure your tftp daemon is running and all files necessary are in the tftp folder.
Start up a system that is capable of PXE booting and attempt to boot with that method. The router should supply
the IP address and redirect the TFTP request to the PXE server. The PXE server should reply and away it goes.