TQ2416 开发板与虚拟机之间搭建NFS
在实际的开发中,当我们在开发板上搭建好ARM+LINUX的开发环境(uboot,linux内核,文件系统都裁剪幷移植到开发板上),专注于应用程序的开发的时候,我们要做的事情是:在虚拟机上,利用交叉编译把我们的应用程序编译好,然后移植到开发板跑起来。本文主要介绍一下利用NFS将虚拟机上交叉编译好的应用程序下载到开发板上的方法
搭建的整体思路
#1、在虚拟机上安装nfs软件,将其配置好,并在虚拟机上测试NFS的功能,确保NFS安装配置OK。
#2、在开发板的调试终端上用mount命令挂载NFS
#3、用cp命令将虚拟机的上编译好的应用程序copy到开发板的路径里
搭建步骤
声明:
#1、本文的操作环境VMwarePlayer+Ubuntu 12.04LTS
#2、本文中linux指令描述为:@cp表示为在虚拟机的终端里输入cp指令
1在虚拟机上安装NFS
1.1安装NFS
@sudo apt-get install nfs-kernel-server
1.2配置NFS共享参数
@vi/etc/exports
然后编辑NFS服务的配置文件,在exports里面添加一句话:/opt/EmbedSky/root_nfs *(rw,sync,no_root_squash)
具体含义为:
---->/opt/EmbedSky/root_nfs:NFS共享目录
---->*:所有的客户机都可以挂载此目录
---->rw:挂载此目录的客户机对此目录的操作权限为:rw(读写)
---->sync:所有数据在请求时写入共享
---->no_root_squash:允许挂载此目录的客户机享有该主机的root身份
1.3设置NFS共享目录属性
对于1.2中的共享的目录需要使能他的操作属性,以便于写入读取
@sudo chmod777 /opt/EmbedSky/root_nfs
1.4重启NFS
@sudo/etc/init.d/nfs-kernel-server restart
NFS重启ok的画面
2开发板上挂载NFS
192.168.1.101为主机IP。
挂载命令:
@mount-t nfs -o intr,nolock,rsize=1024,wsize=1024 192.168.1.101:/主机nfs目录 /挂载路径
如果采用普通的挂载命令:@mount-t nfs -o nolock,192.168.1.101:/主机nfs目录 /挂载路径。当从主机上拷贝的文件比较大时,在开发板的调试终端上会出现:nfs:serveris not responding,still trying。
原因:传送的数据太大,出现数据包丢失现象。NFS的默认传输协议是UDP,而PC机与嵌入式系统通过UPD交互时就会出现严重的网卡丢包现象,可用的解决方案是:在客户端改用TCP协议,使用下面的命令,
@mount -t nfs -o intr,nolock,rsize=1024,wsize=1024 192.168.1.101:/主机nfs目录 /挂载路径
3文件复制
在开发板的挂载路径下,就可以看到NFS共享的文件,可以采用cp命令进行文件的copy