天天看點

nfs挂載根檔案系統用NFS方式挂載根檔案系統

用NFS方式挂載根檔案系統

由于原來的核心是用ATBOOT的方式下載下傳的,不知道怎麼傳遞參數(好像不能,網上查的nfs方式都是用U-boot的方式挂載的),是以決定用u-boot重新下載下傳核心。

1.下載下傳u-boot和核心

1.1編譯核心

1.1.1由于闆子CD光牒自帶的核心觸摸屏驅動不是配套的,要修改驅動的一個宏定義

LCD driver info */

//#define TFT3

#define TFT_NEW3 //這是闆子配套觸摸屏的參數

//#define vga800480 //這是預設的參數,需要注釋掉

//#define vga1024

//#define vga800600

1.1.2修改參數

在arch/arm/mach-s3c2410/common-smdk.c 裡的

static struct s3c2410_platform_nand smdk_nand_info = {

.tacls = 10,

.twrph0 = 30,

.twrph1 = 10,

... 

原來是20,60,20,但這個參數會找不到nand flash,需要修改為上面幾個。否則得到的uImage 檔案會下載下傳運作不了。

1.1.3修改交叉編譯器

vi Makefile 找到 CROSS_COMPILE ?= arm-linux

這一行,将arm-linux-修改為交叉編譯器的路徑(Linux系統上交叉編譯工具的路徑為下)

/usr/local/arm/3.4.1/bin/arm-linux-

輸入:wq 儲存并退出。

1.1.4編譯

make clean

make uImage

(在執行指令之前要執行make menuconfig,進行配置核心:

networking options-》IP:kernel level autoconfiguralion項

選中file systems-》network file systems-》下的root file system on nfs和nfs file system support

由于我解壓的是闆子自帶的核心,發現這些都已經選中了,是以直接編譯即可,執行make uImage後,最後會提示一個錯誤,說不能建立某個檔案,但我發現uImage已經生成了,就沒理會錯誤,直接拿來用了)

1.2下載下傳u-boot和核心

1.2.1下載下傳u-boot

1.2.1.1  SJF2440 環境設定(見前面部分圖文介紹)

下載下傳u-boot用闆子自帶工具SJF2440.exe,安裝其驅動,具體見說明文檔

1.2.1.2  燒寫u-boot.bin 到Nand flash 中

建立D:/atboot,把sjf2440.exe 和u-boot.bin複制到檔案夾内

(sjf2440.exe 和u-boot.bin 必須在同一目錄下)

具體見說明文檔

1.2.1.3  利用u-boot下載下傳uImage和檔案系統到arm闆上

由于闆子自帶是用autoflash.img自動下載下傳uImage和檔案系統到arm闆上,現在我還不太明白具體的位址,是以就自動把檔案系統也下載下傳上去了,但是這個檔案系統不用,下面将用nfs挂載linux主機上的檔案系統rootfs檔案

具體見說明文檔

2. 用nfs挂載根檔案系統

2.1  在虛拟機Linux上建立檔案夾

/home/water/rootfs

把闆子自帶的系統直接拷進rootfs檔案夾内

2.2linux主機 配置nfs 檔案系統

修改/etc/exports 檔案,格式為共享目錄開發闆ip 位址(權限設定):cat <<EOM >/etc/exports

/home/water/rootfs *(rw,sync,insecure,no_root_squash)

重新開機nfs 伺服器:

/etc/init.d/nfs restart

2.3  IP設定

XP:192.168.1.100

linux:192.168.1.128

arm:192.168.1.7(這個一會用U-boot給核心傳遞)

2.4 給u-boot傳遞參數

啟動u-boot,在倒計時結束前,按下空格鍵,進入輸入參數界面

輸入:

AVANTECH# set bootargs root=/dev/nfs nfsroot=192.168.1.128:/home/water/rootfs rw noinitrd init=/linuxrc ip=192.168.1.7:192.168.1.128:192.168.1.128:255.255.255.0:avantech:eth0:off console=ttySAC0,115200

(注:上面為一行代碼,隻是可能自動換行的緣故,是以輸入是可以一部分一部分的複制)

AVANTECH# saveenv

AVANTECH# reset

2.5然後就ok了

繼續閱讀