Android培訓班(6) – Android移動開發技術文章_手機開發 Android移動開發教學課程

網絡文件系統(NFS,Network File System)是一種將遠程主機上的分區(目錄)經網絡掛載到本地系統的一種機制,通過對網絡文件系統的支持,用戶可以在本地系統上像操作本地分區一樣來對遠程主機的共享分區(目錄)進行操作。


 


    在嵌入式Linux 的開發過程中,開發者需要在Linux 服務器上進行所有的軟件開發,交叉編譯後,通用FTP方式將可執行文件下載到嵌入式系統運行,但這種方式不但效率低下,且無法實現在線的調試。因此,可以通過建立NFS,把Linux 服務器上的特定分區共享到待調試的嵌入式目標系統上,就可以直接在嵌入式目標系統上操作Linux 服務器,同時可以在線對程序進行調試和修改,大大的方便瞭軟件的開發。因此,NFS 的是嵌入式Linux 開發的一個重要的組成部分,本節將詳細說明如何配置嵌入式Linux 的NFS 開發環境。


 


嵌入式Linux 的NFS 開發環境的實現包括兩個方面:一是Linux 服務器端的NFS 服務器支持;二是嵌入式目標系統的NFS 客戶端的支持。因此,NFS 開發環境的建立需要配置Linux 服務器端和嵌入式目標系統端。


 


一、Linux 服務器端NFS 服務器的配置


   以root 身份登陸Linux 服務器,編輯/etc 目錄下的共享目錄配置文件exports,指定共享目錄及權限等。


    執行如下命令編輯文件/etc/exports:


 


   #gedit /etc/exports


或者使用


   #sudo gedit /etc/exports


 


  在該文件裡添加如下內容:


 


   /nfsboot *(rw,sync,no_root_squash)


 


   然後保存退出。


 


   添加的內容表示:允許ip 地址范圍是所有IP地址的計算機以讀寫的權限來訪問/nfsboot 目錄。


 


   /nfsboot 也稱為服務器輸出共享目錄。


 


   括號內的參數意義描述如下:


 


   rw:讀/寫權限,隻讀權限的參數為ro;


 


   sync:數據同步寫入內存和硬盤,也可以使用async,此時數據會先暫存於內存中,而不立即寫入硬盤。


 


   no_root_squash:NFS 服務器共享目錄用戶的屬性,如果用戶是 root,那麼對於這個共享目錄來說就具有 root 的權限。


 


   接著執行如下命令,啟動端口映射:


 


   # /etc/rc.d/init.d/portmap start


 


   最後執行如下命令啟動NFS 服務,此時NFS 會激活守護進程,然後就開始監聽 Client 端的請求:


 


   # /etc/rc.d/init.d/NFS start


 


   用戶也可以重新啟動Linux 服務器,自動啟動NFS 服務。


 


   在NFS 服務器啟動後,還需要檢查Linux 服務器的防火墻等設置(一般需要關閉防火墻服務),確保沒有屏蔽掉NFS 使用的端口和允許通信的主機,主要是檢查Linux 服務器iptables,ipchains 等選項的設置,以及/etc/hosts.deny,/etc/hosts.allow 文件。


 


   我們首先在Linux 服務器上進行NFS 服務器的回環測試,驗證共享目錄是否能夠被訪問。在Linux 服務器上運行如下命令:


 


   # mount –t NFS 192.168.1.20:/home/work /mnt


 


   # ls /mnt


 


   命令將Linux 服務器的NFS 輸出共享目錄掛載到/mnt 目錄下,因此,如果NFS 正常工作,應該能夠在/mnt 目錄看到/home/work 共享目錄中的內容。


二、Linux內核裡添加NFS支持


三、在UBOOT裡設置啟動參數如下:


setenv bootargs noinitrd root=/dev/nfs console=ttySAC0 init=/init nfsroot=192.168.1.103:/nfsboot ip=192.168.1.20:192.168.1.103:192.168.1.1:255.255.255.0::eth0:on


 


通過上面的參數設置,就可避免去燒寫FLASH的過程,直接把電腦主機裡的目錄當作文件系統,這樣可以方便修改測試任何程序,當完全調試完成後,就可以燒寫到FLASH裡加載並運行

發佈留言