This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DM6467 - NFS mount inconsistent behavior



Hi,

My NFS root file system mount seems to work only sporatically and when it does work, it reports that there alot of duplicate registrations.  i would like to be able to reboot and mount the NFS driving consistently all the time.  I follow the steps in the GSG for NFS share.  I have not set up the tftp kernal boot. 

Important Setup facts:

- using kernal from NAND, mapping to "arago-demo-image-dm6467t-evm.tar.gz" (unzipped of course) on server, portmap and nfs are running on the server and have ids, /etc/exports = "/shares/davinci        *(rw,no_root_squash,no_all_squash,sync)" without the quotes, other machines can mount to /shares/davinci,

UBoot Info:

DM6467 EVM > printenv
bootcmd=nboot 0x80700000 0 0x160000; bootm
baudrate=115200
bootfile="uImage"
addclk=setenv bootargs ${bootargs} clkref=${clkref}
ethaddr=00:0e:99:02:b7:79
ethact=DaVinci EMAC
bootdelay=5
netmask=255.255.255.0
clkref=33000000
ipaddr=172.17.1.55
bootargs=mem=76M console=ttyS0,115200n8 root=/dev/nfs nfsroot=172.17.1.152:/shares/davinci,nolock,tcp rw noinitrd ip=172.17.1.55:172.17.1.152:172.17.1.1:255.255.255.0::eth0:off vpif_display.ch2_numbuffers=0 vpif_display.ch3_numbuffer=0
stdin=serial
stdout=serial
stderr=serial
ver=U-Boot 2009.08-00002-gcab1855 (Jan 20 2010 - 04:20:31)

Failed NFS mount:

IP-Config: Complete:                                                                                                                                                                             
     device=eth0, addr=172.17.1.55, mask=255.255.255.0, gw=172.17.1.1,                                                                                                                           
     host=172.17.1.55, domain=, nis-domain=(none),                                                                                                                                               
     bootserver=172.17.1.152, rootserver=172.17.1.152, rootpath=                                                                                                                                 
Looking up port of RPC 100003/2 on 172.17.1.152                                                                                                                                                  
PHY: 1:01 - Link is Up - 1000/Full                                                                                                                                                               
rpcbind: server 172.17.1.152 not responding, timed out                                                                                                                                           
Root-NFS: Unable to get nfsd port number from server, using default                                                                                                                              
Looking up port of RPC 100005/1 on 172.17.1.152                                                                                                                                                  
rpcbind: server 172.17.1.152 not responding, timed out                                                                                                                                           
Root-NFS: Unable to get mountd port number from server, using default                                                                                                                            
Root-NFS: Server returned error -5 while mounting /shares/davinci                                                                                                                                
VFS: Unable to mount root fs via NFS, trying floppy.                                                                                                                                             
VFS: Cannot open root device "nfs" or unknown-block(2,0)                                                                                                                                         
Please append a correct "root=" boot option; here are the available partitions:                                                                                                                  
0300        39070080 hda driver: ide-gd                                                                                                                                                          
  0301        27342598 hda1                                                                                                                                                                      
  0302        11727450 hda2                                                                                                                                                                      
1f00             128 mtdblock0 (driver?)                                                                                                                                                         
1f01            1280 mtdblock1 (driver?)                                                                                                                                                         
1f02            4096 mtdblock2 (driver?)                                                                                                                                                         
1f03          125568 mtdblock3 (driver?)                                                                                                                                                         
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)                                                                                                                   
Backtrace:                                                                                                                                                                                       
[<c00307d0>] (dump_backtrace+0x0/0x114) from [<c030af14>] (dump_stack+0x18/0x1c)                                                                                                                 
 r7:00008000 r6:c3013000 r5:c0026808 r4:c041e850                                                                                                                                                 
[<c030aefc>] (dump_stack+0x0/0x1c) from [<c030af6c>] (panic+0x54/0x124)                                                                                                                          
[<c030af18>] (panic+0x0/0x124) from [<c0008fbc>] (mount_block_root+0x1e0/0x220)                                                                                                                  
 r3:00000001 r2:c3029e98 r1:c3029f60 r0:c0395ead                                                                                                                                                 
[<c0008ddc>] (mount_block_root+0x0/0x220) from [<c00090c0>] (mount_root+0xc4/0xfc)                                                                                                               
 r8:00000000 r7:00000000 r6:00000000 r5:00000000 r4:00200000                                                                                                                                     
[<c0008ffc>] (mount_root+0x0/0xfc) from [<c0009268>] (prepare_namespace+0x170/0x1c8)                                                                                                             
 r5:c0026808 r4:c041e340                                                                                                                                                                         
[<c00090f8>] (prepare_namespace+0x0/0x1c8) from [<c00084bc>] (kernel_init+0xe4/0x118)                                                                                                            
 r5:00000000 r4:c041e100                                                                                                                                                                         
[<c00083d8>] (kernel_init+0x0/0x118) from [<c0045704>] (do_exit+0x0/0x684)                                                                                                                       
 r5:00000000 r4:00000000 

Semi-Sucessful NFS mount version 1:

IP-Config: Complete:                                                           
     device=eth0, addr=172.17.1.55, mask=255.255.255.0, gw=172.17.1.1,         
     host=172.17.1.55, domain=, nis-domain=(none),                             
     bootserver=172.17.1.152, rootserver=172.17.1.152, rootpath=               
Looking up port of RPC 100003/2 on 172.17.1.152                                
PHY: 1:01 - Link is Up - 1000/Full                                             
Looking up port of RPC 100005/1 on 172.17.1.152                                
VFS: Mounted root (nfs filesystem) on device 0:13.                             
Freeing init memory: 144K                                                      
INIT: version 2.86 booting                                                     
Please wait: booting...                                                        
Starting udev                                                                  
nand_ecc: exports duplicate symbol nand_correct_data (owned by kernel)         
nand_ids: exports duplicate symbol nand_flash_ids (owned by kernel)            
nop_usb_xceiv: exports duplicate symbol usb_nop_xceiv_unregister (owned by kern)
mtd: exports duplicate symbol add_mtd_partitions (owned by kernel)             
ide_core: exports duplicate symbol generic_ide_ioctl (owned by kernel)         
snd_page_alloc: exports duplicate symbol snd_free_pages (owned by kernel)      
musb_hdrc: module is already loaded                                            
nop_usb_xceiv: exports duplicate symbol usb_nop_xceiv_unregister (owned by kern)
Error: Driver 'watchdog' is already registered, aborting...                    
nand: exports duplicate symbol nand_default_bbt (owned by kernel)              
snd_page_alloc: exports duplicate symbol snd_free_pages (owned by kernel)      
Error: Driver 'palm_bk3710' is already registered, aborting...                 
soundcore: exports duplicate symbol sound_class (owned by kernel)              
Error: Driver 'davinci_nand' is already registered, aborting...                
snd: module is already loaded                                                  
soundcore: exports duplicate symbol sound_class (owned by kernel)              
snd_timer: module is already loaded                                            
snd: module is already loaded                                                  
snd_pcm: module is already loaded                                              
snd_soc_core: exports duplicate symbol snd_soc_unregister_codec (owned by kerne)
snd_timer: module is already loaded                                            
ide_core: exports duplicate symbol generic_ide_ioctl (owned by kernel)         
snd_pcm: module is already loaded                                              
ide_gd_mod: module is already loaded                                           
snd_soc_core: exports duplicate symbol snd_soc_unregister_codec (owned by kerne)
snd_soc_tlv320aic3x: exports duplicate symbol soc_codec_dev_aic3x (owned by ker)
EXT2-fs warning (device hda1): ext2_fill_super: mounting ext3 filesystem as ext2
EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended          
EXT2-fs warning (device hda2): ext2_fill_super: mounting ext3 filesystem as ext2
EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended

Populating dev cache                                                           
Remounting root file system...                                                 
mount: mounting /dev/root on / failed: Invalid argument                        
mount: mounting /dev/root on / failed: Invalid argument                        
root: mount: mounting rootfs on / failed: No such file or directory            
Setting up IP spoofing protection: rp_filter.                                  
Configuring network interfaces... done.                                        
Mon Jan 11 21:43:00 UTC 2010                                                   
Configuring update-modules                                                     
/etc/modutils/ipv6: line 1: ipv6: not found                                    
Error while executing /etc/modutils/ipv6, aborting                             
update-modules: No such file or directory                                      
An error occurred, return value: 2.                                            
INIT: Entering runlevel: 5                                                     
Starting telnet daemon.                                                        
Starting syslogd/klogd: done                                                   
Starting thttpdNET: Registered protocol family 10      

Semi Successful NFS Moutn Version 2:

IP-Config: Complete:
     device=eth0, addr=172.17.1.55, mask=255.255.255.0, gw=172.17.1.1,
     host=172.17.1.55, domain=, nis-domain=(none),
     bootserver=172.17.1.152, rootserver=172.17.1.152, rootpath=
Looking up port of RPC 100003/2 on 172.17.1.152
PHY: 1:01 - Link is Up - 1000/Full
Looking up port of RPC 100005/1 on 172.17.1.152
VFS: Mounted root (nfs filesystem) on device 0:13.
Freeing init memory: 144K
INIT: version 2.86 booting
Please wait: booting...
Starting udev
udev: starting version 141
udevd[1032]: inotify_add_watch(3, (null), 10) failed: Bad address

udevd[1032]: inotify_add_watch(3, (null), 10) failed: Bad address

udevd[1032]: inotify_add_watch(3, (null), 10) failed: Bad address

udevd[1032]: inotify_add_watch(3, (null), 10) failed: Bad address

udevd[1032]: inotify_add_watch(3, (null), 10) failed: Bad address

udevd[1032]: inotify_add_watch(3, (null), 10) failed: Bad address

udevd[1032]: inotify_add_watch(3, (null), 10) failed: Bad address

udevd[1032]: inotify_add_watch(3, (null), 10) failed: Bad address

udevd[1032]: inotify_add_watch(3, (null), 10) failed: Bad address

udevd[1032]: inotify_add_watch(3, (null), 10) failed: Bad address

udevd[1032]: inotify_add_watch(3, (null), 10) failed: Bad address

udevd[1032]: inotify_add_watch(3, (null), 10) failed: Bad address

snd_page_alloc: exports duplicate symbol snd_free_pages (owned by kernel)
ide_core: exports duplicate symbol generic_ide_ioctl (owned by kernel)
soundcore: exports duplicate symbol sound_class (owned by kernel)
ide_gd_mod: module is already loaded
snd: module is already loaded
snd_timer: module is already loaded
snd_pcm: module is already loaded
snd_soc_core: exports duplicate symbol snd_soc_unregister_codec (owned by kernel)
snd_soc_tlv320aic3x: exports duplicate symbol soc_codec_dev_aic3x (owned by kernel)
Remounting root file system...
mount: mounting /dev/root on / failed: Invalid argument
mount: mounting /dev/root on / failed: Invalid argument
root: mount: mounting rootfs on / failed: No such file or directory
EXT2-fs warning (device hda2): ext2_fill_super: mounting ext3 filesystem as ext2
EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended
EXT2-fs warning (device hda1): ext2_fill_super: mounting ext3 filesystem as ext2
EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended
Setting up IP spoofing protection: rp_filter.
Configuring network interfaces... done.
Mon Jan 11 21:43:00 UTC 2010
INIT: Entering runlevel: 5
Starting telnet daemon.
Starting syslogd/klogd: done
Starting thttpdNET: Registered protocol family 10

What does it all mean?  I have read a ba-zillion posts about this and every suggestion/point seems to not fit my problem - becuase sometimes (on the semi-successful versions) I get all the way to the login screen and run code etc.

Any advice would be helpful or if you need some more information.  Thanks!

  • Hello, 

    I know this post got moved, but was there any advice on this topic? 

    Thanks again,
    Brandy

  • I don't have either the board/ filesystem you mentioned; but hope my comments/suggestions will help you.

    Brandy Jabkiewicz said:

    bootargs=mem=76M console=ttyS0,115200n8 root=/dev/nfs nfsroot=172.17.1.152:/shares/davinci,nolock,tcp rw noinitrd ip=172.17.1.55:172.17.1.152:172.17.1.1:255.255.255.0::eth0:off vpif_display.ch2_numbuffers=0 vpif_display.ch3_numbuffer=0

    Can you try removing the "tcp" from your mount options?
    Brandy Jabkiewicz said:

    IP-Config: Complete:
    device=eth0, addr=172.17.1.55, mask=255.255.255.0, gw=172.17.1.1,
         host=172.17.1.55, domain=, nis-domain=(none),
         bootserver=172.17.1.152, rootserver=172.17.1.152, rootpath=
    Looking up port of RPC 100003/2 on 172.17.1.152
    PHY: 1:01 - Link is Up - 1000/Full
    rpcbind: server 172.17.1.152 not responding, timed out
    Root-NFS: Unable to get nfsd port number from server, using default
    Looking up port of RPC 100005/1 on 172.17.1.152
    rpcbind: server 172.17.1.152 not responding, timed out
    Root-NFS: Unable to get mountd port number from server, using default
    Root-NFS: Server returned error -5 while mounting /shares/davinci


    Brandy Jabkiewicz said:

    IP-Config: Complete:
         device=eth0, addr=172.17.1.55, mask=255.255.255.0, gw=172.17.1.1,
         host=172.17.1.55, domain=, nis-domain=(none),
         bootserver=172.17.1.152, rootserver=172.17.1.152, rootpath=
    Looking up port of RPC 100003/2 on 172.17.1.152
    PHY: 1:01 - Link is Up - 1000/Full
    Looking up port of RPC 100005/1 on 172.17.1.152
    VFS: Mounted root (nfs filesystem) on device 0:13.
    Freeing init memory: 144K

    Based on two logs, I would suggest that you try either for following:

    1. Use a different router - if you are using a local router - to access the machine hosting the nfs export.
    2. Try mounting the mount point(s) from a linux machine - in small loop (with delay) to see if it mounts & unmounts consistently each time.
    3. Confirm that there isn't another machine/evm using the same network settings. Happens when EVMs are shared within the team...

    Brandy Jabkiewicz said:

    IP-Config: Complete:
         device=eth0, addr=172.17.1.55, mask=255.255.255.0, gw=172.17.1.1,
         host=172.17.1.55, domain=, nis-domain=(none),
         bootserver=172.17.1.152, rootserver=172.17.1.152, rootpath=
    Looking up port of RPC 100003/2 on 172.17.1.152
    PHY: 1:01 - Link is Up - 1000/Full
    Looking up port of RPC 100005/1 on 172.17.1.152
    VFS: Mounted root (nfs filesystem) on device 0:13.
    Remounting root file system...
    mount: mounting /dev/root on / failed: Invalid argument
    mount: mounting /dev/root on / failed: Invalid argument


    Can you look for <tt>mount -o remount /</tt> command in the init scripts of the fileystem? (They would usually be in <tt>/etc</tt> or <tt>/etc/init.d</tt> directories) And replace with:
    <tt>busybox mount -o remount /dev/root /</tt> If this works then it could be due to differences in the syntax of mount command.

    Brandy Jabkiewicz said:

    root: mount: mounting rootfs on / failed: No such file or directory
    EXT2-fs warning (device hda2): ext2_fill_super: mounting ext3 filesystem as ext2
    EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended
    EXT2-fs warning (device hda1): ext2_fill_super: mounting ext3 filesystem as ext2
    EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended

    There seems to be mismatch between the filesystem being mounted and expected. You may want to add "rootfstype=ext3" to your bootargs if it is supported in the kernel image; OR, create another mount point - formatted as ext2 - and try.

  • Sanjeev,

    Ok, I tried a few more things based on your suggestions.

    1.  Remove tcp - did not help

    2.  Added rootfstype=ext3 - did not help

    3.  Remove my router and did point to point to my virtual box - did not help.  I could still only mount sometimes

    4.  Remove my virtual box and tried to mount to an actual linux box - even worse.  I cannot mount to this box at all - wierd. (but other machines including my vb could.)

    I cannot find what you are talking about in the initscripts.  Can you point me to a specifc script?  I am using the arago-demo-image-dm6467t-evm.tar.gz, can you point me to the specific script you me?

    What about this idea?  Could it be that the davinci is not shutting down the nfs mount properly?  If I wait some time, it is often successfully mount but with same logs as above (either duplicate registrations or failed bad address).  Is there a shutdown script that I could change to make sure that the davinci unmounts the drives before it shuts down the IP server?

    Or maybe you have some other thoughts.  Did you say you wanted the entire boot log? 

  • Ok.  Remove point 4.  I was able to mount to the system.

    I also added two variables to Uboot and it seems to make the process more stable but it still locks up occasionally.  I added serverip and rootpath.

    Here are the two logs:

    4214.SemiSuccessfulMount_v2.txt

    1157.FailedNFSBootlog.txt

    Thanks for all your help!

  • I am intrigued by the value of bootarg "ip" in both the logs:

    Brandy Jabkiewicz said:

    Built 1 zonelists in Zone order, mobility grouping off.  Total pages: 19304                                                 
    Kernel command line: mem=76M console=ttyS0,115200n8 root=/dev/nfs nfsroot=172.17.1.117:/mnt/davinci,nolock rw noinitrd ip=10
    PID hash table entries: 512 (order: -1, 2048 bytes)

    Can you verify that value of "ip" is set to a valid IP address? Or you could try using DHCP as well.

  • Hi Sanjeev,

    The complete bootargs look like this:

    bootargs mem=76M console=ttyS0,115200n8 root=/dev/nfs nfsroot=172.17.1.152:/shares/davinci,nolock rw noinitrd ip=172.17.1.55:172.17.1.152:172.17.1.1:255.255.255.0::eth0:off pif_display.ch2_numbuffers=0 vpif_display.ch3_numbuffers=0

    My terminal will cut off data if the screen is not large enough.  "IP=10" is the first digit of the IP address concated with the final character in the string, ie '0'.  When the system boots the davinci is set up with the proper static address.

    It is odd that I can't get the system to be stable.  I followed the GSG pretty closely.  Could there be a compatibility problem with the kernal on the flash drive and the libraries stored on the NFS share?  Maybe the root file system is missing a library that the kernal is expecting to have to setup properly? 

    Thanks!

    Brandy

  • Brandy Jabkiewicz said:

    Hi Sanjeev,
    The complete bootargs look like this:
    My terminal will cut off data if the screen is not large enough.  "IP=10" is the first digit of the IP address concated with the final character in the string, ie '0'.  When the system boots the davinci is set up with the proper static address.


    Understood.

    Brandy Jabkiewicz said:

    Could there be a compatibility problem with the kernal on the flash drive and the libraries stored on the NFS share?  Maybe the root file system is missing a library that the kernal is expecting to have to setup properly?

    This wouldn't be a problem at this stage. May not be a problem unless there is "huge" difference between the way filesystem and kernel were built e.g. across major GCC versions with major implementation changes.
    Here the target filesystem hasn't been mounted. So, nothing on the NFS is visible to kernel anyway...

    Returning to your setup issues, i didn't see anything different between your successful and failed logs - other than the rpcbind failing.

    I am not aware of your network setup; but you could try one of these:
    1) Check the logs on your server - just in case there is an error related to nfsd/ mountd/ rpcbind. It could help you isolate the problem.
    2) restart the NFS daemon on the server machine. It may have some dead/hung threads due to multiple failed mount attempts.
    3) try adding these arguments to kernel command-line "rsize=1024,wsize=1024" will help if there are data overruns due to speed mismatch between nfs client and server.
    4) Eliminate/temporarily change any local switch you mave have connected your board to.

    Don't try all at once - won;t help isolating the problem.

  • Hello!

    I have the same inconsistent behavior ! Any progress?

    thanks! Regards

    Claudio

  • No, I was never able to solve it.  I narrowed it down to PHY negotiation but I did not determine a good or bad case.  Sorry.

     

  • I've found that setting 27000000 as Input oscillator clock frequency ( using menuconfig ) I have this nfs issue. setting 33000000 the nfs problem disappear ! But problems on video side occures. But 33MHz is the clkref of dm6467t !

    Any suggestion?

    regards

    Claudio

     

     

  • OSC frequency shouldn't have anything to do with the NFS mount.

    However, if the observation is correct, you way want to check the input clock to the EMAC and also the PHY.connectivity (as mentioned in one of earlier mails). I have no personal experience with DM6467 so my response may appear vague. But i hope it helps you find a direction to debug.

  • The problem seems to be related to timer0 settings.

     

    In mach-davinci/time.c Timer0 is initialized and davinci_clock_tick_rate is determined from timer_clk.

    Since clk ref is 27 MHz  -> davinci_clock_tick_rate = 27000000*22 /4 = 148500000.

     

    In this case I have nsf inconsistent behavior as described above.

     

    Forcing davinci_clock_tick_rate = 33000000*22 /4 = 181500000 the nsf issue disappear !!

     

    But the tick_rate now is wrong so the timer0 is unusable.

     

    Any idea?

    thanks

    Claudio