Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Sep 2015 08:37:06 -0600
From:      Ian Lepore <ian@freebsd.org>
To:        Daniel Braniss <danny@cs.huji.ac.il>
Cc:        Randy Westlund <rwestlun@gmail.com>, freebsd-arm@freebsd.org
Subject:   Re: NFS Root with Raspberry Pi (nfs_diskless: no interface)
Message-ID:  <1443105426.1224.272.camel@freebsd.org>
In-Reply-To: <CFAAFAE2-F0B2-431B-93C6-61D66464B7FD@cs.huji.ac.il>
References:  <20150922052522.GA62140@gmail.com> <00C49FEB-E8EF-4469-85E2-0F901215CD11@cs.huji.ac.il> <20150923050414.GB43653@gmail.com> <91AAC64E-4C38-47AA-8910-48F7654A7524@cs.huji.ac.il> <20150923174445.GE43653@gmail.com> <CFAAFAE2-F0B2-431B-93C6-61D66464B7FD@cs.huji.ac.il>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 2015-09-24 at 14:28 +0300, Daniel Braniss wrote:
> > On 23 Sep 2015, at 20:44, Randy Westlund <rwestlun@gmail.com> wrote:
> > 
> > On Wed, Sep 23, 2015 at 11:54:43AM +0300, Daniel Braniss wrote:
> >> ok, thought it was too easy. Can you send me more info so that i can reproduce it here?
> >> specially the ubldr stuff?
> >> 
> >> ah! try if_smsc_load=YES
> >> 
> >> danny
> > 
> > Okay, that's definitely the correct driver.  Looks like the pi uses a
> > SMSC LAN9514 ethernet module.  But I see the same output regardless of
> > whether that's in loader.conf or not.  The kernel seems to be finding
> > smsc0 just fine.  It just hasn't created the interface yet.
> 
> iÿll try this here tomorrow, but in the meantime some ideas:
> did you compile the kernel with option BOOTP_NFSV3?
> 
> 
> > 
> >> ugen0.1: <DWCOTG> at usbus0
> >> uhub0: <DWCOTG OTG Root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus0
> >> mmcsd0: 4GB <SDHC SU04G 8.0 SN 001FC92A MFG 12/2011 by 3 SD> at mmc0 41.6MHz/4bit/65535-block
> >> nfs_diskless: no interface
> >> Root mount waiting for: usbus0
> >> uhub0: 1 port with 1 removable, self powered
> >> ugen0.2: <vendor 0x0424> at usbus0
> >> uhub1: <vendor 0x0424 product 0x9512, class 9/0, rev 2.00/2.00, addr 2> on usbus0
> >> uhub1: MTT enabled
> >> Root mount waiting for: usbus0
> >> uhub1: 3 ports with 2 removable, self powered
> >> Root mount waiting for: usbus0
> >> ugen0.3: <vendor 0x0424> at usbus0
> >> smsc0: <vendor 0x0424 product 0xec00, rev 2.00/2.00, addr 3> on usbus0
> >> Trying to mount root from nfs:192.168.1.254:/usr/raspi_root [rw]...
> >> nfs_diskless: no interface
> >> Mounting from nfs:192.168.1.254:/usr/raspi_root failed with error -1.
> >> 
> >> Loader variables:
> >>  vfs.root.mountfrom=nfs:192.168.1.254:/usr/raspi_root
> >>  vfs.root.mountfrom.options=rw
> > 
> 
> > Here's the fstab that the pi is using:
> > 
> >> cat /usr/raspi_root/etc/fstab
> >> 192.168.1.254:/usr/raspi_root / nfs rw 0 0
> > 
> > Here's dhcp.conf on my router:
> > 
> >> $ cat /etc/dhcpd.conf
> >> authoritative;
> >> option domain-name-servers 192.168.1.1;
> >> 
> >> subnet 192.168.1.0 netmask 255.255.255.0 {
> >>    option routers 192.168.1.1;
> >>    range 192.168.1.2 192.168.1.150;
> >>    next-server 192.168.1.254;
> >>    option root-path "/usr/raspi_root";
> >> }
> > 
> > Here's what ubldr sees before it loads the kernel over NFS:
> > 
> >> loader> show
> >> LINES=24
> >> autoboot_delay=10
> >> boot.netif.gateway=0.0.0.0
> >> boot.netif.hwaddr=b8:27:eb:28:a4:f8
> >> boot.netif.ip=192.168.1.33
> >> boot.netif.netmask=255.255.255.0
> >> boot.nfsroot.nfshandle=X298684cadeaf78ee0a000400000000006ed938000000000000000000X
> >> boot.nfsroot.nfshandlelen=28
> >> boot.nfsroot.path=/usr/raspi_root
> >> boot.nfsroot.server=192.168.1.254
> >> bootfile=kernel
> >> console=uboot
> >> currdev=net0:
> >> interpret=OK
> >> kernel=kernel
> >> kernelname=/boot/kernel/kernel
> >> loaddev=net0:
> >> loader_conf_files=/boot/loader.conf /boot/loader.conf.local
> >> module_path=/boot/kernel;/boot/kernel;/boot/modules;/boot/dtb
> >> prompt=loader>
> >> twiddle_divisor=1
> > 
> > The files I'm using are all taken from one of these two images (same
> > result with both):
> > 
> > FreeBSD-11.0-CURRENT-arm-armv6-RPI-B-20150826-r287169.img
> > FreeBSD-10.2-STABLE-arm-armv6-RPI-B-20150917-r287929.img
> > 
> > Let me know if you need any other info, and thanks for spending time on
> > this.
> > 
> > Randy

Try setting boot.netif.name="ue0" in loader.conf.  I've never tried
that, but in looking at the code, there's some chance it could work.  :)

What I do is put these options into my RPi kernel config:

options 	BOOTP
options 	BOOTP_NFSROOT
options 	BOOTP_NFSV3
options 	BOOTP_WIRED_TO=ue0

But this requires configuring a bootp or dhcp server to provide the
info.  It should be possible to netboot without using BOOTP.

-- Ian




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1443105426.1224.272.camel>