標籤:uboot linux核心 檔案系統
詳解將持續更新!
串連好開發板,重新啟動,進入u-boot互動介面,執行如下操作:
一、配置網路
# pri
# setenv ipaddr 192.168.64.11 (註:ipaddr 為開發板IP)
# setenv serverip 192.168.64.12 (註:serverip 為Windows主機IP)
# setenv gatewayip 192.168.64.1 (註:gatewayip 為網關)
# saveenv
# ping 192.168.64.12 (如果能通,則繼續往下做)
二、燒寫系統檔案(先由tftp下載到ddr,再由ddr燒寫到nandflash)
首先,啟動tftp服務,選擇好待下載目標檔案的路徑,執行如下動作:
注意:可以先tftp到記憶體,然後用“bootm 地址”啟動測試,不用去擦寫nandflash
1)燒寫kernel
// 將核心鏡像下載到記憶體
# tftp 0x40000000 uImage
//可以用此命令驗證核心是否能正常啟動,免得當前的有問題又把原來正常的擦了
# bootm 0x40000000
// 從地址0x600000開始擦除0x500000位元組大小的nandflash空間
# nand erase 0x600000 0x500000
// 將記憶體裡的核心鏡像燒寫到nandflash
# nand write 0x40000000 0x600000 0x500000
2)燒寫fs
# tftp 0x40000000 rootfs.img
# nand erase 0xe00000 0xf200000
# nand write.yaffs 0x40000000 0xe00000 0xxxxx(0xxxxx根據執行tftp 0x40000000 rootfs.img下載的大小確定)
3)燒寫u-boot
# tftp 0x40000000 u-boot.bin
# nand erase 0x0 0x600000
# nand write 0x40000000 0x0 0x600000
三、重啟進入u-boot互動介面,配置uboot的啟動參數
測試1(啟動核心):
// 設定啟動命令:先從nandflash裡讀到記憶體,再從記憶體啟動核心
# setenv bootcmd nand read 0x40000000 0x600000 0x500000\; bootm 0x40000000
// 儲存以上設定參數
# saveenv
重啟,觀察效果。
測試2(設定機器碼):
# setenv machid 0xXXX(根據自己情況而定)
# saveenv
重啟,觀察效果。
測試3(啟動本地檔案系統):
# setenv bootargs root=/dev/mtdblock4 init=/sbin/init console=ttySAC0,115200 rootfstype=yaffs rw
# saveenv
重啟,觀察效果。
四、若要實現nfs掛載檔案系統則進行如下操作:
1、確保虛擬機器virtualbox裡的網卡為有線網卡(因為是通過網線掛載的)
2、設定ip地址
# setenv serverip 192.168.64.13
# setenv ipaddr 192.168.64.11
# setenv gatewayip 192.168.64.1
# saveenv
註:serverip為Windows裡virtualbox裡的ubuntu的IP
測試4(掛載ubuntu裡的根檔案系統):
# setenv bootargs root=/dev/nfs nfsroot=192.168.64.13:/mini_rootfs ip=192.168.64.11:192.168.64.1::255.255.255.0::eth0:off init=/linuxrc
console=ttySAC0,115200
# saveenv
重啟,觀察效果。
詳解linux平台晶片燒寫流程