1. 程式人生 > >利用nfs下載linux核心

利用nfs下載linux核心

利用路由器,將主機,虛擬機器,開發板在橋接環境下組建區域網

(1)設定主機,虛擬機器為同一個網段(這裡虛擬機器為ubuntu 12.04 發現採用橋接後,網路設定為自動獲取就沒問題了,

當我想手動設定固定ip的時候,出現一個問題:參照主機的網路引數設定ip,閘道器等,也設定好了dns,發現主機與虛擬機器之間能相互ping通

虛擬機器能直接ping通外網的ip,卻不能進行dns解析,不知道該怎麼才能有效的設定ubuntu的dns服務了!!!)

(2)針對需要的核心原始碼執行:make uImage (之前已經 make 生成了vmlinux了,所以此處較快,期間提示需要 mkimage工具,

按照提示:安裝 u-boot-tools工具包)

(3)在編譯工作目錄下的 arch/arm/boot/ 目錄下生成了 uImage檔案,併產生如下資訊:

Image Name:   Linux-2.6.32.65
Created:      Thu Jan 29 21:20:45 2015
Image Type:   ARM Linux Kernel Image (uncompressed)
Data Size:    2488528 Bytes = 2430.20 kB = 2.37 MB
Load Address: 80008000  // !! nfs 啟動的時候,記憶體載入地址
Entry Point:  80008000      // !! uboot 啟動核心的 記憶體地址
Image arch/arm/boot/uImage is ready

得到如上資訊:Load Address和Entry Point 資訊重要

(4)啟動開發板,進入uboot管理配置模式

(5)在uboot環境下,配置開發板的網路環境引數:

u-boot>setenv etnaddr 11:22:33:44:55:66  // 是設定板子的mac地址,板子已經寫好了,無需設定
u-boot>setenv ipaddr 192.168.0.102//是設定板子的IP地址。
u-boot>setenv serverip 192.168.0.101//是設定提供核心下載的伺服器IP地址。
u-boot>setenv gatewayip 192.168.0.1  //設定閘道器


u-boot>setenv netmask 255.255.255.0          //設定子網掩碼

u-boot>saveenv // !!! 儲存環境變數 重要!!

(5)uboot下啟動nfs服務下載核心uImage檔案:

#  nfs 0x80008000 192.168.0.101:/work/nfs_root/uImage  

uboot開始進入下載模式,出現進度條  #########

(6)從uboot下啟動核心:

# bootm 0x80008000

(7)許可權開始交接給核心,uboot任務基本結束 ……