Hi guys, not sure if this is the most appropriate place for this topic but here we go.
I’m trying to network boot a Raspberry Pi after an SD card died, but I’m at the end of line in trying to diagnose my problems. No idea what else to try. I’m running my TFTP server from TrueNAS SCALE, my DHCP server on my EdgeRouter 4 and booting from a Raspberry Pi 4B. I’m following this guide from Wendell, as well as using a few of his recources:
For reference, my IP’s are assigned as follows:
Gateway: 192.168.1.1
TFTP: 192.168.1.181
RPi: 192.168.1.154
Here is the important stuff from the bootup screen of the RPi:
Summary
Raspberry Pi 4 Model B 2GB - bootloader: c2f8c388 Apr 29 2021
update-ts: 1649213267
board: b03112 37ca3181 dc:a6:32:7a:3d:63
boot: mode NETWORK 2 order 241 retry 2/5 restart SD: card not detected
part: O mbr [0x00:00000000 0x00:00000000 0x00:00
fw: start.elf fixup.dat
net: up ip: 192.168.1.154 s sn: 255.255.255.0
tftp: 192.168.1.181 18:31:bf:cd:4b: 70
Reset USB port-power 1000 ms
Failed to open device: 'sdcard' (cmd 371a0010 status 1fff0001)
Failed to open device: 'sdcard' (cmd 371a0010 status 1fff0001)
USB2[1] 400202e1 connected
USB2 root HUB port 1 init
HUB [01:00] 2.16 000000:01 init port 3 speed 1
USB MSD timed out after 20 seconds
NET_BOOT: dc:a6:32:7a:3d:63 wait for link TFTP: 192.168.1.181
Link ready
YI_ADDR 192.168.1.154
[66]: 192.168.1.181
TFTP 1: File not found
TFTP 1: File not found
Read config.txt bytes 816 hnd 0x00000000
TFTP 1: File not found
TFTP 1: File not found
TFTP 1: File not found
TFTP 1: File not found
TFTP 1: File not found
TFTP 1: File not found
Firmware not found
I’m able to connect to the TFTP server from the Pi just fine because I’m mounting and transferring my boot files just fine. I’ve run a diff and this is the output which is pretty much as I would expect (note that I’ve added cmdline.txt to the network boot folder trying to diagnose this issue):
Summary
root@rpi2:~# sudo diff /boot/ /nfs/boot/
diff: /nfs/boot/System.map-5.13.0-1008-raspi: Permission denied
diff: /nfs/boot/System.map-5.13.0-1024-raspi: Permission denied
Only in /nfs/boot/: cmdline.txt
diff /boot/config.txt /nfs/boot/config.txt
0a1,32
> [pi4]
> max_framebuffers=2
>
> [all]
> kernel=vmlinuz
> cmdline=cmdline.txt
> initramfs initrd.img followkernel
>
> # Enable the audio output, I2C and SPI interfaces on the GPIO header
> dtparam=audio=on
> dtparam=i2c_arm=on
> dtparam=spi=on
>
> # Enable the serial pins
> enable_uart=1
>
> # Comment out the following line if the edges of the desktop appear outside
> # the edges of your display
> disable_overscan=1
>
> # If you have issues with audio, you may try uncommenting the following line
> # which forces the HDMI output into HDMI mode instead of DVI (which doesn't
> # support audio output)
> #hdmi_drive=2
>
> # If you have a CM4, uncomment the following line to enable the USB2 outputs
> # on the IO board (assuming your CM4 is plugged into such a board)
> #dtoverlay=dwc2,dr_mode=host
>
> # Config settings specific to arm64
> arm_64bit=1
> dtoverlay=dwc2
Common subdirectories: /boot/dtbs and /nfs/boot/dtbs
Common subdirectories: /boot/firmware and /nfs/boot/firmware
I’ve also got my DHCP logs from the router here, though I’m not sure exactly what they’re supposed to look like. I have enabled option 66 for the entire subnet at this point.:
Summary
Apr 7 10:42:43 EdgeRouter-4 dhcpd3: DHCPDISCOVER from dc:a6:32:7a:3d:63 via eth1
Apr 7 10:42:43 EdgeRouter-4 dhcpd3: DHCPOFFER on 192.168.1.154 to dc:a6:32:7a:3d:63 via eth1
Apr 7 10:42:43 EdgeRouter-4 dhcpd3: DHCPREQUEST for 192.168.1.154 (192.168.1.1) from dc:a6:32:7a:3d:63 via eth1
Apr 7 10:42:43 EdgeRouter-4 dhcpd3: DHCPACK on 192.168.1.154 to dc:a6:32:7a:3d:63 via eth1
Apr 7 10:42:47 EdgeRouter-4 dhcpd3: DHCPDISCOVER from dc:a6:32:7a:3d:63 via eth1
Apr 7 10:42:47 EdgeRouter-4 dhcpd3: DHCPOFFER on 192.168.1.154 to dc:a6:32:7a:3d:63 via eth1
Apr 7 10:42:47 EdgeRouter-4 dhcpd3: DHCPREQUEST for 192.168.1.154 (192.168.1.1) from dc:a6:32:7a:3d:63 via eth1
Apr 7 10:42:47 EdgeRouter-4 dhcpd3: DHCPACK on 192.168.1.154 to dc:a6:32:7a:3d:63 via eth1
Apr 7 10:42:57 EdgeRouter-4 dhcpd3: DHCPDISCOVER from dc:a6:32:7a:3d:63 via eth1
Apr 7 10:42:57 EdgeRouter-4 dhcpd3: DHCPOFFER on 192.168.1.154 to dc:a6:32:7a:3d:63 via eth1
Apr 7 10:42:57 EdgeRouter-4 dhcpd3: DHCPREQUEST for 192.168.1.154 (192.168.1.1) from dc:a6:32:7a:3d:63 via eth1
Apr 7 10:42:57 EdgeRouter-4 dhcpd3: DHCPACK on 192.168.1.154 to dc:a6:32:7a:3d:63 via eth1
Apr 7 10:43:07 EdgeRouter-4 dhcpd3: DHCPDISCOVER from dc:a6:32:7a:3d:63 via eth1
Apr 7 10:43:07 EdgeRouter-4 dhcpd3: DHCPOFFER on 192.168.1.154 to dc:a6:32:7a:3d:63 via eth1
Apr 7 10:43:07 EdgeRouter-4 dhcpd3: DHCPREQUEST for 192.168.1.154 (192.168.1.1) from dc:a6:32:7a:3d:63 via eth1
Apr 7 10:43:07 EdgeRouter-4 dhcpd3: DHCPACK on 192.168.1.154 to dc:a6:32:7a:3d:63 via eth1
Apr 7 10:43:17 EdgeRouter-4 dhcpd3: DHCPDISCOVER from dc:a6:32:7a:3d:63 via eth1
Apr 7 10:43:17 EdgeRouter-4 dhcpd3: DHCPOFFER on 192.168.1.154 to dc:a6:32:7a:3d:63 via eth1
Apr 7 10:43:17 EdgeRouter-4 dhcpd3: DHCPREQUEST for 192.168.1.154 (192.168.1.1) from dc:a6:32:7a:3d:63 via eth1
Apr 7 10:43:17 EdgeRouter-4 dhcpd3: DHCPACK on 192.168.1.154 to dc:a6:32:7a:3d:63 via eth1
Apr 7 10:43:27 EdgeRouter-4 dhcpd3: DHCPDISCOVER from dc:a6:32:7a:3d:63 via eth1
Apr 7 10:43:27 EdgeRouter-4 dhcpd3: DHCPOFFER on 192.168.1.154 to dc:a6:32:7a:3d:63 via eth1
Apr 7 10:43:27 EdgeRouter-4 dhcpd3: DHCPREQUEST for 192.168.1.154 (192.168.1.1) from dc:a6:32:7a:3d:63 via eth1
Apr 7 10:43:27 EdgeRouter-4 dhcpd3: DHCPACK on 192.168.1.154 to dc:a6:32:7a:3d:63 via eth1
Does anyone have any idea why the RPi isn’t able to find the firmware on the TFTP server? I’d greatly appreciate the help.