2014-02-13 77 views
1

下面是U-Boot的幫助bootm命令的摘錄:bootm沒有設備樹BLOB

bootm [addr [arg ...]] 

- boot application image stored in memory 
    passing arguments 'arg ...'; when booting a Linux kernel, 
    'arg' can be the address of an initrd image 
    When booting a Linux kernel which requires a flat device-tree 
    a third argument is required which is the address of the 
    device-tree blob. To boot that kernel without an initrd image, 
    use a '-' for the second argument. If you do not pass a third 
    a bd_info struct will be passed instead 

,我可以看到在上面bootm [addr]應該做工精細,arg是可選的。
所以像bootm 0x1000000應該工作。
tftp把linux內核的uImage改爲0x1000000,然後想用上面的命令。
難道不可能嗎?

它工作正常,當我使用bootm 0x1000000 - 0x3000000,其中第三個參數是dtb的地址。
但是當我嘗試不DTB啓動,它停在 「解壓縮內核映像」

+1

儘管您的描述看起來足夠清晰,但實際的控制檯文字會更好(以防萬一您忽略了某些內容)。您還應該提供更多信息,例如內核版本和SoC。一些SoC依賴於來自U-Boot的數據來解壓其他的不是,例如[Freescale](http://stackoverflow.com/questions/18378563/how-do-i-find-arm-linux-entry-point - 當-IT-失敗到解壓/ 18392238#18392238)。儘管我見過這個問題的十多個實例通常與不正確的加載地址有關。 – sawdust

回答

0

您正在使用可能只支持設備樹BLOB(DTB)根據啓動時的內核。您將不得不確保將內核配置設置爲支持傳統引導。確保您的u-boot也支持傳統引導至關重要。就像鋸屑一樣,提供SoC,內核,u-boot信息總是有幫助的。

+0

「您正在使用的內核可能僅支持基於設備樹blob(dtb)的啓動」,對於我的情況,內核已由menuconfig配置。我實際上從中間接管了這個項目,並沒有意識到內核是這樣配置的,而是有這樣一個menuconfig選項可用!謝謝。 – mdsingh

+0

你能告訴內核配置以支持在新內核中的傳統引導嗎?說3.10 – zappy