1. 程式人生 > >ZYNQ開發板的NFS檔案系統安裝

ZYNQ開發板的NFS檔案系統安裝

這篇部落格主要講解NFS的安裝和開發板與Linux虛擬機器如何mount成功。重點講解如何mount成功。

NFS 檔案系統的原理: 通過網路將 PC ubuntu Linux NFS server 上的檔案,mount到開發板上,使得開發板操作這些檔案,就像是操作使用本地檔案一樣。簡單一點說,就是在 PC ubuntu Linux server 的NFS 資料夾下,編譯一個 Linux app 如 hello.c -> hello,在開發板上也能看的見 hello 檔案,並能執行這個檔案。 這樣我們在編寫驅動的時候就不需要老是插拔 SD 卡了。

1.    nfs server安裝

在 Ubuntu 命令列裡輸入命令"sudo apt-get install nfs-kernel-server", 提示"Y/N"的時候輸入"Y" ,然後等待安裝完成。

2.    建立 nfs_server 資料夾 

  1. 在 Downloads(可以隨意) 目錄下右鍵開啟命令視窗,然後輸入"mkdir nfs_server"建立新的資料夾(也可以輸入"sudo su", 再輸入登入密碼後再"mkdir nfs_server",這樣得到的資料夾需要root許可權才能更改,保證了檔案的安全性,但檔案操作不方便)。
  2. 輸入命令"sudo vim /etc/exports", 用 vim 開啟 exports 檔案。 

按"i" 鍵轉到插入模式,輸入"/home/alinx/Downloads/nfs_server*(rw,sync,no_root_squash)" ,其中/home/alinx/Downloads/nfs_server自己的安裝路徑。


按Esc退出插入模式,輸入:wq(注意,是“:wq”)儲存推出 vim。

3.    啟動 nfs server 

輸入命令 "/etc/init.d/nfs-kernel-server start" ,啟動nfs server

輸入"showmount -e"命令可以檢視 nfs server 路徑 

4.    本機上測試 nfs server 

/home/alinx/Downloads/nfs_server 下面隨便建立個檔案(輸入"cd /nfs_server"命令進入nfs_server 資料夾,然後輸入命令"sudo touch test_nfs.dat")

輸入命令"sudo mount -t nfs localhost:/home/alinx/Downloads/nfs_server /mnt", 把nfs_server 目錄下的內容同步到/mnt 目錄下。 

/mnt 下面也有 test_nfs.dat,nfs server 安裝成功 

最後取消 umount, 輸入命令"sudo umount /mnt"。

5.     開發板 nfs server 同步(重點)

進入虛擬機器,選中Ubuntu 64位->設定->網路介面卡,然後配置如下

進入Ubuntu系統,如果介面卡是灰色的。右鍵點選連線,然後找到網路連線,點選編輯連線

點選編輯

方法改為手動,將地址改為自己設定的地址然後儲存。

到這裡,完成了ZYNQ與虛擬機器Ubuntu的連線,接下來雙方相互ping一下,確保通訊無誤即可進行mount了(注意關閉防火牆!!!)。

使用mount -t nfs 192.169.1.129:/home/alinx/Downloads/nfs_server /mnt 命令是把虛擬機器上的Ubuntu 作業系統中的
home/alinx/Downloads/nfs_server 同步到開収板上的/mnt 目錄下 。如果命令過長需要用反斜槓加回車符來換行。換行符我一直沒用成,每次手動全部輸入,貼一張假圖吧。

如果出現server denied...,...bad file description,請手動重新輸入命令,因為複製的命令很容易少了幾個字母之類的。如果mount的時候出現...nolock...之類問題,採用命令
mount -t nfs -o nolock 192.169.1.129:/home/alinx/Downloads/nfs_server /mnt 。

補一張後期的圖

這裡講得是橋接的方式,我們也可以選擇NAT或者特定虛擬網,這樣使用需要先將NAT虛擬網路或者特定虛擬網路與win系統下的乙太網橋接才能正常工作,過程複雜很多,這裡不做介紹了。無聊時候寫寫自己的經驗小總結,有不對的地方,還請大俠們指正。