1、NFS简介
NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。
用NFS可以实现把宿主机的目录挂载到开发板上,这样用宿主机进行交叉编译时就不用用USB或者SD卡将编译好的文件拷贝到开发板上运行了,调试程序非常方便。
2、Ubuntu与开发板的IP设置
2.1、设置虚拟机的网络连接方式
2.2、获取Ubuntu的 IP地址
在Ubuntu中,新建一个终端,通过ifconfig命令查看Ubuntu的 IP地址与子网掩码
2.3、设置开发板OK6410的IP地址
将开发板OK6410开机,并进入linux系统,通过命令 ifconfig查看OK6410的 IP地址与子网掩码(OK6410默认的 IP地址为192.168.0.23 默认的子网掩码为255.255.255.0)。如果开发板OK6410的 IP地址与Ubuntu的 IP地址不在一个网段(只有最后一个十进制数不同),那么就需要修改开发板的 IP地址,使其与Ubuntu的 IP地址处于同一网段,使用的命令如下:(在开发板的终端输入,此处作者所用为dnw)
ifconfig eth0 172.20.132.6 netmask 255.255.0.0 up
说明:172.20.132.6 和 255.255.0.0为为开发板设置的 IP地址和子网掩码(Ubuntu的 IP地址为172.20.132.5 子网掩码为255.255.0.0)
2.4、用网线连接开发板与电脑
设置完成后,就可以进行ping操作了(ping操作用于检测网络的连通性。注意此时不要将开发板断电,因为断电后,开发板的IP和子网掩码都会恢复为默认设置)。用网线将开发板和计算机的网口相连接,此时会出现如下的提示信息:(说明开发板的网卡驱动完好)
dm9000 dm9000.0: eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1
2.5、开发板与Ubuntu互ping
在Ubuntu终端中输入ping 172.20.132.6(该 IP地址为开发板OK6410的 IP地址,与Ubuntu的 IP地址172.20.132.5处于同一网段),如果出现如下信息,那么说明从Ubuntu到开发板的网络没问题(最好从开发板的终端也输入ping 172.20.132.5进行测试从开发板到Ubuntu的网络连通性),按Ctrl+C停止打印输出。
2.6、ping不通的原因
如果ping不通,出现如下提示信息:
那么可能的原因为:
3、挂载NFS
3.1、Ubuntu安装nfs服务
Ubuntu中默认是没有安装nfs的,安装非常简单,但需要Ubuntu处于联网情况下运行命令:apt-get install nfs-kernel-server
很快Ubuntu就自己下载并安装完了nfs服务。
3.2、编辑相关配置文件
修改/etc/exports,在Ubuntu终端中输入:gedit/etc/exports,在弹出的文本编辑界面中,在文件的末尾添加:
/nfs *(rw,sync,no_root_squash)。
说明:/nfs 表示我需要设置的宿主机共享目录(后面有讲到在哪创建,先输入即可)
* 和前面中间有个空格,*表示任意ip均可连接,同理可以设置成某一个ip段,如192.168.0.*
rw 表示可读可写
no_root_squash 允许客户机享有主机root身份
3.3、保存后在根目录下对应新建nfs文件夹
在Ubuntu终端中,进入根目录,之后如下输入命令:
mkdir nfs
修改目录权限
chmod 777 -R /nfs
进入nfs目录创建测试文件夹
cd /nfs
mkdir succeedfile(创建该文件夹为了测试是否共享成功)
注意:一定要在根目录下创建该nfs文件夹,不然会出错。(本人就是由于没创建在根目录下,出现了错误,卡了半天)
ps:创建目录后,可以通过pwd命令来查看是否处于根目录下,如果出现 /nfs,表明是在根目录下(“/”的前面不能有文件夹名)。
3.4、启动nfs服务
在Ubuntu终端中输入:service nfs-kernel-server start