I'm trying to set up a kickstart server on my home network. I can't get network booting working. DHCPD and tftp are working, but the tftp request on the client is timing out with:

PXE-E32 TFTP open timeout

I've googled the heck out of this issue and can't find a fix. I was hoping someone here could help me out.

My dhcpd.conf file:

#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#
option space pxelinux;
option pxelinux.magic code 208 = string;
option pxelinux.configfile code 209 = text;
option pxelinux.pathprefix code 210 = text;
option pxelinux.reboottime code 211 = unsigned integer 32;

allow booting;
allow bootp;
class "pxeclients" {
        match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
        next-server 192.168.10.90;
                
        filename "pxelinux.0";
}
subnet 192.168.10.0 netmask 255.255.255.0 {
        option domain-name "larsenhaus.org";
        option domain-search "larsenhaus.org";
        option domain-name-servers 192.168.10.60,192.168.10.90;
        option routers 192.168.10.10;
        range dynamic-bootp 192.168.10.100 192.168.10.200;
        default-lease-time 3600;
        max-lease-time 4800;
}

My xinetd tftp file:

# default: off
# description: The tftp server serves files using the trivial file transfer \
#       protocol.  The tftp protocol is often used to boot diskless \
#       workstations, download configuration files to network-aware printers, \
#       and to start the installation process for some operating systems.
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        #server                 = /usr/sbin/in.tftpd
        server_args             = -s /tftpboot/pxelinux -v
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

The contents of /tftpboot:

[root@kickstart tftpboot]# ls
cat.c32        disk.c32      gpxelinux.0  install     lua.c32      pcitest.c32   pxelinux.0   ver.com
chain.c32      dmitest.c32   hdt.c32      int18.com   mboot.c32    pmload.c32    reboot.c32   vesainfo.c32
cmd.c32        elf.c32       host.c32     kbdmap.c32  memdisk      poweroff.com  rosh.c32     vesamenu.c32
config.c32     ethersel.c32  ifcpu64.c32  ks-cfg      memdump.com  pwd.c32       sanboot.c32  vpdtest.c32
cpuid.c32      gfxboot.c32   ifcpu.c32    linux.c32   meminfo.c32  pxechain.com  sdi.c32      whichsys.c32
cpuidtest.c32  gpxecmd.c32   ifplop.c32   ls.c32      menu.c32     pxelinux      sysdump.c32  zzjson.c32

The contents of /tftpboot/install/fedora19:

[root@kickstart tftpboot]# ls install/fedora-19/
Fedora-19-i386-netinst.iso

The contents of /tftpboot/ks-cfg:

[root@kickstart tftpboot]# ls ks-cfg
netbook-ks.cfg

The contents of /tftpboot/pxelinux:

[root@kickstart tftpboot]# ls pxelinux
initrd.img  pxelinux.0  pxelinux.cfg  vesamenu.c32  vmlinuz

The contents of /tftpboot/pxelinux/pxelinux.cfg:

[root@kickstart tftpboot]# ls pxelinux/pxelinux.cfg/
default

The contents of the default file:

[root@kickstart tftpboot]# cat pxelinux/pxelinux.cfg/default 
default vesamenu.c32
prompt 1
timeout 600

display boot.msg

label linux
  menu label ^Install a new system
  menu default
  kernel vmlinuz
  append initrd=initrd.img repo=nfsiso::kickstart.larsenahus.org:/tftpboot/install/fedora-19
  ks=nfs:192.168.10.90:/tftpboot/ks-cfg/netbook-ks.cfg
label vesa
  menu label Install system with ^basic video driver
  kernel vmlinuz
  append initrd=initrd.img xdriver=vesa nomodeset repo=nfsiso::kickstart.larsenahus.org:/tftpboot/install/fedora-19
label memtest86
  menu label ^Memory test
  kernel memtest
  append -

My exports:

[root@kickstart ~]# exportfs
/tftpboot/install/fedora-19
                <world>

Perms on /tftpboot and subdirs are currently 777, everything owned by root.

The netbook acquires an IP address from DHCP and begins the tftp request, but times out as described above. tcpdump shows the client connecting to the tftp server:

[root@localhost ~]# tcpdump port 69 -v -i em1
tcpdump: listening on em1, link-type EN10MB (Ethernet), capture size 65535 bytes
19:41:53.028845 IP (tos 0x0, ttl 20, id 2, offset 0, flags [none], proto UDP (17), length 55)
    dhcp-101.larsenhaus.org.ah-esp-encap > kickstart.larsenhaus.org.tftp:  27 RRQ "pxelinux.0" octet tsize 0
19:41:55.027661 IP (tos 0x0, ttl 20, id 3, offset 0, flags [none], proto UDP (17), length 55)
    dhcp-101.larsenhaus.org.acp-port > kickstart.larsenhaus.org.tftp:  27 RRQ "pxelinux.0" octet tsize 0
19:41:59.037376 IP (tos 0x0, ttl 20, id 4, offset 0, flags [none], proto UDP (17), length 55)
    dhcp-101.larsenhaus.org.msync > kickstart.larsenhaus.org.tftp:  27 RRQ "pxelinux.0" octet tsize 0
19:42:05.024477 IP (tos 0x0, ttl 20, id 5, offset 0, flags [none], proto UDP (17), length 55)
    dhcp-101.larsenhaus.org.gxs-data-port > kickstart.larsenhaus.org.tftp:  27 RRQ "pxelinux.0" octet tsize 0
19:42:12.988945 IP (tos 0x0, ttl 20, id 6, offset 0, flags [none], proto UDP (17), length 55)
    dhcp-101.larsenhaus.org.vrtl-vmf-sa > kickstart.larsenhaus.org.tftp:  27 RRQ "pxelinux.0" octet tsize 0
19:42:22.932113 IP (tos 0x0, ttl 20, id 7, offset 0, flags [none], proto UDP (17), length 60)
    dhcp-101.larsenhaus.org.newlixengine > kickstart.larsenhaus.org.tftp:  32 RRQ "pxelinux.0" octet blksize 1456

But no boot.

During my research I saw a post somewhere that talked about tftp having issues with some RealTek network cards. The kickstart server is running a controller with the RTL8101E/RTL8102E chipset. The poster said he fixed his problem by setting the tftp block size explicitly to 512, but I've been unable to determine how to do so.

Are there any obvious errors in my configuration? If not, can anyone advise how to set the tftp block size? Thanks in advance.

James