NFS挂载嵌入式Linux根文件系统

2019-07-12 22:57发布

   之前转载过一篇《nfs挂载android根文件系统》,但是自己一直都没做成功过,之前因为挂载普通嵌入式Linux根文件系统总是在内核刚启动时,开发板就不向串口打印信息了,而是直接打印到开发板lcd屏上,我想这肯定是uboot的启动参数没有设置正确。但是由于找工作的原因一直都没有去解决。     今天由于必须用nfs挂载android根文件系统,又重新回到这样一个问题中来,没有设置正确的uboot启动参数,经过多次尝试,终于能让开发板向串口打印信息了。具体设置的uboot的启动参数如下: >setenv ipaddr 192.168.3.189 >setenv getway 192.168.3.254 >setenv serverip 192.168.3.201 >setenv bootargs root=/dev/nfs rw nfsroot=192.168.3.201:/home/yww/nfs,proto=tcp,nfsvers=3,nolock ip=192.168.3.189:192.168.3.201:192.168.3.254:255.255.255.0:YWW:eth0:off console=ttySAC0,115200 init=/linuxrc 需要说明一点的是,在启动参数中,设置了nfsroot=192.168.3.201:/home/yww/nfs,proto=tcp,nfsvers=3,nolock ,后面这三个参数是在出现了 可以在宿主机上用ping命令ping一下开发板ip,此时终于能够ping通了~~哈哈~~成功不远了~~      虽然能够向串口打印信息,这样一来,就能看到了到底有没有成功挂载,能够看到出现什么问题了,不出所料啊~~新问题就出来了:   可以看到出现的新问题: Root-NFS: Unable to get mountd port number from server, using default Root-NFS: Server returned error -5 while mounting /home/yww/nfs 我们在主机上ping 192.168.3.189 64 bytes from 192.168.3.189: icmp_seq=99 ttl=64 time=1.02 ms
64 bytes from 192.168.3.189: icmp_seq=100 ttl=64 time=1.34 ms
64 bytes from 192.168.3.189: icmp_seq=101 ttl=64 time=0.993 ms
--- 192.168.3.189 ping statistics ---
101 packets transmitted, 101 received, 0% packet loss, time 100011ms
rtt min/avg/max/mdev = 0.777/1.187/6.680/0.894 ms
看上去好像没有丢包啊~~可是为什么挂载不了呢~~~?????
还不是很清楚啊~~会不会是我将我的开发板与主机之间用路由器相连的缘故,明天拿交叉网线直接将开发板与主机连上试试看~~相信会成功的~~哈哈~~大家等等哦~~呵呵~~   nfs: server 192.168.3.201 not responding, still trying问题之后加上去的。问题的原因是nfs默认使用的UDP协议,这协议丢包比较严重,所以用上述三个参数将nfs设置为:tcp协议。