天天看點

uboot邊角料2——linux環境下uboot通過tftp下載下傳Ubuntu資源實驗記錄

uboot文章連載點我

前提:開發闆uboot能和主機Ubuntu接通網絡,方法看:uboot邊角料1——linux環境下uboot網絡ping指令實驗記錄

(1)uboot本身主要目标是啟動核心,為了完成啟動核心必須要能夠部署核心,uboot為了部署核心就需要将核心鏡像從主機中下載下傳過來然後燒錄到本地flash中。uboot如何從主機(windows或者虛拟機ubuntu)下載下傳鏡像到開發闆上?有很多種方式,主流方式是:fastboot和tftp。

fastboot的方式是通過USB線進行資料傳輸。

tftp的方式是通過有線網絡的。典型的方式就是通過網絡,fastboot是近些年才新發展的。

(2)tftp方式下載下傳時實際上uboot扮演的是tftp用戶端程式角色,主機windows或虛拟機ubuntu中必須有一個tftp伺服器,然後将要下載下傳的鏡像檔案放在伺服器的下載下傳目錄中,然後開發闆中使用uboot的tftp指令去下載下傳即可。

(3)有些人習慣在windows中搭建tftp伺服器,一般是用一些軟體來搭建(譬如tftpd32,使用起來比較簡單);

(4)我的虛拟機搭建的時候設定的tftp下載下傳目錄是/tftpboot,将要被下載下傳的鏡像複制到這個目錄下。

(5)檢查開發闆uboot的環境變量,注意serverip必須設定為虛拟機ubuntu的ip位址。(serverip這個環境變量的意義就是主機tftp伺服器的ip位址)

(6)然後在開發闆的uboot下先ping通虛拟機ubuntu,然後再嘗試下載下傳:tftp 0x30000000 zImage-qt(在開發闆上)(意思是将伺服器上名為zImage-qt的檔案下載下傳到開發闆記憶體的0x30000000位址處。(uboot記憶體位址從0x30000000~0x50000000))

(7)鏡像下載下傳到開發闆的DDR中後,uboot就可以用movi指令進行鏡像的燒寫了。

注意:

1)如果你是用的windows下的tftp伺服器,那uboot的serverip就要設定為和windwos下tftp伺服器的ip位址一樣(windows下的tftp伺服器軟體設定的時候就有個步驟是讓你設定伺服器的ip位址,這個ip位址和主機windows必須在一個網段)。

nfs啟動核心指令:nfs

(1)uboot中也支援nfs指令,但是我基本沒用過。

繼續閱讀