歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux+ARM環境配置——NFS

Linux+ARM環境配置——NFS

日期:2017/2/28 16:08:32   编辑:Linux教程

今天主要總結一下ARM+linux開發環境配置的nfs服務。

開發板 mini2440

PC系統 Windows

虛擬機系統 Fedora 9.0

配置nfs服務好幾天,今天終於配好了,但是發現我接下來不知道要干什麼了,nfs干嘛的,有什麼用,我也不知道,我只知道書上還有手冊上說用nfs開發很方便,可以通過網路遠程訪問。上網查了一下,還是不是很明白,不過把自己的一些見解和配置nfs過程的問題總結一下。

相關閱讀:

Linux+ARM環境配置——Bridged通信篇 http://www.linuxidc.com/Linux/2011-08/41369.htm
Linux+ARM學習開篇 http://www.linuxidc.com/Linux/2011-08/41371.htm

1.什麼是nfs?

nfs是network file system的縮寫,既網路文件系統,最大的優點就可以共享。然後更多的關於nfs的知識可以上網搜一下,比較多,而且寫的也全,我自己就不多說了。首先nfs服務先要配置nfs服務器,然後再把服務器上的目錄或者文件共享。涉及到我們的配置nfs有倆個方面,一個配置nfs服務器,二是掛載共享目錄。當然還可以利用nfs來啟動開發板,這個是另外一個知識點。這樣一來事情就比較明朗了,我們首先要在服務器上配置nfs,這個服務器當然是在fedora,我們這裡的客服端,就是要訪問共享目錄的一段是開發板的系統。有什麼好處?這樣一來原本需要放在目標板mini2440上的文件或者目錄,現在就可以放在服務器上,然後通過nfs共享目錄,目標板mini2440就可以通過共享來操作目錄了。這樣就擴大了目標板的資源,而且還非常方便的和服務器fedora進行交互。虛擬機上面的linux系統(也就是這裡的fedora)一般是我們用來進行交叉編譯開發的環境,這就需要我們和目標板mini2440進行交互,通信等等,這樣用nfs就非常方便了。

2.nfs服務器的配置

弄清楚整個nfs要干什麼才能知道自己要配置什麼,一開始我們可以照著用戶手冊上的一步步配置,但是總是會有問題出現,這時候就需要思考這個問題了。

2.1.配置前的准備工作

先檢查linux系統(我用的是fedora9.0)是否安裝了倆個軟件包 nfs-utils和portmap ,注意fedora9.0或者以後的版本好像都用rpcbind套件代替了portmap軟件包。

命令#rpm –q nfs-utils portmap

或者

[root@localhost root]#rpm –qa|grep portmap

//查看portmap軟件包是否安裝

[root@localhost root]#rpm –qa|grep nfs

//查看nfs軟件包是否安裝

如果沒有安裝會出現沒有安裝的信息

fedora9.0檢查rpcbind命令

rpm -qa |grep rpcbind
如果沒有安裝那個軟件包或者套件的話需要安裝,一般系統光盤裡面會有這些軟件包。

2.2.檢查服務器是否啟動

#service portmap status

#service rpcbind status (fedora)

#service nfs starus

如果沒有啟動,則用start代替上面的status來啟動服務如 #service portmap start 或者#/etc/init.d/nfs start

問題1:不知道要裝這幾個軟件包,一般裝系統的時候會裝上,但是我的沒有裝上,導致後面出現很多問題,而且解決問題也是走了很多的彎路。一定要注意檢查上面的服務,沒有要先裝上。

問題2:fedora用rpcbind代替了portmap。Portmap用來端口映射的,要不然會總是找不到端口服務

這裡有個RedHat安裝portmap的過程

[root@localhost root]#mount /dev/cdrom /mnt/cdrom

//如果沒有安裝,則將Red Hat Linux 9.0的第一張鏡像盤掛載到虛擬機上,兩個主安裝包都在第一張鏡像盤

[root@localhost RPMS]#cd /mnt/cdrom/RedHat/RPMS/

//切換到安裝包目錄,

[root@localhost RPMS]#ls –l portmap*

//顯示以portmap開頭安裝包的詳細信息

[root@localhost RPMS]#rpm –ivh portmap-4.0-54.i386.rpm

//安裝並用進度條顯示安裝過程

[root@localhost RPMS]#ls –l nfs-utils*

//同理,顯示nfs安裝包

[root@localhost RPMS]#rpm –ivh nfs-untils-1.0.1-2.9.i386.rpm

//安裝nfs

問題3:光盤鏡像中的文件要先掛載,上面redhat安裝就有。其實fedora9.0的rpcbind在package裡面,而且不能直接在光盤裡面安裝,我的光盤是只讀了,可以拷貝到其他路徑然後再安裝。

2.3.nfs配置文件

/etc/exports

這個很多地方都有說,安裝手冊上的配置就可以了,不過在fedora文件界面用gedit不能用,那就用vi/vim 就好了

更改exports文件內容後,可以用命令#exportfs –rv 可以讓新設置的“exports”文件內容生效。

2.4.關閉防火牆

nfs服務需要關閉防火牆,有多個方法可以用命令#lokkit 然後彈出圖形界面在選擇關閉防火牆,還有很多辦法,但是記得要關閉防火牆。要不然可能會出現找不到端口等錯誤。

2.4.檢查nfs服務是否啟動

#/etc/init.d/nfs start

這將啟動nfs 服務,可以輸入以下命令檢驗 nfs 該服務是否啟動。

# mount -t nfs localhost:/opt/FriendlyARM/mini2440/root_qtopia /mnt/

如果沒有出現錯誤信息,您將可以浏覽到 /mnt 目錄中的內容和

/opt/FriendlyARM/mini2440/root_qtopia是一致的。

使用這個命令可以停止 nfs 服務:

#/etc/init.d/nfs stop

這裡一個非常粗心的問題,在“:”和“/”後面加了一個空格,導致出現一大堆mount命令的提示信息。開始還不知道是什麼問題,上網搜了好多,還去該了好多配置文件。恩,這個以後可以注意,當提示很多關於命令怎麼用的信息時,肯定是命令輸入錯誤了。

3.nfs啟動開發板

其實nfs啟動開發板配置操作都不是很多,但是問題最多,而且出現問題了都是一大推的信息,都不知道從哪裡入手。這裡安裝手冊上面的做,而且最重要的就是那條長長的命令param set linux_cmd_line "console=ttySAC0 root=/dev/nfsnfsroot=192.168.0.18:/opt/FriendlyARM/mini2440/rootfs_qtopia_qt4ip=192.168.0.230:192.168.0.18:192.168.1.1:255.255.255.0:sbc2440.arm9.net:eth0:off"中的地址。

第一,還有有必要提一下輸入這條命令的環境,一是這條命令在超級終端中輸入,我用的是windows的超級終端,而連接好串口和網線(交叉網線)。第二開發板mini2440配置nandflash啟動,且在開機或者復位前,按下六個按鍵的任意一個,注意一定要在開機或者復位之前,按下按鍵不要松手直到進入vivi模式。

第二,第一次使用這條命令前一定要先啟動開發板然後與windows和linux(fedora)互相ping一下,要設置好IP地址,這個很重要。

第三,如果前面的都弄好了使用這條命令的時候出現卡死在企鵝界面上了,而且超級終端上出現等錯誤的很多情況都應該是IP地址的問題。

VFS: Unable to mount root fs via NFS, trying floppy

VFS: Unable to mount root fs on unknown-block

等出現很多提示信息的錯誤的時候都可以先檢查一下IP。

現在重點講一下上面的命令的IP,nfsnfsroot後面接的地址是linux服務器的地址(fedora9.0的IP),後面ip第一個是開發板mini2440的地址,第二個是linux服務器的IP地址,第三個是開發板的網關地址,第四個子網掩碼,應該都是這麼多吧,分別對應各個IP設置好。還有注意這條命令比較長最後復制,但是也要注意,最後放在txt文檔中弄成一行,不要有換行,換行的話容易變成幾條命令。

至於讓開發板和虛擬機和主機互相ping同有時可能也挺麻煩的,我另一篇文章中會專門講一下。

問題:交叉網線壞了,弄了我走了好多彎路,這個問題比較難發現,我是一次偶然的時候我動了一下網線然後ping同了,但是接下來我再怎麼ping都不同,我就懷疑網線有問題,換一根網線果然問題解決。

4.掛載共享目錄

這個掛載共享目錄的命令用戶手冊上有 #mount -t nfs -o nolock 192.168.0.18:/opt/FriendlyARM/mini2440/rootfs_qtopia_qt4 /mnt 這個命令的ip地址192.168.0.18是服務器的IP地址,我的是fedora系統的IP地址。

注意這個命令是在服務器的nfs服務啟動了,然後開發板的系統也啟動了,通過超級終端(我用的是windows下的超級終端,沒試過fedora下的)輸入的命令,可能超級終端顯示界面沒有顯示命令輸入,這時回車一下就好了。

掛載共享目錄中間也有一個IP地址,他是linux服務器的IP地址,這裡是fedora的IP地址。用這條命令之前要先檢查nfs服務是否開啟,二是要相互ping通。

到現在整個nfs服務已經配置完成,至於還有很多的文章提到很多地方配置或者還有很多的問題我自己也不清楚就沒寫了,但是我覺得首先很多一般的問題都可以照著這個步驟解決,我自己就是這樣解決的。網上文章很多,我是不懂的啦,我只是照著手冊配置好nfs而已,以後繼續學習。最後在總結一下一些注意的問題。

第一, 檢查是否安裝了必要的軟件包,fedora對應的不同,需要分別對待。

第二, 關閉防火牆。

第三, 命令比較長而去容易輸錯,尤其是像空格的,一定要注意。

第四, 網路要ping通,確保能夠互相連通

第五, 對應IP對應設置好

當然還有其他的問題,照著手冊配置的時候大概出現了這麼多問題吧,呵呵,解決了也挺不錯的啦。學習先從照著配置開始啦

Copyright © Linux教程網 All Rights Reserved