用于嵌入式开发的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)、安装服务软件:
如果想将PC同时作为客户端的话,再多执行一条命令:
考虑到本机测试方便,最好安装下客户端。然后执行nfs server的启动命令:
若安装成功,ubuntu终端提示:Starting NFS kernel daemon
2)、服务配置:
共享目录配置,打开文件/etc/exports,添加预共享的目录,我PC上的该文件添加之后内容如下:
关于文件内容中的提到的NFSV2和NFSV3,添加共享目录的格式以及权限说明,可参考该博文。执行命令:
可以看到本机共享出来的NFS目录。
服务器访问权限配置,主要是设置/etc/hosts.deny和/etc/hosts.allow两个文件,关于这两个文件的作用和设置说明见博文
3)、测试
执行命令:
然后执行命令:
2、ARM客户端
1)、嵌入式Linux系统定制,加入NFS支持的特性
我的内核版本是2.6.35,其他的不多说,需要添加的NFS支持特性在Network File Systems下,添加特性如下:
![](http://img.my.csdn.net/uploads/201301/17/1358428851_6210.png)
上面将NFS的客户端、服务端以及将其作为根文件系统的特性都添加进来了。
2)、测试
修改ARM开发板的uboot的启动参数,在其中添加如下内容:
如我的设置就是:
这样启动系统后,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
虽然文章名字叫嵌入式开发的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下,添加特性如下:
![](http://img.my.csdn.net/uploads/201301/17/1358428851_6210.png)
上面将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
相关文章推荐
- 使用Vagrant在Windows平台搭建嵌入式Linux开发环境(3)nfs服务器搭建
- 基于NFS的嵌入式linux设备驱动程序开发环境搭建
- 为嵌入式linux搭建开发环境(ubuntu16.04 nfs + samba)
- 嵌入式linux开发环境搭建(二)——NFS服务器的搭建
- 嵌入式linux开发——开发环境搭建(NFS共享, 交叉编译)
- 嵌入式软件开发培训笔记——ARM架构Linux系统下交叉编译环境搭建、NFS、TFTP服务配置及Nandflash的读写
- 嵌入式开发之工具--nfs环境搭建
- 嵌入式开发中NFS调试环境搭建-V0.2
- 关于嵌入式linux开发环境搭建-TFTP,SAMBA,NFS服务器的搭建
- [3]_嵌入式开发环境搭建1_在ubuntu16.04.3 安装配置nfs 和 tftp服务器
- 嵌入式linux开发环境搭建(一)——双网卡的网络设置
- 嵌入式之Fedora14+Tiny6410上Qt4.7开发环境的搭建
- Linux 下 Qt 4.6.0 嵌入式开发环境的搭建、移植
- 关于一步一步搭建嵌入式Ubuntu 开发环境
- 嵌入式开发环境搭建
- 嵌入式开发环境的搭建
- Ubuntu下 嵌入式开发环境的搭建:
- QT学习笔记----搭建Qt4.7.3嵌入式开发环境
- linux下嵌入式QT开发环境的搭建
- Unbuntu下搭建嵌入式QT开发环境(Tiny210)