-
Notifications
You must be signed in to change notification settings - Fork 217
DHCP options to identify RPi, TFTP blocksize/windowsize #82
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
1/2) The PXE options might be made configurable via bootconf.txt as part of the IPV6 work but new network boot features are being added until after USB boot is complete.
|
captured 2 files by wireshark (boot from my server): don't know how to set a "Padding Option(0)" in dnsmasq by far... |
Thanks. |
testing is done with pieeprom-2020-01-09.bin thanks for your hard works. |
No problem, I see the issue. It looks as though Pi4 (and earlier models) assume that there is an explicit length field for all options except 0xff. It should be a trivial fix. |
My bad... :) |
about "mmc0: Timeout waiting for hardware cmd interrupt." network boot passed! kernel version rpi-5.4.y(5.4.11) from here, cross build on Arch using bcm2711_defcofig it's not shown on any distro running from SD card. Thanks. |
It's a bug in the upstream SDHCI driver not coping with a missing card if card-detect is not enabled |
Please can you try the fix for Option0 padding in this PR. I don't have suitable DHCP test environment for this but it's a very small code change |
tested, not working ... I could make a small DHCP/TFTP server to testing, would you like to? |
I missed a bit but if this doesn't work a Linux server would be interesting, does it run on Raspberry Pi ? |
this one is worked. 😄 |
Great thanks for testing. I've updated the latest beta binary with the correction. The version changed because I also added an internal unit-test for this against the pcap file which you uploaded :) |
I make a video about RPi4 diskless boot to debian 😄 as a reference, there is another Linux Mint 19.3 diskless boot (in vbox) |
If the padding is fixed in the latest beta please could you close this bug ? Feel free to raise a bug for (1) / identifying clients as raspberry pi. |
I thought it should be closed by you :) |
@beldzhang I've pushed a new beta image with the Option97 change and quite a few other features which have been sat in the queue. |
emmmm..... |
Sorry, I must have pushed to my fork and not completed the merge request. It's there now |
https://github.com/raspberrypi/rpi-eeprom/tree/master/firmware/beta pieeprom-2020-03-04.bin |
Post this to the forum firstly, and I think it's better be here.
Hi, I'm a developer focused on network boot for about 20 years, mainly support x86 pc boot to Windows and Linux.
I got RPi4 just one week, already tested raspbian, ubuntu, debian and network boot.
some issues about network boot
0) testing environment
EEPROM version: pieeprom-2020-01-09.bin
DHCP/PXE/TFTP server: developed by myself.
1) in DHCP requests:
other than the MAC address, there is no any field to identify a RPi client,
option 93 is set to "0" means IA x86 PC
option 97 UUID just repeat serial no 4 times
the OUI(dc:a6:32) can be use, but it not reliable as my experience
why this needed?
because the PXE options need a special menu item to continue and need to identify x86(bios/uefi) and RPI
suggestion:
option 97, change to magic number + serial no, there is enough length
-or-
option 93, acquire a unique number for RPi (it's complex with IEEE/IANA/RFC...)
-or-
any other option not defined by RFC
2)in DHCP REQUEST packet, there is no PXEClient(60) option
this is not consistency whit DHCP DISCOVER packet.
in my server, I just skip the packets without PXEClient(60), many desktop/laptop/mobile will sent request, and some ones running like flood
3) in DHCP response option 0 (padding) is not handled properly
then this response ignored.
in some(many) not implemented very well DHCP/PXE bootrom, padding zero is required to let them got correct hostname / bootfile / etc...
4) TFTP download files
blocksize is 1024, could be larger?
is there any future plan to implement windowsize ? since start.elf / kernel / initrd are big, set windowsize > 1 to speed up downloading.
The text was updated successfully, but these errors were encountered: