rpi4 network boot

Matthew Grooms mgrooms at shrew.net
Sun Feb 7 04:00:06 UTC 2021


On 2/6/2021 8:32 PM, Klaus Küchemann wrote:
>> Am 06.02.2021 um 21:27 schrieb Matthew Grooms <mgrooms at shrew.net>:
>>
>>   I need to netboot without the help of local storage or human intervention.
>>
> this would be possible by flashing&configuring  the eeprom to pxe-boot- capability (which isn’t the default afaik) .
>
Yup. I should have mentioned that I've done that, and now I'm trying to 
perform a PXE boot. However, it doesn't seem like a conventional PXE 
boot. It looks for a ton of other files it requires from tftp path 
before requesting the file given in the bootp config ...

21:32:09.373985 IP X.X.X.26.11164 > rpi4.shrew.lab.tftp:  58 RRQ 
"dc-a6-32-a8-54-13/start4.elf" octet tsize 0 blksize 1024
21:32:09.378879 IP X.X.X.26.11165 > rpi4.shrew.lab.tftp:  58 RRQ 
"dc-a6-32-a8-54-13/config.txt" octet tsize 0 blksize 1024
21:32:09.383521 IP X.X.X.26.11166 > rpi4.shrew.lab.tftp:  57 RRQ 
"dc-a6-32-a8-54-13/vl805.sig" octet tsize 0 blksize 1024
21:32:09.387000 IP X.X.X.26.11167 > rpi4.shrew.lab.tftp:  60 RRQ 
"dc-a6-32-a8-54-13/pieeprom.sig" octet tsize 0 blksize 1024
21:32:09.390842 IP X.X.X.26.11168 > rpi4.shrew.lab.tftp:  60 RRQ 
"dc-a6-32-a8-54-13/recover4.elf" octet tsize 0 blksize 1024
21:32:09.394382 IP X.X.X.26.11169 > rpi4.shrew.lab.tftp:  60 RRQ 
"dc-a6-32-a8-54-13/recovery.elf" octet tsize 0 blksize 1024
21:32:09.397826 IP X.X.X.26.11170 > rpi4.shrew.lab.tftp:  58 RRQ 
"dc-a6-32-a8-54-13/start4.elf" octet tsize 0 blksize 1024
21:32:11.408961 IP X.X.X.26.11171 > rpi4.shrew.lab.tftp:  58 RRQ 
"dc-a6-32-a8-54-13/fixup4.dat" octet tsize 0 blksize 1024
21:32:12.039748 IP X.X.X.26.49153 > rpi4.shrew.lab.tftp:  60 RRQ 
"dc-a6-32-a8-54-13/recovery.elf" octet tsize 0 blksize 1024
21:32:12.048114 IP X.X.X.26.49154 > rpi4.shrew.lab.tftp:  58 RRQ 
"dc-a6-32-a8-54-13/config.txt" octet tsize 0 blksize 1024
21:32:12.052450 IP X.X.X.26.49155 > rpi4.shrew.lab.tftp:  59 RRQ 
"dc-a6-32-a8-54-13/dt-blob.bin" octet tsize 0 blksize 1024
21:32:12.147153 IP X.X.X.26.49156 > rpi4.shrew.lab.tftp:  60 RRQ 
"dc-a6-32-a8-54-13/recovery.elf" octet tsize 0 blksize 1024
21:32:12.151446 IP X.X.X.26.49157 > rpi4.shrew.lab.tftp:  58 RRQ 
"dc-a6-32-a8-54-13/config.txt" octet tsize 0 blksize 1024
21:32:12.620270 IP X.X.X.26.49158 > rpi4.shrew.lab.tftp:  59 RRQ 
"dc-a6-32-a8-54-13/bootcfg.txt" octet tsize 0 blksize 1024
21:32:12.670046 IP X.X.X.26.49159 > rpi4.shrew.lab.tftp:  67 RRQ 
"dc-a6-32-a8-54-13/bcm2711-rpi-4-b.dtb" octet tsize 0 blksize 1024
21:32:12.695246 IP X.X.X.26.49160 > rpi4.shrew.lab.tftp:  72 RRQ 
"dc-a6-32-a8-54-13/overlays/overlay_map.dtb" octet tsize 0 blksize 1024
21:32:12.761171 IP X.X.X.26.49161 > rpi4.shrew.lab.tftp:  58 RRQ 
"dc-a6-32-a8-54-13/config.txt" octet tsize 0 blksize 1024
21:32:12.791778 IP X.X.X.26.49162 > rpi4.shrew.lab.tftp:  65 RRQ 
"dc-a6-32-a8-54-13/overlays/mmc.dtbo" octet tsize 0 blksize 1024
21:32:12.838557 IP X.X.X.26.49163 > rpi4.shrew.lab.tftp:  72 RRQ 
"dc-a6-32-a8-54-13/overlays/disable-bt.dtbo" octet tsize 0 blksize 1024
21:32:12.964086 IP X.X.X.26.49164 > rpi4.shrew.lab.tftp:  59 RRQ 
"dc-a6-32-a8-54-13/cmdline.txt" octet tsize 0 blksize 1024
21:32:14.251055 IP X.X.X.26.49165 > rpi4.shrew.lab.tftp:  58 RRQ 
"dc-a6-32-a8-54-13/u-boot.bin" octet tsize 0 blksize 1024
21:32:14.256130 IP X.X.X.26.49166 > rpi4.shrew.lab.tftp:  64 RRQ 
"dc-a6-32-a8-54-13/armstub8-gic.bin" octet tsize 0 blksize 1024
21:32:14.261086 IP X.X.X.26.49167 > rpi4.shrew.lab.tftp:  64 RRQ 
"dc-a6-32-a8-54-13/armstub8-gic.bin" octet tsize 0 blksize 1024
21:32:14.267182 IP X.X.X.26.49168 > rpi4.shrew.lab.tftp:  58 RRQ 
"dc-a6-32-a8-54-13/u-boot.bin" octet tsize 0 blksize 1024
21:32:20.489363 IP X.X.X.26.4036 > rpi4.shrew.lab.tftp:  63 RRQ 
"freebsd/boot/loader.efi" octet timeout 5 tsize 0 blksize 1468
21:32:20.776221 IP X.X.X.26.1250 > rpi4.shrew.lab.tftp:  86 RRQ 
"freebsd/boot/pxelinux.cfg/01-dc-a6-32-a8-54-13" octet timeout 5 tsize 0 
blksize 1468
21:32:20.934994 IP X.X.X.26.1409 > rpi4.shrew.lab.tftp:  74 RRQ 
"freebsd/boot/pxelinux.cfg/0A16C81A" octet timeout 5 tsize 0 blksize 1468
21:32:21.094962 IP X.X.X.26.1569 > rpi4.shrew.lab.tftp:  73 RRQ 
"freebsd/boot/pxelinux.cfg/0A16C81" octet timeout 5 tsize 0 blksize 1468
21:32:21.255120 IP X.X.X.26.1729 > rpi4.shrew.lab.tftp:  72 RRQ 
"freebsd/boot/pxelinux.cfg/0A16C8" octet timeout 5 tsize 0 blksize 1468
21:32:21.420668 IP X.X.X.26.1895 > rpi4.shrew.lab.tftp:  71 RRQ 
"freebsd/boot/pxelinux.cfg/0A16C" octet timeout 5 tsize 0 blksize 1468
21:32:21.581301 IP X.X.X.26.2056 > rpi4.shrew.lab.tftp:  70 RRQ 
"freebsd/boot/pxelinux.cfg/0A16" octet timeout 5 tsize 0 blksize 1468
21:32:21.734829 IP X.X.X.26.2209 > rpi4.shrew.lab.tftp:  69 RRQ 
"freebsd/boot/pxelinux.cfg/0A1" octet timeout 5 tsize 0 blksize 1468
21:32:21.894906 IP X.X.X.26.2369 > rpi4.shrew.lab.tftp:  68 RRQ 
"freebsd/boot/pxelinux.cfg/0A" octet timeout 5 tsize 0 blksize 1468
21:32:22.054759 IP X.X.X.26.2529 > rpi4.shrew.lab.tftp:  67 RRQ 
"freebsd/boot/pxelinux.cfg/0" octet timeout 5 tsize 0 blksize 1468
21:32:22.222466 IP X.X.X.26.2697 > rpi4.shrew.lab.tftp:  89 RRQ 
"freebsd/boot/pxelinux.cfg/default-arm-bcm283x-rpi" octet timeout 5 
tsize 0 blksize 1468
21:32:22.382954 IP X.X.X.26.2857 > rpi4.shrew.lab.tftp:  85 RRQ 
"freebsd/boot/pxelinux.cfg/default-arm-bcm283x" octet timeout 5 tsize 0 
blksize 1468
21:32:22.543756 IP X.X.X.26.3018 > rpi4.shrew.lab.tftp:  77 RRQ 
"freebsd/boot/pxelinux.cfg/default-arm" octet timeout 5 tsize 0 blksize 1468
21:32:22.703276 IP X.X.X.26.3178 > rpi4.shrew.lab.tftp:  73 RRQ 
"freebsd/boot/pxelinux.cfg/default" octet timeout 5 tsize 0 blksize 1468
21:32:22.908488 IP X.X.X.26.3383 > rpi4.shrew.lab.tftp:  53 RRQ 
"boot.scr.uimg" octet timeout 5 tsize 0 blksize 1468
21:32:23.075725 IP X.X.X.26.3550 > rpi4.shrew.lab.tftp:  63 RRQ 
"freebsd/boot/loader.efi" octet timeout 5 tsize 0 blksize 1468
21:32:23.356875 IP X.X.X.26.3831 > rpi4.shrew.lab.tftp:  72 RRQ 
"dtb/broadcom/bcm2711-rpi-4-b.dtb" octet timeout 5 tsize 0 blksize 1468

>> Am 07.02.2021 um 02:41 schrieb Matthew Grooms <mgrooms at shrew.net>:
>>
>>
>> /etc/exports:
>> /var/rpi4/netboot -ro -alldirs -maproot=root
> why '-ro‘ ??

It's intended to be read only. That's also what the freebsd diskless 
boot handbook article suggests to do ...

https://docs.freebsd.org/en/books/handbook/advanced-networking/#network-diskless

>> Am 07.02.2021 um 02:41 schrieb Matthew Grooms <mgrooms at shrew.net>:
>> /usr/local/etc/dhcpd.conf….. option root-path „X.X.X.25:/var/rpi4/netboot/freebsd“ ;……
> while it seems to boot in your case "/var/rpi4/netboot/freebsd/“ is not the same as the above "/var/rpi4/netboot“
>
It's extremely difficult to know what the 'right' way is actually 
supposed to be. AFAICT, no one has actually been able to do a full 
FreeBSD PXE boot on a RPI4 before. All the PXE related info on the 
internet is for Linux. I'm trying to stitch bits and pieces together 
from lots of sources to get PXE, u-boot and freebsd to dance together. 
I'm hoping I can get help figuring this out, then I'm happy to post a 
howto for other users to follow. There's already a few others in the 
forum looking to do the same.

It sounds like maybe you haven't actually tried to do a full PXE boot 
with your RPI4 system. If you were to try, how do you suggest that it be 
done correctly? I'd love to hear your input.

> Am 05.01.2021 um 01:18 schrieb Matthew Grooms <mgrooms at shrew.net>:
>>>
>>> root at rpi4:/var/rpi4/netboot/firmware-master # ls -la
> and why did you split the folders under ../netboot/..?

To serve the raspberry pi 4 what it wants during boot. A more complete 
layout under my netboot directory looks like this ...

/var/rpi4/netboot/firmware
/var/rpi4/netboot/01-dc-a6-32-a8-54-13  -> /var/rpi4/netboot/firmware
/var/rpi4/netboot/freebsd
/var/rpi4/netboot/freebsd/boot/msdos -> /var/rpi4/netboot/firmware

>> Am 07.02.2021 um 02:41 schrieb Matthew Grooms <mgrooms at shrew.net>:
>> ……
>> .
>> starting USB…
>> No working controllers found
>> Hit any key to stop autoboot:  2  1  0
>> Card did not respond to voltage select!
>> starting USB...
>> No working controllers found
>> USB is stopped. Please issue 'usb start' first.
>> starting USB...
>> No working controllers found
> Would far be better if you had access to your keyboard from the 1st moment of boot(it`s possible!!)
> hint : https://sourceforge.net/projects/d26853-bcm2711-rpi-4-b-dtb/
>   I don`t want to discuss this no more here :-) Ha Ha ..
>
> What’s  your output of :
>
> root at matthew:~# sockstat -l4
>
> and
>
> root at matthew:~#  cat /etc/fstab

I don't follow. For the boot server or the RPI4 host? I don't see how 
the fstab of the boot server could be relevant. The RPI4 host doesn't 
have a local filesystem. It's trying to boot from the nfs export ...

/var/rpi4/netboot/freebsd

That has etc config info under the conf/base and /conf/default as 
described in the diskless man page. However, it's not getting to that 
part of the boot process so this is all probably moot.

Thanks,

-Matthew



More information about the freebsd-arm mailing list