Not able to PXE boot from Raspberry Pi 3b
-
I have configured my RPI (Raspberry Pi) with Rasbian 10 to connect to the internet via wlan0 via dhcp. I setup eth0 with a static IP of 10.0.0.1/24 and after installing everything, nothing bill boot off of the device. I can confirm that the request for ipxe.efi is received but the host very briefly displays NBP filesize 0 bytes, PXE-E99 Unexpected network error.
After doing some research I found that my host (or a model close to it) was previously successful with undionly.kpxe so I forced it in /etc/dhcp/dhcpd.conf but I get the same error. I also found that the request is received, but it would seem that the RPI doesn’t push the file. However, the service IS running. I have been trying to get this thing running for a week now and I’m at a loss. Any help is appreciated. Please note that I will be unable to respond until Monday. If you need more details, please indicate the file. Thank you!/etc/dhcp/dhcpd.conf
# DHCP Server Configuration file\n#see /usr/share/doc/dhcp*/dhcpd.conf.sample # This file was created by FOG #Definition of PXE-specific options # Code 1: Multicast IP Address of bootfile # Code 2: UDP Port that client should monitor for MTFTP Responses # Code 3: UDP Port that MTFTP servers are using to listen for MTFTP requests # Code 4: Number of seconds a client must listen for activity before trying # to start a new MTFTP transfer # Code 5: Number of seconds a client must listen before trying to restart # a MTFTP transfer option space PXE; option PXE.mtftp-ip code 1 = ip-address; option PXE.mtftp-cport code 2 = unsigned integer 16; option PXE.mtftp-sport code 3 = unsigned integer 16; option PXE.mtftp-tmout code 4 = unsigned integer 8; option PXE.mtftp-delay code 5 = unsigned integer 8; option arch code 93 = unsigned integer 16; use-host-decl-names on; ddns-update-style interim; ignore client-updates; # Specify subnet of ether device you do NOT want service. # For systems with two or more ethernet devices. # subnet 136.165.0.0 netmask 255.255.0.0 {} subnet 10.0.0.0 netmask 255.255.255.0{ option subnet-mask 255.255.255.0; range dynamic-bootp 10.0.0.10 10.0.0.254; default-lease-time 21600; max-lease-time 43200; option routers 192.168.70.1; option domain-name-servers 10.0.213.230; next-server 10.0.0.1; class "Legacy" { match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00000"; filename "undionly.kkpxe"; } class "UEFI-32-2" { match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00002"; filename "i386-efi/ipxe.efi"; } class "UEFI-32-1" { match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00006"; filename "i386-efi/ipxe.efi"; } class "UEFI-64-1" { match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00007"; filename "ipxe.efi"; } class "UEFI-64-2" { match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00008"; filename "ipxe.efi"; } class "UEFI-64-3" { match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00009"; filename "ipxe.efi"; } class "SURFACE-PRO-4" { match if substring(option vendor-class-identifier, 0, 32) = "PXEClient:Arch:00007:UNDI:003016"; filename "ipxe.efi"; } class "Apple-Intel-Netboot" { match if substring(option vendor-class-identifier, 0, 14) = "AAPLBSDPC/i386"; option dhcp-parameter-request-list 1,3,17,43,60; if (option dhcp-message-type = 8) { option vendor-class-identifier "AAPLBSDPC"; if (substring(option vendor-encapsulated-options, 0, 3) = 01:01:01) { # BSDP List option vendor-encapsulated-options 01:01:01:04:02:80:00:07:04:81:00:05:2a:09:0D:81:00:05:2a:08:69:50:58:45:2d:46:4f:47; filename "ipxe.efi"; } } } }
/etc/network/interfaces.d/wlan0
auto wlan0 iface wlan0 inet static address 192.168.69.123 netmask 255.255.252.0 wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
/etc/network/interfaces.d/eth0
auto eth0 iface eth0 inet static address 10.0.0.1 netmask 255.255.255.0
-
@jweeks Need to know more about the host model you’re trying to boot. Also need to know more about your network. Is your router already serving out DHCP?
-
@jweeks There are a couple of things I see right away wrong with your configuration.
- option routers 192.168.70.1; there is no way for the 10.0.0.1 subnet to reach this router. This needs to be a router on the 10.0.0.x/24 subnet.
- option domain-name-servers 10.0.213.230; there is no way for the pxe booting clients to get to this device since there is no way off the subnet. Eth0 is a class /24 so that is also outside the reach of eth0.
- Check to see if the tftp service is running on the Pi.
netstat -an|grep :69
should report a row starting with0.0.0.0
If the above corrections don’t address the problem then we can run wireshark or tcpdump to see what the client is being told to do.
-
@george1421 Thank you! This was driving me nuts. I finally got it to boot after reinstalling without those addresses in there.
-
@wayne-workman It’s a Dell OptiPlex 3080. I am using FOG’s DHCP because I don’t have access to our company’s router. I have it working now. I’ve captured an image and going to try to deploy it tonight (I work second shift).
I’d love to get packets back and fourth between the wlan0 and eth0 devices so I can join systems to the domain without switching ethernet cables. Trying to work this out.