NFS Root with Raspberry Pi (nfs_diskless: no interface)
Ian Lepore
ian at freebsd.org
Thu Sep 24 14:37:14 UTC 2015
On Thu, 2015-09-24 at 14:28 +0300, Daniel Braniss wrote:
> > On 23 Sep 2015, at 20:44, Randy Westlund <rwestlun at 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
More information about the freebsd-arm
mailing list