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

Daniel Braniss danny at cs.huji.ac.il
Tue Sep 29 09:24:18 UTC 2015


> On 27 Sep 2015, at 19:35, Ian Lepore <ian at FreeBSD.org> wrote:
> 
> 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
> 

with the old uboot it boots ok, with the newer/modified it stops at random
places reading via udp/nfs/v3 the kernel. it loads correctly all the *.4th files,
then starts reading the kernel, and hangs after a random time.

on another issue, if I type dhcp instead of boot, it loads via TFTP filename,
which I set to ubldr/ubldr.bin, it loads and now prompts again,
what should the command be? I tried go 0, go 20000, in which case execs
the old ubldr :-(

anyways, the fact that I can now boot over the net is great!

danny



More information about the freebsd-arm mailing list