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