-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
Allow ${srv} in the kernel cmdline #1321
Comments
@timg236 I can see this would be possible on the Pi4 (If we chose to implement it), but not sure about earlier models. |
Kernel command line setup is handled by start.elf which could use the TFTP server IP if someone wants to add it |
I'll take a look, just need to know where to get the IP address from. |
Bit more complicated than originally thought, might be a while as have other stuff to do. |
No hurry; thank you for your efforts. |
Hi, please allow the
${srv}
keyword in the kernel cmdline, replacing it with the boot server IP.For example,
nfsroot=${srv}:/srv/ltsp/raspbian
would be passed to the kernel asnfsroot=192.168.67.1:/srv/ltsp/raspbian
.This will allow netbooting Raspberries from a server with a dynamic IP, which is the default in LTSP.
Rationale.
A typical netbooting procedure on Raspberries is as follows:
At that point, the DHCP offer packet contents are lost, so there's no way for the kernel to discover the proxyDHCP server and connect to it via nfsroot=. In iPXE (ipxe.org), this is done with the ${srv} variable. In PXELinux, IPAPPEND passes the server in the ip= variable. Raspberries should offer one of those solutions, and the one offered by iPXE is the most flexible.
Note that Raspberries by default do not use the initramfs, so we cannot develop and add programs that would discover the PXE server; this information needs to be passed to the kernel before any userland code has a chance to run.
Of course it's understandable that this solution wouldn't reach rpi3 ROMs and an SD card would be needed there. Thanks!
The text was updated successfully, but these errors were encountered: