uboot使用nfs出现*** ERROR: Cannot mount

想在ZYNQ上运行openwrt,之前移植(适配)了uboot,然后试了好几个版本的openwrt,嗯。。有点坎坷。

后来最终编译成功后,简单烧进去试了下要么输出ipv6错误要么移植重复uboot,就试了试之前uboot的网络是否ok,结果nfs又搞了好长时间。

uboot可以ping我的Ubuntu和PC,只是显示host XX.XX.XX.XX  is alive,心里没谱,Ubuntu ping 开发版ping不通,后来才知道

主机和bai虚拟机能相互ping通是因du为主机与虚拟机都开启了对zhi应的进程(或线程,不清楚dao)等待ping命令的到来1653,而在uboot命令输入状态下,当使用ping命令时,实际上是uboot先根据你输入的IP地址发送一个ICMP回送请求和回答报文到对应主机,然后再等待一段时间,如果在这段时间后主机没有响应,则显示ping不通,主机如果在这段时间内发送了回答报文则能ping通。可以通过追踪程序的调用来查看该过程。
你使用主机或虚拟机ping开发板时,开发板正处于main_loop循环中(等待用户输入命令),根本没有对应的程序或中断(uboot中一般不使用中断)来检测主机的ping命令,当然ping不通。

后来安装正点原子的教程设置Ubuntu的nfs,但是出现*** ERROR: Cannot mount

折腾好久,搜索好多案例,然后结合自己的实际情况,将这个事情捋一捋:

sudo apt-get install nfs-kernel-server     安装nfs

sudo vi /etc/exports                                 修改nfs配置文件,将nfs运行挂载的目录在exports中定义

以后在后面添加如下所示内容: /home/kennan/linux/nfs *(rw,sync,no_root_squash)

重启NFS服务,使用如下命令: sudo service nfs-kernel-server restart
此时可以运行以下命令来显示共享的目录:

showmount -e
在nfs运行的过程中,修改了/etc/exports配置文件,可以使用exportfs命令使改动生效,具体命令:

sudo exportfs -rv

上述方法试了之后还是不行的,又继续搜到如下方案,

在host文件中将开发板的IP地址增加进去,

host文件在/etc/hosts中

sudo vi /etc/hosts
打开后加入 10.0.0.5    /home/kennan/linux/nfs/

然后再在uboot中使用nfs下载zImage文件,还是显示了错误,不过这次多了一行:
ethernet@e000b000 **********************

感受到了进步,后来又由于某些原因,发现我在Ubuntu中实际新建的文件夹是/home/kennan/kennan/linux/nfs/

多出来一层kennan,应该是Ubuntu还用不习惯,删掉了一层kennan使得与nfs配置一致。

嗯,还是不行,然后又搜到一个信息,可能是uboot中使用得NFS版本为V2版本,而ubuntu中的NFS版本为V3,V4及以上版本,从而导致uboot不能再NFS服务器中找到文件

解决办法为:让buntu中得NFS兼容V2。修改/etc/default/nfs-kernel-server 文件。

操作方法如下:

(1)打开文件:sudo vim /etc/default/nfs-kernel-server (注意一定要sudo或者root权限)

(2)修改如图:

(3)保存退出。

(4)重启NFS服务器。sudo service nfs-kernel-server restart

解决后重新输入命令下载成功如图:

终于成功了,感觉好不容易啊,学习linux每一步都需要花大量的时间。

  • 14
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值