嵌入式linux的NFS开发环境的建立

原创 2007年09月13日 20:55:00
  
嵌入式linux的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,指定共享目录及其权限。
#vi /etc/exports
在该文件中添加:
/home/lqm(共享目录) 192.168.1.*(rw,sync,no_root_squash)
添加的内容表示允许IP范围在192.168.1.*的计算机以读写的权限来访问共享目录/home/lqm。
【注:参数说明如下:
     rw---读/写权限。如果设定只读权限,则设为ro。但是一般情况下,为了方便交互,要设置为rw。
     sync--数据同步写入内存和硬盘。
     no_root_squash--此参数用来要求服务器允许远程系统以它自己的root特权存取该目录。就是说,如果用户是root,那么他就对这个共享目录有root的权限。很明显,该参数授予了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:ALL
statd:ALL
***/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 启动
 1、cd /
 2、setup
 3、选择“Firewall configuration”,进入并更改设置为“No firewall”
 4、到上一层MENU选择System services去掉“ipchains”和“iptables”两项服务。
 5、选择NFS服务
 6、首先要启动portmapper(端口映射)服务,这是NFS本身需要的。
  service portmap restart (或/etc/init.d/portmap restart)
 7、然后启动NFS Server。此时NFS会激活守护进程,然后开始监听客户端的请求。
  service nfs restart (或/etc/init.d/nfs restart)
 可以首先在linux server上面进行NFS的回环测设。修改/etc/hosts.allow,把ip改为linux server的ip地址,然后在linux server上执行命令:
 mount -t nfs <your-server-ip>:/home/lqm /mnt
 ls /mnt
 如果NFS Server正常工作,应该在/mnt下面看到共享目录/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。
1.2.2  在target board的linux shell下,执行下列命令来进行NFS共享目录的挂载。
 mkdir /mnt/nfs
 mount -o nolock -t nfs <your-server-ip>:/home/lqm /mnt/nfs
 ls /mnt/nfs
 由于很多嵌入式设备的根文件系统中不带portmap,所以一般都使用-o nolock参数,即不使用NFS文件锁,这样就可以避免使用portmap。如果顺利,在/mnt/nfs下,就可以看到linux server的共享文件夹下的内容了,而且两个文件夹内的修改是同步的。
2 应用程序实例
编写一个简单的C程序test.c
-------------------------------------------
/*This is a test program.*/
int main(void)
{
int i;
for(i=0;i<10;i++)
     printf("Hello World %d times./n",i);
return 0;
}
-------------------------------------------
编译该程序:
#arm-linux-gcc -o test test.c
2.1 FTP方式
首先将test下载到target board。启动target board的linux,在超级终端中执行:
#cd /var
#ftp <your-server-ip>
ftp>bin                //以binary mode传输文件
ftp>get test
ftp>exit
然后修改文件属性:
#chmod +x test
#./test
这时可以查看结果了。
2.2 NFS方式
在target board端挂载linux server的共享输出目录,并且运行程序。
#mkdir /mnt/nfs
#mount -o nolock -t nfs <your-server-ip>:/home/lqm /mnt/nfs
#ls /mnt/nfs
这时应该可以显示linux server的共享目录的内容。然后执行:
#./test
3  总结
    这两种方式在应用程序不是特别复杂时区别不是很大,但是当开发程序比较复杂时,采用NFS方式显然效率要高得多。完成应用程序得开发,调试好后就可以下载到嵌入式目标板的flash文件系统,或者直接编译到嵌入式linux内核并且烧写到flash,从而最终成为一个独立的嵌入式应用程序。
 

Linux中创建NFS

测试系统的版本为RHEL6.4 服务端IP172.26.181.101 客户端IP172.26.181.98 一、服务端安装NFS 检查系统是否已安装NFS [root@rman-backup ...
  • wang_san_shi
  • wang_san_shi
  • 2014年12月10日 17:01
  • 916

linux开发板挂载NFS网络文件系统

1、前提:主机(服务器)已经安装并启动NFS服务 2、主机配置: 首先配置主机能够被挂接的文件夹:配置文件在  /eetc/exports vi /etc/exports 在后面添加内容 /work/...
  • Wind4study
  • Wind4study
  • 2016年11月27日 19:53
  • 1785

ubuntu 配置NFS并挂在共享目录到目标板详解

原文网址:http://blog.sina.com.cn/s/blog_6592a07a01014e5r.html 首先我们来了解一下NFS,NFS是Network File System的简写,即...
  • r_Jimy
  • r_Jimy
  • 2015年05月30日 11:13
  • 1150

建立ubuntu nfs 服务器

建立 nfs 服务器          在嵌入式 linux 开发的时候,常常需要使用 nfs 以方便程序的调试。使用 nfs,用户可以 将板子要用到的根文件系统放在主机目录下,开发板则通过以太...
  • sonbai
  • sonbai
  • 2013年02月26日 18:22
  • 1085

NFS环境的建立和使用

NFS 环境的建立和使用         如果您已经完全安装好了 Redhat  9.0 ,则 NFS 相关软件都已经缺省安装好了,请按照以 下步骤建立和配置 NFS 服务...
  • wocao1226
  • wocao1226
  • 2014年07月10日 16:21
  • 440

建立Ubuntu nfs服务器

建立Ubuntu nfs服务器   在嵌入式 linux 开发的时候,常常需要使用Ubuntu nfs服务器以方便程序的调试.使用 nfs,用户可以将板子要用到的根文件系统放在主机目录下,开发板则通...
  • wangwq_me
  • wangwq_me
  • 2013年01月15日 22:21
  • 326

Linux下NFS建立与配置

网络文件系统(NFS,Network File System)是一种将远程主机上的分区(目录)经网络挂载到本地系统的一种机制,通过对网络文件系统的支持,用户可以在本地系统上像操作本地分区一样来对远...
  • ben3726
  • ben3726
  • 2014年04月15日 22:49
  • 365

nfs的建立以及挂载

一、nfs作用 nfs也就是网络文件系统,在嵌入式开发中为什么需要nfs呢?主要是因为在开发过程中,根文件系统里面的内容要经常改动,那么就会频繁的调试,如果不使用nfs那么,一旦根文件系统内的文件有...
  • qq_32220231
  • qq_32220231
  • 2017年02月05日 21:09
  • 149

NFS:ubuntu虚拟机下建立tiny6410sdk的NFS

1、平台 VM版本:10.0 ubuntu版本:ubuntu-13.10-desktop-i386.iso 开发板liunux版本: 2、三台计算机网络搭建 在VM中设置...
  • pariote
  • pariote
  • 2014年12月13日 12:20
  • 221

Linux---centos安装配置并挂载NFS

服务端配置1. 安装nfs-utils和rpcbindyum install -y nfs-utils rpcbind2.设置开机启动服务chkconfig nfs onchkconfig rpcbi...
  • loyachen
  • loyachen
  • 2016年03月30日 02:01
  • 4829
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:嵌入式linux的NFS开发环境的建立
举报原因:
原因补充:

(最多只允许输入30个字)