基于飞淩OK6410开发板与Ubuntu 10.04 的NFS的配置

来源:互联网 发布:淘宝店铺如何快速升钻 编辑:程序博客网 时间:2024/05/22 06:52

1、NFS简介

NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。

用NFS可以实现把宿主机的目录挂载到开发板上,这样用宿主机进行交叉编译时就不用用USB或者SD卡将编译好的文件拷贝到开发板上运行了,调试程序非常方便。

2、Ubuntu与开发板的IP设置

既然是NFS(网络文件系统),那么网络的 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不通,出现如下提示信息:


那么可能的原因为:

(1) 查看虚拟机的网络配置是否是 桥接模式(Bridged); 
(2) 如果电脑连接的是无线网络连接,就把无线网断开,但是Ubuntu的网络不用管,只断开电脑的wifi;
(3) 将Ubuntu中防火墙关闭,命令为:sudo ufw disablesudo ufw enable为开启防火墙);
(4) 可以看看Ubuntu与电脑的连通性,以排除Ubuntu本身的问题。具体操作可以参考:http://blog.csdn.net/to_utopia/article/details/8869781

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

3.5、在开发板OK6410上挂载nfs

在进行以上操作时,开发板不要断电,因为断电后,IP地址会恢复为默认值。
在OK6410终端(此处用的dnw)输入:mount –t nfs –o nolock 172.20.132.5:/nfs   /mnt
说明:  172.20.132.5为Ubuntu的 IP地址
/nfs为Ubuntu中共享目录(3.3中创建的)
/mnt为开发板OK6410中共享目录
注意:在挂载的时候,可能会出现:mount: 172.20.132.5:nfs failed, reason given by server: Permission denied的问题,可以参考http://blog.csdn.net/chinalinuxzend/article/details/4098530。但是在作者这里的问题是创建的nfs文件没有在根目录下,将nfs放到根目录下后,该问题得以解决。

3.6、验证nfs服务是否成功

在OK6410终端(此处用的dnw)输入:ls /mnt   如果能看到succeedfile文件夹,那么说明nfs服务已成功。以后就可以通过nfs将Ubuntu中的程序直接共享到开发板中了。

0 0
原创粉丝点击