2016-05-14 231 views
1

我有一個運行Yocto(Jethro)的自定義板,並且想要運行單個u-boot命令,preboot。顯然,打破空間引導序列並手動運行它的作品。我如何讓它自動運行?更具體地說,默認情況下,啓動命令序列在哪裏?在啓動時運行u-boot命令

編輯:另外,我知道我可以在運行時編輯環境。但是,我正在嘗試將此更改構建到映像中,以便我可以分發它。

回答

1

一般的答案是,bootcmd是默認運行的,如果存在持久性環境,您可以更改命令和'saveenv'以保留它。

1

當你在uboot環境中。輸入printenv,它將列出uboot使用的環境變量。

有一個變量名bootcmd。目前,我的包含一堆if else命令。同樣,在那裏添加你喜歡的功能來啓動。

並在它完成並測試後。使用saveenv來存儲編輯

這是一個用於uboot的syntax

編輯:

的U-Boot允許存儲在純文本文件的命令或命令序列。然後使用mkimage工具,您可以將該文件轉換爲可以使用U-Boot的autoscr命令執行的腳本映像。 U-boot Scripting Capabilities

+0

是的,這工作,但那只是那個磁盤。我如何自動將其構建到圖像中? –

+0

這就是你需要的http://www.denx.de/wiki/view/DULG/UBootScripts –

1

通常情況下,你的U-Boot的配方將建立的U-Boot的一臺機器,在這種情況下,我通常只是打補丁編譯,默認情況下,U-Boot的環境做正確的事。這是通過

SRC_URI_machine += "file://mydefenv.patch" 

或者(甚至更好)使用你自己的git樹。這也會帶來額外的好處,即即使環境完全損壞,系統也可能啓動並提供有用的信息。

另一種可能是做像查爾斯在另一個答案評論建議,離線創造環境,並有U-Boot的加載它,請參閱denx.de/wiki/view/DULG/UBootScripts

第三種可能,那我也有時用,是離線構建環境(可能使用與上述鏈接相同或類似的機制),並且在正常的閃存編程過程中閃存環境閃爍。雖然我大部分時間都是在AT91上完成這個工作,但是使用類似於at91 Sam-Ba TCL script的tcl腳本

無論您選擇哪種方法,U-Boot中的bootcmd變量都應該包含引導腳本。