用于嵌入式开发的NFS环境搭建

         最近搞个嵌入式Linux项目,工程比较大,如果每次进行镜像烧录耗时太大,而且频繁烧录对NAND FLASH的损耗也比较大,于是想搭一个 nfs(Network File System, 网络文件系统)环境加速调试速度。sun搞的这个文件系统用起来还是相当不错的,远程共享目录和文件,利用RPC(Remote Procedure Call)协议进行数据的交互。闲白不扯那么多了,搭建这个环境网上其实有很多筒子们都有写过,这里记录下自己的搭建过程,算是经历过,既方便以后自己看,也给后来人一个参考。

        虽然文章名字叫嵌入式开发的nfs环境搭建,其实思路与桌面机的搭建是一样的,无非是配置服务器和客户端而已。服务器端我用的是装有ubuntu10.04.4 LTS的PC,客户端是基于嵌入式Linux的ARM9开发板。两部分环境搭建的步骤归纳如下;

1)、PC服务端:

         1、安装服务软件:nfs-kernel-server 和 portmap

         2、服务配置:共享目录配置,访问权限配置

         3、测试

2)、ARM客户端:

         1、嵌入式Linux系统定制,加入NFS支持的特性

         2、测试


1、PC服务端

       1)、安装服务软件:

sudo apt-get install nfs-kernel-server portmap  

如果想将PC同时作为客户端的话,再多执行一条命令:

sudo apt-get install nfs-common 
考虑到本机测试方便,最好安装下客户端。然后执行nfs server的启动命令:
sudo /etc/init.d/nfs-kernel-server start
若安装成功,ubuntu终端提示:Starting NFS kernel daemon


        2)、服务配置:

                  共享目录配置,打开文件/etc/exports,添加预共享的目录,我PC上的该文件添加之后内容如下:

    # /etc/exports: the access control list for filesystems which may be exported  
    #       to NFS clients.  See exports(5).  
    #  
    # Example for NFSv2 and NFSv3:  
    # /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)  
    #  
    # Example for NFSv4:  
    # /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)  
    # /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)  
    #  
    /home/helei/nfsroot *(rw,sync,no_root_squash)  

关于文件内容中的提到的NFSV2和NFSV3,添加共享目录的格式以及权限说明,可参考该博文。执行命令:

showmount -e  

可以看到本机共享出来的NFS目录。

                服务器访问权限配置,主要是设置/etc/hosts.deny和/etc/hosts.allow两个文件,关于这两个文件的作用和设置说明见博文


         3)、测试

                   执行命令:

mount 本机IP:共享目录的绝对路径 /mnt  

        然后执行命令:

ls -l /mnt  
如果成功,则可以看到NFS共享目录里的内容啦


2、ARM客户端

        1)、嵌入式Linux系统定制,加入NFS支持的特性

                  我的内核版本是2.6.35,其他的不多说,需要添加的NFS支持特性在Network File Systems下,添加特性如下:


上面将NFS的客户端、服务端以及将其作为根文件系统的特性都添加进来了。


        2)、测试

                  修改ARM开发板的uboot的启动参数,在其中添加如下内容:

    root=/dev/nfs rw nfsroot=PC服务器的IP:共享目录  
如我的设置就是:
    root=/dev/nfs rw nfsroot=192.168.1.62:/home/helei/nfsroot/  

这样启动系统后,ARM开发板的根文件系统就是远程PC服务器上的共享目录。如果调试程序的话,直接将相关库文件或应用程序拷贝到该目录下即可。


参考博客

http://linux.chinaunix.net/techdoc/system/2009/02/06/1060861.shtml

http://os.51cto.com/art/201001/176511.htm

http://blog.sina.com.cn/s/blog_55465b470100il34.html
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

何雷 — 智能汽车

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值