您的位置:首页 > 其它

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

2013-01-17 21:37 323 查看
最近搞个嵌入式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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: