Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 6 Feb 2021 22:00:02 -0600
From:      Matthew Grooms <mgrooms@shrew.net>
To:        =?UTF-8?Q?Klaus_K=c3=bcchemann?= <maciphone2@googlemail.com>, freebsd-arm@freebsd.org
Subject:   Re: rpi4 network boot
Message-ID:  <d02ac38c-ac8e-fc84-ba65-1c49e9b73bbf@shrew.net>
In-Reply-To: <C6845ECB-23BE-48DB-BD78-A56814FCB39C@googlemail.com>
References:  <d385f2b3-87e0-1bd5-d0f8-76ba1eb99816@shrew.net> <3a1acba5-8662-55cb-c5c4-98ec7873f78f@shrew.net> <e324f942-43ac-d2ab-3e7f-47ca91e40bee@shrew.net> <082BC0B9-2538-43D5-9D5E-C18B4DEE9ECB@googlemail.com> <de86ca7c-dd8a-511a-6063-ada6eb451488@shrew.net> <C6845ECB-23BE-48DB-BD78-A56814FCB39C@googlemail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2/6/2021 8:32 PM, Klaus Küchemann wrote:
>> Am 06.02.2021 um 21:27 schrieb Matthew Grooms <mgrooms@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@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@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@shrew.net>:
>>>
>>> root@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@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@matthew:~# sockstat -l4
>
> and
>
> root@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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?d02ac38c-ac8e-fc84-ba65-1c49e9b73bbf>