我正在尝试使用Raspberry 3,并尝试使用U-Boot启动Linux内核。
我已经构建了一个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...然后监视器变成黑色并显示“无信号”,串行控制台也不再显示任何信息。
我已经尝试过提供给内核的启动程序,但我没有找到一个有效的方案。
有谁有主意吗?
正如我所说的,U-Boot和内核似乎都可以工作,但U-Boot不能启动内核...
谢谢,VanDahlen
发布于 2020-05-17 16:49:13
我知道这是一个非常老的问题,但对我来说,在bootz中使用${fdt_addr}而不是${fdt_addr_r},而不是手动加载设备树文件,这对我很有帮助。所以..。
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}...should工作。
发布于 2016-11-11 00:25:13
你有没有试过在不同的地址加载内核?例如,在$loadaddr上而不是在$kernel_addr_r上。确保内核被加载到正确的地址。
https://stackoverflow.com/questions/40510479
复制相似问题