2016-11-09 53 views
2

我正在玩Raspberry 3並嘗試使用U-Boot引導Linux內核。Raspberry 3:使用U-Boot引導內核

我已經構建了Linux內核(來自github.com/raspberrypi)和Busbox-Userland。 當直接啓動(這意味着沒有U-Boot)時,這個內核啓動並工作得很好。

現在我已經構建了U-Boot(Mainline,denx.de/u-boot.git),它似乎也起作用。

它啓動並可以通過HDMI/USB和[在添加pi3-disable-bt-Overlay後)訪問。

但現在我卡住了;內核不會從U-Boot內部啓動。

我嘗試下面的命令:

setenv fdtfile bcm2710-rpi-3-b.dtb 

mmc dev 0 
fatload mmc 0:1 ${kernel_addr_r} kernel7.img 
fatload mmc 0:1 ${fdt_addr_r} ${fdtfile} 
setenv bootargs earlyprintk console=tty0 console=ttyAMA0 root=/dev/mmcblk0p2 rootfstype=ext2 rootwait noinitrd 
bootz ${kernel_addr_r} - ${fdt_addr_r} 

的U-Boot的輸出是:

[...] 
reading kernel7.img 
[...] 
Kernel image @ 0x1000000 [ 0x000000 - 0x40e630 ] 
## Flattened Device Tree blob at 0x000100 
    Booting using fdt blob at 0x000100 
    Using Device Tree in place at 0000100, end 00006b1a 

Starting kernel... 

然後將顯示器變爲黑色,並顯示「無信號」,也串行控制檯沒有按」 t顯示更多信息。

我玩過提供給內核的bootargs,但沒有找到工作場景。

有沒有人有想法?

正如我所說的,無論是U-Boot的和內核似乎工作,但U-Boot的不能引導內核...

感謝, VanDahlen

+0

內核解壓縮可能失敗或內核執行可能中止(即dtb的加載地址可疑)。內核啓動時的控制檯輸出是什麼*「直接」*? IOW是非壓縮的詳細信息,即有正常輸出,例如「解壓Linux ...完成,引導內核」。內核實際開始執行之前? – sawdust

回答

0

你試過加載內核在不同的地址?即在$ loadaddr而不是$ kernel_addr_r。確保內核正在被加載到正確的地址。