uboot使用eth1
❶ 求助 關於uboot.BIN 燒寫uImage到開發板的內存中
直接文件系統列舉吧燒寫uboot、內核及文件系統 :1、uboot燒寫
載Uboot兩步驟第步uboot載系統擴展RAM並運行第二步通內存運行uboot整uboot載內存再燒寫nandflash
第步 載uboot擴展RAM
首先使用短路塊選擇系統內部啟復位或者電串口軟體(115200 8 n 1)看列印信息LPC31xx READY FOR PLAIN IMAGE>使用串口軟體發送文件選擇發送u-boot-init.bin再發送u-boot.binRAM啟uboot列印輸啟信息並進行倒計發送任意字元給系統停止計關閉串口軟體使用超級終端連接系統
第二步 燒寫ubootnandflash
超級終端輸入loady命令再使用傳送/發送文件選擇Ymodem協議發送u-boot.bin接收完先擦除nand erase全擦掉(用給參數)使用使用參數指定區域般第要全擦使用nand_paramsflash信息寫入其使用nand write 0x30001000 0x4000 0x100000
其0x30001000 uboot內存址;
0x4000 ubootflash存放起始址需要根據實際區情況定;
0x100000 uboot於實際;
至uboot寫入nandflash短路跳線掉使其nandflash啟
2、內核燒寫
uboot啟倒計擊任意鍵停止輸入loady與uboot燒寫相似使用命令主要:nand erase 0x200000(址) 0x200000()
nand write 0x30001000 0x200000 0x200000
3、文件系統燒寫
文件系統燒寫通與內核相似使用串口燒寫通掛載nfs使用mtd_debug 工具燒寫由於文件系統較使用第種式慢些
串口燒寫使用命令
loady
nand erase 0x600000 0x3a00000(目前區情況)
nand write 0x30001000 0x600000 0x800000(實際)
使用nfs燒寫用命令
mtd_debug erase /dev/mtd2 0 0x3a00000
mtd_debug write /dev/mtd2 0 0x800000 ubi.img
各項含義參考mtd_debug 幫助直接mtd_debug 即獲取說明其len使用十進制數uboot加0x認十六進制
4、啟掛載文件系統選項
uboot通環境變數設置啟選項般需要配置掛載文件系統nfsubi及內核啟選項
掛載nanflashubifs:
setenv bootargs console=ttyS0,115200n8 ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs;
掛載129.1.4.199/rfs/rootfs並且本機ip設129.1.31.33等:
setenv bootargs noinitrd root=/dev/nfs console=ttyS0,115200n8 nfsroot=129.1.4.199:/rfs/rootfs,proto=tcp,nfsvers=3,nolock ip=129.1.31.33:129.1.4.199:129.1.88.1:255.255.0.0::eth0:off
啟內核選項:
setenv bootcmd nand read 0x30001000 0x200000 0x200000\; bootm 0x30001000\;
修改uboot環境變數都需要saveenv命令保存修改
❷ uboot中ethaddr怎麼確定
-Boot環境變數的解釋說明
環 境 變 量
解 釋 說 明
bootdelay
定義執行自動啟動的等候秒數
baudrate
定義串口控制台的波特率
netmask
定義乙太網介面的掩碼
ethaddr
定義乙太網介面的MAC地址
bootfile
定義預設的下載文件
bootargs
定義傳遞給Linux內核的命令行參數
bootcmd
定義自動啟動時執行的幾條命令
serverip
定義tftp伺服器端的IP地址
ipaddr
定義本地的IP地址
stdin
定義標准輸入設備,一般是串口
stdout
定義標准輸出設備,一般是串口
stderr
定義標准出錯信息輸出設備,一般是串口
參考U-boot,其環境變數設置如下:
Uboot> printenv
bootdelay=3
baudrate=115200
ethaddr=00:12:34:56:78:9a
ipaddr=192.168.0.9 ①
serverip=192.168.0.1 ②
netmask=255.255.255.0
rootpath=/home/zht/rfsys ③
stdin=serial
stdout=serial
stderr=serial
bootcmd=tftp 21000000 uImage;bootm 21000000 ④
bootargs=root=/dev/nfs rw nfsroot=192.168.0.1:/home/zht/rfsys nfsaddrs=192.168.0.48: 192.168.0.1:192.168.0.1:255.255.255.0 console=ttyS0,115200 mem=32M ⑤
① 設置目標板IP地址
② 設置伺服器IP地址
③ 設置根文件系統在伺服器上的路徑,注意該路徑一定要設定為伺服器上的nfs目錄。
④ bootcmd是u-boot啟動後執行的命令,命令之間用分號分隔。
tftp 21000000 uImage 表示通過tftp 將內核映像下載到RAM中地址為0x21000000;
bootm 21000000 啟動linux操作系統
⑤ 定義u-boot傳送給linux內核的命令行參數,該命令行指定以網路文件系統作為根文件系統。
其中root=/dev/nfs,並非真的設備,而是一個告訴內核經由網路取得根文件系統的旗標。
參數nfsroot這個參數告訴內核以那一台機器,那個目錄以及那個網路文件系統選項作為根文件系統使用。參數的格式如下:
nfsroot=[:][,]
如果指令列上沒有給定 nfsroot 參數,則將使用『/tftpboot/%s』預設值。其它選項如下:
--指定網路文件系統服務端的互聯網地址(IP address)。如果沒有給定此欄位,則使用由 nfsaddrs 變數(見下面)所決定的值。此參數的用途之一是允許使用不同機器作為反向地址解析協議(RARP) 及網路文件系統服務端。通常你可以不管它(設為空白)。
-- 服務端上要作為根掛入的目錄名稱。如果字串中有個『%s』 符記(token),此符記將代換為客戶端互聯網地址之 ASCII 表示法。
-- 標準的網路文件系統選項。所有選項都以逗號分開。如果沒有給定此選項欄位則使用下列的預設值:
port = as given by server portmap daemon
rsize = 1024
wsize = 1024
timeo = 7
retrans = 3
acregmin = 3
acregmax = 60
acdirmin = 30
acdirmax = 60
flags = hard, nointr, noposix, cto, ac
參數nfsaddrs設定網路通訊所需的各種網路介面地址。如果沒有給定這個參數,則內核核會試著使用反向地址解析協議以及/或是啟動協議(BOOTP)以找出這些參數。其格式如下:
nfsaddrs=::::::
-- 客戶端的互聯網地址。如果沒設,此地址將由反向地址解析協議或啟動協議來決定。使用何種協議端視配置核心時打開的選項以及 參數而定。如果設定此參數,就不會使用反向地址解析協議或啟動協議。
-- 網路文件系統服務端之互聯網地址。如果使用反向地址解析協議來決定客戶端地址並且設定此參數,則只接受從指定之服務端傳來的回應。要使用不同的機器作為反向地址解析與網路文件系統服務端的話,在此指定你的反向地址解析協議服務端(保持空白)並在 nfsroot 參數(見上述)中指定你的網路文件系統服務端。如果此項目空白則使用回答反向地址解析協議或啟動協議之服務端的地址。
-- 網關(gateway)之互聯網地址,若服務端位於不同的子網路上時。如果此項目空白則不使用任何網關並假設服務端在本地的(local)網路上,除非由啟動協議接收到值。
-- 本地網路界面的網路掩碼。如果為空白,則網路掩碼由客戶端的互聯網地址導出,除非由啟動協議接收到值。
-- 客戶端的名稱。如果空白,則使用客戶端互聯網地址之 ASCII-標記法,或由啟動協議接收的值。
-- 要使用的網路設備名稱。如果為空白,所有設備都會用來發出反向地址解析請求,啟動協議請求由最先找到的設備發出。網路文件系統使用接收到反向地址解析協議或啟動協議回應的設備。如果你只有一個設備那你可以不管它。
-- 用以作為自動配置的方法。如果是 `rarp' 或是 `bootp' 則使用所指示的協議。如果此值為 `both' 或空白,若配置核心時有打開這兩種協議則都使用。 `none' 表示不使用自動配置。這種情況下你必須指定前述欄位中所有必要的值。
此 參數可以作為 nfsaddrs 的參數單獨使用(前面沒有任何 `:` 字元),這種情況下會使用自動配置。然而,此種情況不能使用 `none'作為值。
說明:這只是網上的一種說法,但是沒有啟動起來。因為我的kernel沒有cs8900網卡驅動,燒錄後可正常啟動,但無法掛載NFS,我在想是否可以通過命令行參數設置,來設置uboot給kernel傳遞的地址參數,這樣間接驅動nfs服務。我先前通過vivi這樣搞過,也是可行的。
現在可以這樣理解就是說,之前的kernel內核已經配置好了各個基本模塊的驅動,這樣就可以用了
❸ 在ubuntu下使用什麼工具對uboot及內核進行燒寫
tftp比較通用的 網路燒寫 DNW USB燒寫
❹ 如何設置u-boot變數ip地址
setenv ipaddr 192.168.1.111
這樣就可以了。然後在使用網路相關的時候,會自動獲取這個ip並使用的。
如果用tftp 還需設置
setenv serverip 192.168.1.123
需要重啟還有效,則
saveenv
❺ linux下Uboot終端命令行參數輸入過長
修改成這樣試試(用分割了一下)
setenvbootargs"root=/dev/nfsnfsroot=192.168.1.118:
/root/work/nfsip=192.168.0.119:192.168.1.118:192.168.1.1:
255.255.255.0:witech.com.cn:eth0:offconsole=ttySAC2,115200"