Linux kernel Raspberry 3:使用U-Boot引导内核

Linux kernel Raspberry 3:使用U-Boot引导内核,linux-kernel,raspberry-pi3,u-boot,Linux Kernel,Raspberry Pi3,U Boot,我正在玩Raspberry 3,并尝试使用U-boot引导Linux内核 我已经构建了一个Linux内核(来自github.com/raspberrypi)和Busbox用户区。 当“直接”引导时(这意味着没有U-Boot),这个内核可以引导并正常工作 现在我已经构建了U-Boot(主线,denx.de/U-Boot.git),它似乎也能工作 它引导并可访问(通过HDMI/USB和[添加pi3后禁用bt覆盖]) 但现在我被困住了;内核不会从U-Boot中启动 我尝试了以下命令: setenv f

我正在玩Raspberry 3,并尝试使用U-boot引导Linux内核

我已经构建了一个Linux内核(来自github.com/raspberrypi)和Busbox用户区。 当“直接”引导时(这意味着没有U-Boot),这个内核可以引导并正常工作

现在我已经构建了U-Boot(主线,denx.de/U-Boot.git),它似乎也能工作

它引导并可访问(通过HDMI/USB和[添加pi3后禁用bt覆盖])

但现在我被困住了;内核不会从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...
然后显示器变黑并显示“无信号”,串行控制台也不显示更多信息

我已经使用了提供给内核的引导参数,但是我没有找到一个可行的方案

有人有主意吗

正如我所说,U-Boot和内核似乎都能工作,但U-Boot无法启动内核

谢谢,
VanDahlen

您是否尝试过在不同的地址加载内核?i、 e.在$loadaddr,而不是$kernel\u addr。确保在正确的地址加载内核。

我知道这是一个非常老的问题,但对我来说,它有助于避免手动加载设备树文件,并在bootz中使用${fdt_addr}而不是${fdt_addr_r}。 所以


…应该可以工作。

内核的解压缩可能会失败,或者内核执行可能会中止(即dtb的加载地址看起来可疑)。当内核“直接”引导时,控制台输出是什么?IOW是解压的详细信息,也就是说,在内核实际开始执行之前,是否有诸如“解压Linux…完成,引导内核”之类的正常输出?
mmc dev 0
fatload mmc 0:1 ${kernel_addr_r} kernel7.img
setenv bootargs earlyprintk console=tty0 console=ttyAMA0 root=/dev/mmcblk0p2 rootfstype=ext2 rootwait noinitrd
bootz ${kernel_addr_r} - ${fdt_addr}