开发环境:S3C4510B+uCLinux-2.4.x+ubuntu7.10


建立的目的:可以直接在开发板上挂载开发主机上的文件系统,减少程序的烧写次数,提高程序开发速度。 NFS(Network File System, 网络文件系统)可以通过NFS把远程主机的目录挂载到本机,使得访问远程主机的目录就像访问本地目 录一样方便快捷。 NFS一般是实现linux系统之间实现共享.当然和unix之间也应该可以使用它来实现共享。但如果需要在linux和windows系统之间共 享, 就得使用samba了!, NFS是一个RPC服务程序,所以在使用它之前, 先要映射好端口——通过portmap设定. 比如: 某个NFS client发起NFS服务请求时, 它需要先得到一个端口(port).所以它先通过portmap得到port number.所以在启动NFS之前, 需要启动portmap服务!


安装NFS服务程序:


Ubuntu上默认是没有安装NFS服务器的,首先要安装NFS服务程序: sudo apt-get install nfs-kernel-server (安装nfs-kernel-server时,apt会自动安装nfs-common和portmap) 这样,宿主机就相当于NFS Server。 与NFS相关的几个文件, 命令 1、/etc/exports 对共享目录的管理都是在这个文件中实现的 2、/sbin/exportfs 维护NFS的资源共享.通过它可以使修改后的/etc/exports中的的共享目录生效关于这个命令的使用方法如下: exportfs [-aruv] -a :全部mount或者unmount /etc/exports中的内容 -r :重新mount /etc/exports中分享出来的目录 -u :umount 目录 -v :在 export 的?r候,将详细的信息输出到屏幕上。 3、/usr/sbin/showmount 用在 NFS Server 端。主要用查看 RPC共享的连接 4、/var/lib/nfs/xtab NFS的记录文档:通过它可以查看有哪些Client 连接到NFS主机的记录. 下面这几个文件并不直接负责NFS, 实际上它们负责所有的RPC 5、/etc/default/portmap 实际上, portmap负责映射所有的RPC服务端口 6、/etc/hosts.deny 设定拒绝portmap服务的主机 7、/etc/hosts.allow 设定允许portmap服务的主机


添加共享目录:


1.修改/etc/exports。/etc/exports是nfs服务器的核心配置文件。在/etc/exports中添加一个共享目录。 /var/nfs/ *(rw,sync) /var/nfs/是要共享的文件夹,*是表示所有用户都可以挂载这个共享文件夹。这里也可以替换成ip地址,网段(192.168.1.0/24) 或是主机名。(rw,sync)表示以读写方式挂载,并且远程主机同步,sync是NFS的默认选项。关于括号内的参数还有以下几种: rw:可读写的权限; ro:只读的权限; no_root_squash:登入到NFS主机的用户如果是ROOT用户,他就拥有ROOT的权限,此参数很不安全,建议不要使用。 root_squash:all_squash:不管登陆NFS主机的用户是什么都会被重新设定为nobody。 anonuid:将登入NFS主机的用户都设定成指定的user id,此ID必须存在于/etc/passwd中。 anongid:同 anonuid ,但是?成 group ID 就是了! sync:资料同步写入存储器中。 async:资料会先暂时存放在内存中,不会直接写入硬盘。insecure 允许从这台机器过来的非授权访问。 2 使用命令sudo exportfs -r 更新 3.重新启动portmap服务和nfs-kernel-server服务 命令分别为: /etc/init.d/portmap start /etc/init.d/nfs-kernel-server restart


uclinux端的配置:


在uclinux端在还需作一些配置才可以使用mount来挂载远程主机的NFS共享目录.配置修改如下: 1)配置内核 选中ramdisk驱动,加入ext2文件系统 Networking options --> (缺省) Network device support --> (缺省) File systems --> Network File Systems --> NFS file system support Provide NFSv3 client support 2)用户程序配置(ramdisk中) Network Applications --> portmap BusyBox --> mount(mount nfs support)


测试使用NFS:


测试NFS启动客户端uclinux输入命令: mount -t nfs 192.168.1.242:/var/nfs /mnt -o nolock 可以使用ls /mnt查看挂载过来的文件。在uclinux下挂载远程主机的共享文件主要是为了实现远程调试。在远程主机上进行交叉编译 之后,在uclinux下直接运行编译好的程序。


特别说明:


该配置可适用于几乎所有的嵌入式开发,这里只是以Uclinux为例来说明!!!