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

Daniel Braniss danny at cs.huji.ac.il
Sat Sep 26 12:38:49 UTC 2015


> On Sep 25, 2015, at 10:25 PM, Ian Lepore <ian at FreeBSD.org> wrote:
> 
> On Fri, 2015-09-25 at 11:37 +0300, Daniel Braniss wrote:
>>> On 25 Sep 2015, at 03:54, Ian Lepore <ian at FreeBSD.org> wrote:
>>> 
>>> On Thu, 2015-09-24 at 19:54 +0200, Hans Petter Selasky wrote:
>>>> On 09/24/15 18:36, Randy Westlund wrote:
>>>>> On Thu, Sep 24, 2015 at 08:37:06AM -0600, Ian Lepore wrote:
>>>> 
> [...stuff about problems netbooting...]
>> 
>> hi Ian,
>> can you help me here?
>> I need the magics to get ubldr to boot from the net,
>> i’m using an image built via crochet. 
>> 
>> cheers,
>> 	danny
> 
> I've been struggling with how to set up a new default u-boot environment
> in our ports to make netbooting easier.  The problem is that there are
> as many ways to netboot as there are different people wanting to do it.
> What I've been doing for years is loading both ubldr and the kernel from
> nfs, by configuring my dhcp server to provide all the info needed (board
> ip and netmask, server ip, ubldr file to load, and nfs root path), all
> based on the mac address of the board.  I've learned that doesn't work
> well for most people who don't have easy control over their dhcp server.
> 
> To try to keep this relatively simple, I'm going to assume that what
> most folks want to do is:
> 
>      * Load ubldr from the sdcard that has u-boot on it (not from nfs).
>      * Make ubldr load the freebsd kernel from nfs.
>      * Use an nfs root filesystem.
> 
> So I'm assuming you've got an nfs server already serving up the root
> filesystem (I'm not going to detail configuring that here).  That
> filesystem must contain an /etc/fstab that includes the ip:/rootpath
> entry for the root filesystem.  In other words, even though the software
> must already know the ip:/rootpath to find the fstab file, the file
> still must contain a root path entry.  (I find this annoying.)
> 
> Now on the u-boot side you need to add a few lines to the uEnv.txt file
> on the FAT partition (create the file there if it doesn't already
> exist).  You can configure a static IP address or get the IP from dhcp:
> 
> For static IP (On RPi only, add one line: UserPreboot=usb start)
> 
>        loaderdev=net
>        rootpath=192.168.0.240:/wand
>        ipaddr=192.168.0.233
>        netmask=255.255.255.0
> 
> 
> For DHCP (On RPi only, last line is: UserPreboot=usb start && dhcp)
> 
>        loaderdev=net
>        rootpath=192.168.0.240:/wand
>        autoload=no
>        UserPreboot=dhcp
> 
> BTW, you may notice a Netboot command in the standard u-boot env.  Do
> NOT set bootcmd=run Netboot, that would make u-boot try to load ubldr
> over the network, which requires running a tftp server.
> 
> — Ian

thanks! 
it almost worked :-)
- UserPreboot didn’t work, probably because I have the wrong u-boot?
stoping the boot, then typing
	usb start
	boot
at the U-Boot> prompt saved the day!

- if instead of boot I type dhcp, it tries to tftp u-boot, but I can’t figure out
  how to start it :-(

in any case, great!
now it would be nice if we pull resources and get this diskless stuff cleaned up

danny



More information about the freebsd-arm mailing list