Subject: re: TFTP'ing RAMdisk at root mount time (updated patch)
To: Emmanuel Dreyfus <manu@netbsd.org>
From: matthew green <mrg@eterna.com.au>
List: tech-kern
Date: 05/06/2007 06:28:01
On Fri, May 04, 2007 at 04:25:16PM +0000, Emmanuel Dreyfus wrote:
> Due to stupid limitations in the bootloader, there are issues with loading
> a kernel with a really big RAMdisk (more than around 10 MB). Because fixing
> the bootloader is not very appealing, I worked on another approach: the
> kernel boots with no RAMdisk embedded, and at root mount time, it
> downloads the RAMdisk through TFTP.
Here is an updated patch which is fully functionnal: the RAMdisk name is
retreived from DHCP, we grab it through TFTP and we use it.
http://ftp.espci.fr/shadow/manu/tftproot2.diff
There is work remaining to be done (Remove the nfs_boot code from NFS so
that TFTPROOT has no dependency on NFS, load gzip'ed RAMdisk, TFTP with
larger block size), but I beleive the code is actually usable and useful.
Any objection against the above patch beeing committed?
it seems to me that this is duplicating a lot of what is in libsa.
infact, the patch has at least comment to that effect. i wonder if
there is a better way to share this..
it seems that you call realloc() for ever incoming packet? that
seems suboptimal.
i believe nfs_boot.c will fail to compile (unused "out:" label)
when TFTPROOT is not defined.
.mrg.