1. 程式人生 > >開發板從nfs檔案系統啟動

開發板從nfs檔案系統啟動

轉載:http://blog.csdn.net/zhaole20094463/article/details/7551475

我們再進行嵌入式開發的時候,總是會想要找到跟簡單跟快捷的開發方式。

那麼nfs啟動根檔案系統就是一種非常快捷方式。

nfs是什麼呢?

Network file  system知道這個全稱我們大概就明白它是什麼東西了。對它有一個直觀的印象了。

網路檔案系統(Network File System,NFS ),是在 Unix 系統間實現磁碟檔案共享的一種方法,它支援應用程式在客戶端通過網路存取位於伺服器磁碟中資料的一種檔案系統協議。最早於1984年由sun公司開發。功能是透過網路

讓不同的機器、不同的作業系統能夠彼此分享個別的資料。

通過nfs啟動根檔案系統有什麼好處呢?

回答這個問題,我們先來看看我們開發的模式是什麼呢?

因為開發板上條件有限,所以不可能進行程式碼的編輯和修改,只能進行應用程式的驗證。

而程式碼的編寫,應用程式的開發卻是在主機上進行的。我們開發的應用程式呢,都是放在根檔案系統中。

可以說根檔案系統是應用程式執行的載體。這樣我們就能想到在我們的開發過程中一個繁瑣的工作就是不斷的

把我們修改後的檔案系統下載到開發板中去了。

儘管,三星公司有一個比較好的DNW軟體(通過U口下載)使得下載速度有了很大的提高(比起串列埠的115200),

但是相對於10M/S的網路來說還是有一定差距的。

所以便有了這種通過網路啟動檔案系統的開發模式。從上面的敘述不難總結出nfs啟動檔案系統的優點便是省時

簡單。

然後,我們來看看怎麼通過nfs啟動根檔案系統

關於他的設定,主要分成兩大部分

第一:主機的設定,主機必須支援nfs,同時防火牆需要關閉

第二:開發板bootlaoder,kernel 的設定。

1.先安裝nfs

apt-get install  nfs*

或者

yum install   nfs*

2.設定共享目錄

 修改主機上的/etc/exports檔案的內容,新增一行, /home/share *(rw,sync,no_root_squash) 注意在:root和*之間有空格。
這裡/home/bz/nfsd代表的要共享輸出的root檔案系統的共享目錄: *代表所有的客戶機都可以掛載這個檔案系統;rw代表客戶機可以讀寫許可來掛接它們的根檔案系統;no_root_squash選項允許客戶機以主機上的root身份掛接根檔案系統。 關閉防火牆 service iptables  stop(fedora中) 3.編譯核心設定核心啟動引數

在核心原始碼目錄中

執行make menuconfig

進入file system

            -》Network file systems

                  -》NFS  client  Support

                  -》Root  file  system on NFS 

進入bootoption 

選項(也可以修改.config)

新增如下引數

console=ttySroot=/dev/nfs nfsroot=192.168.99.51:/home/bz/nfsd ip=192.168.99.52:192.168.99.51:192.168.99.1:255.255.255.0:matrix4.arm9.net:eth0:off

其中那個IP引數的意思是:板子的地址:主機的地址:閘道器:子網掩碼:主機名:網絡卡:off

主機名意義不大,重要的是板子的ip地址,和主機的地址一定要在同一網段。

接著在bootloader中設定ip地址為以上的板子ip。

4啟動開發板,將網線連線好。

這樣你就可以通過NFS啟動根檔案系統了。