1

I'm trying to mount my rootfs over NFS. I have these kernel configs enabled:

CONFIG_NFS_FS=y     (NFS support)
CONFIG_IP_PNP=y     (configure IP at boot time)
CONFIG_ROOT_NFS=y   (support for NFS as rootfs)

This is my kernel commandline:

debug nfsrootdebug loglevel=8 console=ttymxc1,115200 imx-fbdev.legacyfb_depth=32 consoleblank=0 ip=10.42.102.244:10.42.102.5::255.255.255.0::eth0: root=/dev/nfs nfsroot=10.42.102.5:/srv/nfs/dc10,v3,tcp noinitrd

Here's the relevant parts from the boot messages:

libphy: 63fec000.etherne:01 - Link is Up - 100/Full
IP-Config: Complete:
     device=eth0, hwaddr=00:d0:93:2a:6c:8e, ipaddr=10.42.102.244, mask=255.255.255.0, gw=255.255.255.255
     host=10.42.102.244, domain=, nis-domain=(none)
     bootserver=10.42.102.5, rootserver=10.42.102.5, rootpath=
ALSA device list:
  #0: imx53-mba53-sgtl5000
Freeing init memory: 6332K
Welcome to Buildroot 2013.05!

I was expecting to see lines about RPC communication and VFS mounting over nfs, but none of that and no error messages printed either, depsite providing "debug" "nfsrootdebug" and "loglevel=8" as kernel parameters.

I've verified with tcpdump on the nfs server side that no packets are being sent.

Once the board has booted, I can connect to the computer running the nfs-server using ssh.

Does anyone have any suggestion what's going wrong or how I can debug this further?

1

I haven't worked with ARM specifically, but usually for NFS root the command line should look like root=nfs:[Server IP]:/[Directory],[options] (so for you it would be root=nfs:10.42.102.5:/srv/nfs/dc10,v3,tcp) and the initrd will parse out the root info. Using root=/dev/nfs is generally deprecated (the file /dev/nfs isn't actually used in the mounting process, it's merely a hint that NFS should be used, but does not always exist in more recent initrds.

I saw in your command line that you use noinitrd, is there a reason for this? The role of an initrd is to improve flexibility for mounting your root partition, and is exactly perfect for this kind of scenario (mounting a root device that isn't an internal HD).

Also, is your kernel command line coming from a partition on your local disk? Or is this a diskless system (PXE booting to an NFS root)? If possible it would be useful to remove your local disk while debugging to see what happens, but if your kernel command line is coming from a boot partition on local disk that's not very feasible.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.