netboot configuration [was: Re: NFS Root with Raspberry Pi (nfs_diskless: no interface)]

Ian Lepore ian at freebsd.org
Sun Sep 27 16:35:20 UTC 2015


On Sun, 2015-09-27 at 19:25 +0300, Daniel Braniss wrote:
> > On Sep 27, 2015, at 7:14 PM, Ian Lepore <ian at FreeBSD.org> wrote:
> > 
> > On Sun, 2015-09-27 at 14:15 +0300, Daniel Braniss wrote:
[...]
> >> I compiled the u-boot-rpi from ports,
> >> the good news:
> >> 	it understands UserPreboot
> >> the bad news:
> >> 	the nfs boot gets stuck after a while.
> >> 
> >> after much trial and error, this is what I do:
> >> 	hit a key to enter U-Boot
> >> then type:
> >> 	setenv loaderdev net
> >> 	boot
> >> 
> >> attaching the console:
> > 
> > I was also experiencing intermittant lockups while loader loads the
> > kernel.  I just wrote it off to failing hardware (I powered my rpi on
> > for the first time in 6-8 months to work on this), since I've never had
> > a problem with netbooting before (it's the only way I've ever booted the
> > rpi).  If it's not just my board going bad, then that's a bit of a
> > mystery.  The only other difference here from what I've always done is
> > setting rootpath and other net config in u-boot instead of letting ubldr
> > get it from dhcp.
> 
> with the stuff from crochet it works, same setup! I am sniffing the net via
> wireshark, and it stops at different positions in the kernel file,
> so the settings of rootpath and other configs are irrelevant.
> the transfer is being done via udp/nfs/v3 (hence added ric :-) maybe
> he can see something we don’t.

Hmmm.  What stuff from crochet?  The two components that are in play
here are u-boot itself (it contains the low-level network drivers that
ubldr uses -- it's effectively acting as a bios for ubldr), and ubldr
which contains the higher-level network code.

In theory ubldr should be the same in both cases; nothing much has
changed in the loader code for months.  But there are different paths
through the code depending on how it gets the network parms, and I could
easily have glitched something when I added the feature that lets you
set the config with u-boot env vars.

The u-boot might be different between a crochet and ports build.  They
both start with gonzo's u-boot 2013.10 sources, but crochet probably has
a slightly different set of patches it applies.

-- Ian



More information about the freebsd-arm mailing list