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