1. 程式人生 > >NFS掛載檔案系統需要的核心和uboot的配置

NFS掛載檔案系統需要的核心和uboot的配置

自己用busybox做了一個檔案系統,然後建了個home目錄,在裡面開發應用程式,應用程式大概是這樣做的:

在Ubuntu虛擬機器中用交叉編譯器編譯寫好的應用程式,然後用arm-none-linux-gnueabi-readelf看應用程式執行需要哪些動態庫,把他們拷貝到自己做的檔案系統中的lib目錄中就可以。

中途,我這樣想過,把整個的交叉編譯器都放到自己的檔案系統中去,這樣在自己的開發板上編譯,再執行,也不需要拷貝什麼動態庫,這個突發的想象據說可以的,畢竟現在都是一二G的記憶體了嗎,但實際上需要的動態庫和動態連結載入器就那麼六七個檔案,還好。

但讓人不爽的就是:沒改一次應用,都要重新用fastboot燒錄一下檔案系統,來驗證,這樣既縮短了flash的使用壽命,也浪費時間,於是nfs網路檔案系統是一個不錯的選擇。以前玩過,但自己來做就又是一回事,經過好幾天的折騰,終於弄出來了,現把經驗總結如下:

要想以NFS方式掛載檔案系統,需要做以下幾個工作:

一、編譯核心,以支援使用NFS


在編譯核心的過程中,也出了點小問題,就是有個不需要的觸控式螢幕驅動程式有問題,編譯不過,於是修改了.config檔案,把那個GT9XX的觸控式螢幕的配置用#註釋掉了,再編譯的時候選擇n,就編譯出了我們需要的zImage。

二、U-boot中bootargs的設定

啟動開發板後迅速敲空格鍵使得開發板停留在u-boot命令列終端,然後設定bootargs引數:

setenv bootargs root=/dev/nfs console=ttySAC2,115200n8 init=/linuxrc nfsroot=192.168.1.20:/home/cxy/linux_AP/_install ip=192.168.1.12:192.168.1.20:192.168.1.1:255.255.255.0::eth0:on

saveenv

注意:ip設定中,第一個是目標板IP,第二個是nfs伺服器主機的IP,後面的是目標板的,但是要注意這裡目標板的要和主機的配置一樣,閘道器地址要一樣,我就在這裡忽視啦。

至於主機上nfs伺服器的安裝,我用的是Ubuntu 12.04.5的虛擬機器,我的nfs伺服器就安裝了兩個軟體:

sudo apt-get install nfs-kernel-server

sudo apt-get install nfs-common

用sudo /etc/init.d/nfs-kernel-server restart重啟nfs服務。

showmount -e檢視輸出的共享目錄