建立NFS开发环境
嵌入式linux的NFS开发环境包含着两个方面:一是linux server端的NFS Server支持;二是target board的NFS Client支持。
1.1 linux server端
1.1.1 以root的身份登录,编译共享目录的配置文件exports,指定共享目录及其权限。
#vi /etc/exports
在该文件中添加:
/armsys2440/root(共享目录:依据armsys2440-linux2.26.12开发文档) 192.168.253.*(rw,sync,no_root_squash)
添加的内容表示允许IP范围在192.168.253.*的计算机以读写的权限来访问共享目录/armsys2440/root。
【注:参数说明如下:
rw---读/写权限。如果设定只读权限,则设为ro。但是一般情况下,为了方便交互,要设置为rw。
sync--数据同步写入内存和硬盘。
no_root_squash--此参数用来要求服务器允许远程系统以它自己的root特权存取该目录。就是说,如果用户是root,那
么他就对这个共享目录有root的权限。很明显,该参数授予了target board很大的权利。安全性是首先要考虑的,可以采
取一定的保护机制,在下面会讲一下保护机制。如果使用默认的root_squash,target board自己的根文件系统可能有很多
无法写入,所以运行会受到极大的限制。在安全性有所保障的前提下,推荐使用no_root_squash参数。】
1.1.2 将光盘中linux2.6/rootfilesystem/目录中的“root_armsys2440_yaffs.tgz”压缩文件拷贝到
“/armsys2440/root”下,然后再解压缩(以nfs方式启动时要用到文件系统)。
1.1.3 起用保护机制
可以通过设定/etc/hosts.deny和/etc/hosts.allow文件来限制网络服务的存取权限。
***/etc/hosts.deny***
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL
***/etc/hosts.allow***
portmap:192.168.253.9
lockd:192.168.253.9
mountd:192.168.253.9
rquotad:192.168.253.9
statd:192.168.253.9
同时使用这两个文件就会使得只有ip为192.168.253.9的机器使用NFS服务。你的target board的ip地址设定为
192.168.253.9,这样就可以了。
1.1.4 启动
首先要启动portmapper(端口映射)服务,这是NFS本身需要的。
#/etc/init.d/portmap start
然后启动NFS Server。此时NFS会激活守护进程,然后开始监听客户端的请求。
#/etc/init.d/nfs start
NFS Server启动后,还要检查一下linux server的iptables等,确定没有屏蔽NFS使用的端口和允许通信的主机。
1.2target board的NFS Client
新版本的UBOOT都配有nfs Client,而且在做UBOOT的时候会把它配置好。