The target system for an OpenBSD 6.0 install, an alix.2d13, is directly connected to an alix.3x box serving dhcp and tftp. alix.3x (Server):
# dmesg | head -n 1 OpenBSD 6.0 (GENERIC) #1917: Tue Jul 26 12:48:33 MDT 2016 # ifconfig vr0 vr0: flags=8b43<UP,BROADCAST,RUNNING,PROMISC,ALLMULTI,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:0d:b9:13:3c:30 index 1 priority 0 llprio 3 groups: egress media: Ethernet autoselect (100baseTX full-duplex) status: active inet 192.168.0.44 netmask 0xffffff00 broadcast 192.168.0.255 # dhcpd vr0 # cat /etc/dhcpd.conf option domain-name "fritz.box"; option domain-name-servers 192.168.0.44; option routers 192.168.0.44; option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; server-name "DHCPserver"; server-identifier 192.168.0.44; next-server 192.168.0.44; default-lease-time 600; max-lease-time 600; #option bootfile-name "pxeboot"; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.80 192.168.0.254; filename "pxeboot"; #host alix_2d13 { hardware ethernet 00:0d:b9:33:d4:5c; } } # ls -lR /tftpboot/ total 14100 -rw-r--r-- 1 root wheel 71824 Sep 26 22:40 boot -rw-r--r-- 1 root wheel 7173390 Sep 26 22:40 bsd.rd drwxr-xr-x 2 root wheel 512 Sep 26 22:43 etc -rw-r--r-- 1 root wheel 81444 Sep 28 09:41 pxeboot /tftpboot/etc: total 4 -rw-r--r-- 1 root wheel 46 Sep 27 16:03 boot.conf # cat /tftpboot/etc/boot.conf stty com0 38400 set tty com0 boot tftp:bsd.rd # tftp localhost tftp> get pxeboot Received 81965 bytes in 0.1 seconds tftp> # #transferred byte count doesn't match file lenth, but the locally delivered file is fine: # diff -s pxeboot /tftpboot/pxeboot Files pxeboot and /tftpboot/pxeboot are identical # tftpd -d /tftpboot tftpd: 192.168.0.81: read request for 'pxeboot' tftpd: 192.168.0.81: read request for 'pxeboot' tftpd: 192.168.0.81: read request for 'pxeboot' tftpd: 192.168.0.81: read request for 'pxeboot' tftpd: 192.168.0.81: read request for 'pxeboot' tftpd: 192.168.0.81: Operation timed out tftpd: 192.168.0.81: Operation timed out tftpd: 192.168.0.81: read request for 'pxeboot' tftpd: 192.168.0.81: Operation timed out tftpd: 192.168.0.81: Operation timed out tftpd: 192.168.0.81: Operation timed out tftpd: 192.168.0.81: Operation timed out tftpd: 192.168.0.81: read request for 'pxeboot' tftpd: 192.168.0.81: Operation timed out tftpd: 192.168.0.81: read request for 'pxeboot' tftpd: 192.168.0.81: Operation timed out tftpd: 192.168.0.81: read request for 'pxeboot' tftpd: 192.168.0.81: Operation timed out tftpd: 192.168.0.81: read request for 'pxeboot' tftpd: 192.168.0.81: Operation timed out # #Corresponding tcpdump: # tcpdump -i vr0 09:44:29.798240 0.0.0.0.bootpc > 255.255.255.255.bootps: xid:0xba33d45c secs:4 flags:0x8000 [|bootp] 09:44:30.805580 alix.fritz.box.bootps > 255.255.255.255.bootpc: xid:0xba33d45c secs:4 flags:0x8000 Y:192.168.0.81 S:alix.fritz.box ether 00:0d:b9:33:d4:5c sname "DHCPserver" [|bootp] [tos 0x10] 09:44:33.800273 0.0.0.0.bootpc > 255.255.255.255.bootps: xid:0xba33d45c secs:4 flags:0x8000 [|bootp] 09:44:34.021374 alix.fritz.box.bootps > 255.255.255.255.bootpc: xid:0xba33d45c secs:4 flags:0x8000 Y:192.168.0.81 S:alix.fritz.box ether 00:0d:b9:33:d4:5c sname "DHCPserver" [|bootp] [tos 0x10] 09:44:34.320566 arp who-has alix.fritz.box tell 192.168.0.81 09:44:34.320671 arp reply alix.fritz.box is-at 00:0d:b9:13:3c:30 09:44:34.320780 192.168.0.81.2070 > alix.fritz.box.tftp: 24 RRQ "pxeboot" 09:44:36.326869 192.168.0.81.2071 > alix.fritz.box.tftp: 24 RRQ "pxeboot" 09:44:40.337057 192.168.0.81.2072 > alix.fritz.box.tftp: 24 RRQ "pxeboot" 09:44:46.324875 192.168.0.81.2073 > alix.fritz.box.tftp: 24 RRQ "pxeboot" 09:44:54.290322 192.168.0.81.2074 > alix.fritz.box.tftp: 24 RRQ "pxeboot" 09:45:04.454216 192.168.0.81.2075 > alix.fritz.box.tftp: 29 RRQ "pxeboot" 09:45:40.489906 192.168.0.81.2076 > alix.fritz.box.tftp: 29 RRQ "pxeboot" 09:46:52.508530 192.168.0.81.2077 > alix.fritz.box.tftp: 29 RRQ "pxeboot" 09:48:40.509010 192.168.0.81.2078 > alix.fritz.box.tftp: 29 RRQ "pxeboot" 09:51:04.491359 192.168.0.81.2079 > alix.fritz.box.tftp: 29 RRQ "pxeboot" # # From /var/log/daemon: Sep 28 09:44:29 alix dhcpd[89986]: DHCPDISCOVER from 00:0d:b9:33:d4:5c via vr0 Sep 28 09:44:30 alix dhcpd[89986]: DHCPOFFER on 192.168.0.81 to 00:0d:b9:33:d4:5c via vr0 Sep 28 09:44:33 alix dhcpd[89986]: DHCPREQUEST for 192.168.0.81 from 00:0d:b9:33:d4:5c via vr0 Sep 28 09:44:34 alix dhcpd[89986]: DHCPACK on 192.168.0.81 to 00:0d:b9:33:d4:5c via vr0 # # Now what happens on target? => Output on serial console of alix target: $ cu -l /dev/ttyS0 -s 9600 Connected. PC Engines ALIX.2 v0.99m 640 KB Base Memory 261120 KB Extended Memory 01F0 Master 848A SDCFHS-008G Phys C/H/S 15538/16/63 Log C/H/S 974/255/63 LBA Intel UNDI, PXE-2.0 (build 082) Copyright (C) 1997,1998,1999 Intel Corporation VIA Rhine III Management Adapter v2.43 (2005/12/15) CLIENT MAC ADDR: 00 0D B9 33 D4 5C CLIENT IP: 192.168.0.81 MASK: 255.255.255.0 DHCP IP: 192.168.0.44 GATEWAY IP: 192.168.0.44 PXE-E32: TFTP open timeout PXE-E32: TFTP open timeout PXE-E32: TFTP open timeout PXE-M0F: Exiting Intel PXE ROM. => So the target: - has newest BIOS - gets a lease - get's the necessary arp replies - asks the tftpd for the file - it's there - tftp works - but the file pxeboot is not delivered. No I don't know what to do next. I tried to experiment with putting "/pxeboot" in the dhcpd.conf options instead of "pxeboot" (the docs are not clear which one is necessary for a file in tftpboot chroot dir), but this kind of change only got me to this kind of strange tftpd console logs: tftpd: 192.168.0.81: read request for '/pxeboo' and later even, although the name in dhcpd.conf was indeed "pxeboot": tftpd: 192.168.0.81: read request for 'pxeboo' which strangly persisted some while even across killing and restarting of dhcpd and powercycling the target. Which might be a hint to some tftpd uninitialized buffer problem (or so). Peer -- Peer Janssen - p...@pjk.de