Chinaunix首页 | 论坛 | 博客
  • 博客访问: 36083
  • 博文数量: 17
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 0
  • 用 户 组: 普通用户
  • 注册时间: 2016-09-28 21:44
个人简介

因工作项目需要,决定以零linux基础开始做基于海思HI3520D的视频系统的开发,记录一下开发的过程。

文章分类

全部博文(17)

文章存档

2015年(17)

我的朋友

分类: LINUX

2015-01-25 20:46:57

        linux嵌入式开发还是很先进的,可以用NFS文件系统这种方式,我原本以为还需要仿真器下载呢,看来早out了,连TFTP都out了。
      搜了一下NFS文件系统的介绍。
    

     NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。

  NFS 的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。

  NFS在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。而这些传输协议用到这个RPC功能的。可以说NFS本身就是使用RPC的一个程序。或者说NFS也是一个RPC SERVER。所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。
  在应用程序开发环节,NFS方式比FTP方式执行的效率高,因为它不需要将linuxserver端的程序下载到嵌入式目标系统就可以调试。
   

1、执行命令:sudo apt-get install nfs-kernel-server ;

2、执行命令:mkdir /home/jacobxu/nfs-jacoxu 建立一个nfs服务的专有的文件夹;

3、建立好文件夹后,接着执行命令:sudo vi /etc/exports 配置nfs;

4、在文章的最后一行添加:/home/jacobxu/nfs-jacoxu *(rw,sync,no_root_squash,no_subtree_check)
/home/jacobxu/nfs-jacoxu *(rw,sync,no_root_squash,no_subtree_check)这一行的含义是:
/home/jacobxu/nfs-jacoxu:与nfs服务客户端共享的目录,这个路径必须和你前面设置的文件的路径一致!
*:允许所有的网段访问,也可以使用具体的IP
rw:挂接此目录的客户端对该共享目录具有读写权限
sync:资料同步写入内存和硬盘
no_root_squash:root用户具有对根目录的完全管理访问权限。
no_subtree_check:不检查父目录的权限。

5、修改完上述配置文件保存退出。
    更改玩exports文件之后需要执行一下 exportfs -rv指令重新加载exports文件。(这个很重要,很多攻略都忽略了

6、执行命令:sudo /etc/init.d/rpcbind restart 重启rpcbind(注意在ubuntu12.4版本以后好像就没有portmap服务了,取而代之的是rpcbind服务,很多攻略里说的都是portmap) 服务。nfs是一个RPC程序,使用它前,需要映射好端口,通过rpcbind 设定。

7、执行命令:sudo /etc/init.d/nfs-kernel-server restart 重启nfs服务。

    最后检查一下挂载的情况,执行一下showmount -e 就显示出你服务器挂载共享的目录了。
   至此服务器端的NFS设置就完成了。


   

阅读(608) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~