zedboard--網絡文件系統NFS的使用(二十五)

使用本開發板做開發,NFS 服務並不是必須的,因爲 NFS 主要是用於通過網絡遠程

共享文件,我們使用常見的ftp或者 SD卡,基本上也可以達到同樣的目的。但是他的方便性也是顯而易見的。

轉載請註明來自xzyfeixiang的專欄:

 http://blog.csdn.net/xzyiverson/article/details/15683379

一.在linux的pc機下配置網絡文件系統NFS服務

1、安裝Ubuntu nfs

Ubuntu上默認是沒有安裝Ubuntu nfs服務器的,因此我們首先安裝Ubuntu nfs服務器端:

 apt-get install nfs-kernel-server

2、配置/etc/exports  

Ubuntu nfs允許掛載的目錄及權限在文件/etc/exports中進行了定義例如,我們要將根目錄下的/nfs目錄共享出來,那麼我們需要在/etc/exports文件末尾添加如下一行:

/nfs *(rw,sync,no_root_squash)

其中:/nfs是要共享的目錄,*代表允許所有的網絡段訪問,rw是可讀寫權限,sync是資料同步寫入內存和硬盤,no_root_squash是Ubuntu nfs客戶端分享目錄使用者的權限,如果客戶端使用的是root用戶,那麼對於該共享目錄而言,該客戶端就具有root權限,記住要mkdir  /nfs並在這個目錄下新建一些文件幫助我們測試是否成功。

本人的配置如下:

/nfs *(rw,sync,no_subtree_check)


注意:在使用之前請將掛載的目錄權限全部設置成777即執行 chmod777 /nfs。另外請把/rootfs替換成你希望掛載的目錄

3、關閉Ubuntu的防火牆

 ufw disable   防火牆在系統啓動時自動禁用  (啓用就是enable)

 

4、Ubuntu nfs重啓服務  

$sudo service portmap restart
$sudo service nfs-kernel-server restart


5、測試Ubuntu nfs

此時可以運行以下命令來顯示一下共享出來的目錄:
$showmount -e
或者可以使用以下命令把它掛載在本地磁盤上,例如將/rootfs掛載到/mnt下:
$ sudo mount -t nfs localhost:/nfs  /mnt



查看後可以使用以下命令卸載:
 umount /mnt


二:在開發板上掛接使用網絡文件系統NFS,之前的arm開發板的內核是支持NFS的,只要開啓

#mount –t nfs –o nolock 192.168.1.111: :/rootfs /mnt,但是zedboard提供的demo系統的內核並沒有開啓NFS的支持具體可以通過/proc/filesystems中有沒有nfs相關的內容,執行cat  /proc/filesystems | grep nfs,沒有找到nfs相關的內容證明內核沒有開啓對nfs的支持,接下來我們就需要手動配置一下內核,開啓nfs支持:

內核下載地址https://github.com/Digilent/linux-digilent/releases,3.3版本的。

1:解壓源碼:

 tar -xvzf linux-digilent-3.3.0-digilent-12.07-zed-beta.tar.gz

2.配置內核源碼      

進入解壓的目錄,在arch/arm/configs/目錄下有這個配置文件  digilent_zed_defconfig (不用我們設置,執行下面的命令他會自己尋找。)

make ARCH=arm digilent_zed_defconfig  


必須在這個文件的基礎上進行修改,

make menuconfig    報錯


這是因爲make menuconfig是要調用libncurses5-dev這個庫的,安裝這個庫,

apt-get install libncurses5-dev  完成後,make menuconfig




你可以看下.config,他是沒有關於NFS的信息的,就是沒有開啓。

退出保存後  vim .config ,查找CONFIG_NFS可以看到,這個就是剛剛新增加的。

 

Make menuconfig所做的修改會保存在.config文件中。

編譯成功後,在arch/arm/boot下找到zImge,有2.72m,果然是大了很多。拷貝到sd卡,啓動系統,執行cat /proc/filesystems |grep nfs,   可以看到:


mount -t nfs 202.38.214.215:/nfs /mnt -oproto=tcp -o nolock


解掛載的時候輸入

umount  /mnt

注意,這裏pc機是nfs服務的提供者,zedboard上的nfs是客戶端,所以是把pc機上的目錄掛載到zedboard上的linux文件系統中的目錄。

上面的命令就是電腦的ip是202.38.214.215 提供的掛載路徑是/nfs,我們需要把電腦上的路徑掛載到板子上的/mnt目錄下。於是,在/mnt下可以看到掛載路徑的東西了。

本次主要參考tiny6410的手冊和openhw12的一些博客。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章