On 31.01.2013 12:27, Eggert, Lars wrote:
Hi,

On Jan 30, 2013, at 22:43, Craig Rodrigues <rodr...@crodrigues.org> wrote:
What you need to do is, before the FreeBSD kernel boots, your
loader needs to export some environment variables.  This will trigger
the various behaviors in the FreeBSD mount code.

the loader can export some environment variables (this is how I get the serial 
console working.)

So as I suggested before, you should continue with:

(1)  Have /usr/home/elars/dst/etc/fstab with:
#  Options  Dump Pass
10.11.12.13:/usr/home/elars/dst/       /         nfs      ro        0    0

Done.

(2)  From your loader, you need to export this environment variable, so
that the kernel can get it with getenv().  You need at least:

vfs.root.mountfrom=nfs:10.11.12.13:/usr/home/elars/dst

Done.

Now, there are some other environment variables you need to export from the
loader.

boot.netif.ip
boot.netif.netmask
boot.netif.gateway
boot.nfsroot.server
boot.nfsroot.path

Done. I also ripped out all the BOOTP* options from the kernel.

However, this still fails:

Trying to mount root from nfs:10.11.12.13:/usr/home/elars/dst []...
mountroot: waiting for device 10.11.12.13:/usr/home/elars/dst ...
Mounting from nfs:10.11.12.13:/usr/home/elars/dst failed with error 19.

Loader variables:
   vfs.root.mountfrom=nfs:10.11.12.13:/usr/home/elars/dst

Manual root filesystem specification:
   <fstype>:<device> [options]
       Mount <device> using filesystem <fstype>
       and with the specified (optional) option list.

     eg. ufs:/dev/da0s1a
         zfs:tank
         cd9660:/dev/acd0 ro
           (which is equivalent to: mount -t cd9660 -o ro /dev/acd0 /)

   ?               List valid disk boot devices
   .               Yield 1 second (for background tasks)
   <empty line>    Abort manual input

mountroot>

I did a tcpdump and no traffic shows up on the correct interface (em4). I guess 
I need to set yet another loader environment variable to indicate which 
interface I'd like to use. Looking at the source, I only see boot.netif.name, 
but setting that to em4 doesn't help either.

Any further ideas?

The interface doesn't have a name during loader stage.  The kernel
finds the interface to use based on the MAC address.  You should
set boot.netif.hwaddr as well in the kernel environment.

--
Andre

_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to