Raspberry 3:使用U-Boot启动内核

时间:2016-11-09 15:25:15

标签: linux-kernel raspberry-pi3 u-boot

我正在使用Raspberry 3并尝试使用U-Boot启动Linux内核。

我已经构建了Linux内核(来自github.com/raspberrypi)和Busbox-Userland。 这个内核启动和工作正常,直接启动' (这意味着没有U-Boot)。

现在我已经建立了U-Boot(主线,denx.de/u-boot.git),这似乎也有效。

启动并且可以访问(通过HDMI / USB和[添加pi3-disable-bt-Overlay之后])。

但现在我被卡住了;内核不会从U-Boot内部开始。

我尝试了以下命令:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<article id="post-60" class="post-60 page type-page status-publish hentry">
  <header class="entry-header">
    <h1 class="entry-title">Pagine Critiche</h1>
  </header>
  <!-- .entry-header -->

  <div class="entry-content">
    <p><strong>TITLE 1.1</strong>
    </p>
    <p><strong>TITLE 1.2</strong>
    </p>
    <p><em>Writer writes:</em>
    </p>
    <p>Article #1</p>
    <p>&nbsp;</p>

    <p><strong>TITLE 2.1</strong>
    </p>
    <p><strong>TITLE 2.2</strong>
    </p>
    <p><em>Writer writes:</em>
    </p>
    <p>Article #2.1</p>
    <p>Article #2.2</p>
    <p>Article #2.3</p>
  </div>
</article>

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}

然后显示器变黑并显示&#34;没有信号&#34;,串口控制台也没有显示更多信息。

我已经使用了提供给内核的bootargs,但我没有找到工作方案。

有人有想法吗?

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

谢谢, VanDahlen

2 个答案:

答案 0 :(得分:1)

我知道这是一个非常老的问题,但是对我来说,它有助于不手动加载设备树文件并在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}

...应该工作。

答案 1 :(得分:0)

您是否尝试在不同的地址加载内核?即在$ loadaddr而不是$ kernel_addr_r。确保内核在正确的地址加载。