1. 程式人生 > >宿主機-開發板設定NFS共享目錄(1)

宿主機-開發板設定NFS共享目錄(1)

在嵌入式領域的開發中,常常要使用到交叉編譯的方法。因為開發板上的資源有限,所以需要利用宿主機上豐富的資源對程式碼進行編譯除錯,然後把確認沒有問題的可執行檔案放到開發板上執行。要做到宿主機和開發板進行資料傳輸,可以使用串列埠、ftp、nfs等方法,前兩種方法的速度比較慢並且傳輸過程容易出錯,因此一般利用nfs服務來進行資料共享。

同樣是以unbun為例子:

首先,確認你的宿主機安裝了nfs服務,如果沒有安裝,用這個命令:
sudo apt-get install nfs-kernel-server;

成功安裝後,開啟nfs服務:
sudo service nfs-kernel-server status;(普通使用者許可權會開啟失敗,所以記得提升許可權)
這裡寫圖片描述

開啟nfs服務之後,確認宿主機和開發板是屬於同一個網段,必須在同一網段的情況下,才能成功進行資料共享。

接著要建立一個用於資料共享的目錄,比如/home/share,把你想放到開發板上的檔案放在這個目錄下。

在開發板上,使用以下命令掛載:
mount -t nfs -o nolock 192.168.1.240:/home/share /tmp
192.168.1.240是宿主機的IP地址,後面緊跟著的/home/share就是剛才指定的宿主機指定的共享目錄,再後面的/tmp就是在開發板上的用來儲存/home/share這個目錄的內容的目錄,可以理解成宿主機上的/home/share的內容被拷貝到開發板上的/tmp這個資料夾。這樣你就可以在/tmp下看到/home/share這個目錄的內容,你可以把在宿主機上編譯好的可執行檔案放在/home/share,在開發板上成功掛載之後,這些檔案將在開發板上的/tmp目錄下出現。當然,這個/tmp目錄也是由使用者自己指定,只要你記住自己指定的是哪個目錄就行了。

當在開發板上mount,出現 failed, reason given by server: Permission denied,可以嘗試在宿主機/etc/exports下新增:
/home/share 10.219.91.* (rw,sync,no_root_squash)
其中/home/share是共享路徑,後面是IP地址,最後用*,表示允許該網段擁有括號裡的許可權