《嵌入式linux的NFS开发环境的建立及配置实例》由会员分享,可在线阅读,更多相关《嵌入式linux的NFS开发环境的建立及配置实例(11页珍藏版)》请在金锄头文库上搜索。
1、NFS文件系统制作 在应用程序开发环节,NFS方式比ftp方式 的执行效率要高,因为它不需要将linux server端的程序下载到嵌入式目标系统就可 以调试。下面先将NFS建立的详细过程写 一下,然后举一个简单的应用程序开发实 例来比较ftp方式和nfs方式的不同。 1 建立NFS开发环境 嵌入式linux的NFS开发环境包含着两个方 面: 一是linux server端的NFS Server支持; 二是target board的NFS Client支持。 1.1 linux server端 1.1.1 以root的身份登录,编译共享目录的 配置文件exports,指定共享目录及其权限 。
2、vi /etc/exports 在该文件中添加: /home/lqm(共享目录) 192.168.1.*(rw,sync,no_root_squash) 添加的内容表示允许IP范围在192.168.1.* 的计算机以读写的权限来访问共享目录 /home/lqm。1.1 linux server端 【注:参数说明如下:rw读/写权限。如果设定只读权限,则设为ro。但 是一般情况下,为了方便交互,要设置为rw。sync数据同步写入内存和硬盘。no_root_squash此参数用来要求服务器允许远程系 统以它自己的root特权存取该目录。就是说,如果用户是 root,那么他就对这个共享 目录有roo
3、t的权限。很明显, 该参数授予了target board很大的权利。安全性是首先要 考虑的,可以采取一定的保护机制,在下面会讲一下保护 机制。如果使用默认的root_squash,target board自己的 根文件系统可能有很多无法写入,所以运行会受到极大的 限制。在安全性有所保障的前提下,推荐使用 no_root_squash参数。】 1.1.2 起用保护机制 可以通过设定/etc/hosts.deny和 /etc/hosts.allow文件来限制网络服务的存取 权限。 */etc/hosts.deny* portmap:ALL lockd:ALL mountd:ALL rquotad:
4、ALL statd:ALL1.1.2 起用保护机制 */etc/hosts.allow* portmap:192.168.1.100 lockd:192.168.1.100 mountd:192.168.1.100 rquotad:192.168.1.100 statd:192.168.1.100 同时使用这两个文件就会使得只有ip为 192.168.1.100的机器使用NFS服务。你的 target board的ip地址设定为192.168.1.100 ,这样就可以了。 1.1.3 启动 首先要启动portmapper(端口映射)服务,这是NFS本身 需要的。 /etc/init.d/por
5、tmap start 然后启动NFS Server。此时NFS会激活守护进程,然后开 始监听客户端的请求。 /etc/init.d/nfs start NFS Server启动后,还要检查一下linux server的iptables 等,确定没有屏蔽NFS使用的端口和允许通信的主机。 可以首先在linux server上面进行NFS的回环测设。修改 /etc/hosts.allow,把ip改为linux server的ip地址,然后在 linux server上执行命令: mount -t nfs :/home/lqm /mnt ls /mnt 如果NFS Server正常工作,应该在/mn
6、t下面看到共享目录 /home/lqm的内容。 1.2 target board端的client 1.2.1 嵌入式linux内核应该支持NFS客户端 。 内核配置时,选择如下: File system Network File Systems 选中NFS System support和Provide NFSvs client support,然后保存退出,重新编译内 核,将生成的zImage重新下载到target board。 2.2 挂接NFS文件系统 在target board的linux shell下,执行下列命 令来进行NFS共享目录的挂载。 mkdir /mnt/nfs mount -o nolock -t nfs :/home/lqm /mnt/nfs ls /mnt/nfs 2.2 挂接NFS文件系统 由于很多嵌入式设备的根文件系统中不带 portmap,所以一般都使用-o nolock参数, 即不使用NFS文件锁,这样就可以避免使 用portmap。如果顺利,在/mnt/nfs下,就 可以看到linux server的共享文件夹下的内 容了,而且两个文件夹内的修改是同步的 。