在ARMSYS44B0上建立NFS的开发环境

发 布 时 间 : 2008-11-18 来 源 : 本站原创 作 者 : 立宇泰电子 浏 览 :

本文介绍如何在ARMSYS上建立NFS的开发环境,可供一步步进行实践。
相关文档:ARMSYS上的RTL8019设备驱动移植。

1. NFS简介

NFS是Network FileSystem的缩写,NFS是由Sun开发并发展起来的一项用于在不同机器,不同操作系统之间通过网络互相分享文件的技术。NFS可以让你的PC通过网络将远端的NFS 服务器共享出来的文件mount到自己的系统中,在客户端看来使用NFS的远端文件就象是在使用本地文件一样。
使用NFS可以使应用程序的开发变得十分方便,不需要进行映像文件的烧录和下载,只要mount到服务器端的特定目录下,然后运行该目录下的程序即可观察到结果。
建立NFS开发环境的工作分为两个方面,配置NFS服务器和配置客户端。

2.配置NFS服务器端

2.1确认主机安装了NFS服务

方法是查看/etc/rc.d/init.d目录下是否有nfs文件,如果有说明主机已经安装了nfs服务。

2.2编辑/etc/exports文件

服务器端在文件/etc/exports中设定允许被访问的文件、目录以及访问的权限。设定格式如下:

欲分享出去的目录 客户端主机名称 或者IP (参数1,参数2)

可以设定的参数主要有以下这些:
rw:可读写的权限;
ro:只读的权限;
sync:资料同步写入存储器中。
async:资料会先暂时存放在内存中,不会直接写入硬盘。

例如可以编辑/etc/exports为:
/home/test  192.168.0.100(rw)
这里我们将用户程序所在目录进行输出,在/etc/exports中添加一行:
/opt/uClinux-dist/user/Myapp (rw) 192.168.0.0/255.255.255.0 (rw)

2.3使/etc/exports文件的修改生效


在启动了NFS之后又修改了/etc/exports,是不是还要重新启动nfs呢?这个时候我们就可以用exportfs命令来使改动立刻生效,该命令格式如下:
exportfs [-aruv]
-a :全部mount或者unmount /etc/exports中的内容
-r :重新mount /etc/exports中分享出来的目录
-u :umount 目录
-v :在 export 的時候,将详细的信息输出到屏幕上。
具体例子:
exportfs –rv
这个命令行要求全部重新输出一次。在每次修改了/etc/exports文件后都要运行一次该命令。

2.4启动NFS服务

现在就可以启动NFS服务了:
/etc/rc.d/init.d/nfs start
如果要停止NFS服务:
/etc/rc.d/init.d/nfs stop
重新启动(停止后再启动,在修改/etc/exports之后使用)命令:
/etc/rc.d/init.d/nfs restart

3.配置客户端

3.1配置内核

进入File Systems --->选项
选中:
[*] NFS file system support
[*] Provide NFSv3 client support

3.2配置用户选项

进入Network Applications ---> 选项
选中:
[*] portmap
进入BusyBox --->选项
选中:
[*] mount
[*] mount:support NFS mounts
完成以上配置后,即可编译产生映像文件。
参考光盘中《uClinux移植包在ARMSYS上的使用说明》一文中1.2.2节的方法,将产生的image.rom和romfs.img映像文件烧录到flash中。

4.NFS的应用

4.1启动portmap服务器

用串口线和网线连接好主机和开发板。在Linux系统下启动minicom,正确设置参数:115200 8N1,然后保存为缺省值。退出并重新启动minicom。开发板上电复位,功能项显示出来之后,输入‘7’,开发板自动启动uClinux。
启动信息成功显示后,输入:
/> portmap &

【portmap】
NFS本身没有提供信息传输的协议和功能,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了RPC(Remote Procedure Call远端程序呼叫)的功能。客户端通过网路传送RPC到远端电脑,请求服务。这里,portmap是一个server,主要功能是将TCP/IP 通讯协议中的端口号转换为RPC程序号,这样客户端才能完成RPC呼叫。

4.2挂载到主机

通过以下命令行,挂载到主机上:

mount -t nfs 192.168.253.1:/opt/uClinux-dist/user/Myapp /var/tmp


mount –t nfs –o rsize=1024,wsize=1024,timeo=3,udp 192.168.253.1:/opt/uClinux-dist/user/Myapp /var/tmp
命令行的参数是必要的,能够改善NFS下应用程序运行的速度。
当出现下一个/>时,mount成功。

4.3运行主机的应用程序

运行mount目录下的可执行程序,程序输入:
/>cd /var/tmp
/>./demo (注意前面要加上“./”)
Hello World!

这时也可能报告错误:Permission denied.
即主机拒绝操作。这时可以在主机上运行:
chmod 777 /opt/uClinux-dist/user/Myapp/demo
修改demo程序的操作权限。
然后在目标机端重新运行./demo即可。

你可以将portmap &和mount命令行添加到rc文件中,使开发板在启动时自动上mount主机,就不需要每次都敲入老长的命令行了。

◎有时无法mount的原因是主机端的防火墙阻拦。键入lokkit修改主机防火墙设置(关闭防火墙)即可。


对该文档内容有任何疑问,请通过发邮件到support@hzlitai.com.cn来同我们交流。



上一篇:没有了 下一篇:基于uClinux的开发应用程序-Helloworld和跑马灯程序