【问题标题】:How to load Yocto generated U-boot binaries to t1042d4rdb board如何将 Yocto 生成的 U-boot 二进制文件加载到 t1042d4rdb 板
【发布时间】:2019-12-09 17:09:10
【问题描述】:

我在 Ubuntu 16.04.6 上使用 Yocto(使用 bitbake fsl-image-full 命令)为 NXP t1042d4rdb 板创建了 linux 和 U-boot 映像。在我的"yocto sdk directory"/"build directory"/tmp/deploy/images/t1042d4rdb 目录中,我有 linux 映像和许多用于 u-boot 的二进制文件(如 u-boot.bin、u-boot-sdcard.bin、u-boot-nor.bin、u-boot-spi.bin。 ...)。 you can see my /tmp/deploy/images/t1042d4rdb file here

我使用 minicom 将我的 UART 串​​行转换器连接到 /dev/ttyUSB0 并编写了这个命令(在 n​​xp 论坛上找到)

"sudo dd if=u-boot.bin of=/dev/ttyUSB0 obs=4066 seek=1; sync"

什么也没发生。来自"dmesg" 命令的控制台消息

[ 4103.366033] ftdi_sio 3-4:1.0: FTDI USB Serial Device converter detected
[ 4103.366053] usb 3-4: Detected FT232RL
[ 4103.370147] usb 3-4: FTDI USB Serial Device converter now attached to ttyUSB

我是 Yocto 和 U-boot 的新手。我的问题是,如何将 U-boot linux 二进制文件加载到我的板上。感谢您的回答和任何其他建议。

【问题讨论】:

  • 4066的块大小不是512的倍数。至少这个值看起来是错误的。应该是4096吗?
  • 结果没有改变。我什至不确定我是否正在检查控制台消息的正确位置。你知道如何获得 U-boot 的输出消息吗?

标签: linux ubuntu-16.04 yocto bitbake u-boot


【解决方案1】:

首先,您不能直接用 dd 写入串行端口设备 (ttyUSB0),尽管它没有显示任何错误,您写入的数据可能会消失,因为 ttyUSB0 设备只是一个通信设备。

在 Yocto 构建目录 (tmp/deploy/images) 上,您可能会找到一个 .sdcard 映像文件或一个由 Linux 内核、U-Boot 和 Rootfs 映像组合而成的 .wic 映像。因此,您需要将此映像写入将用作引导设备的相关块设备。在这种情况下,你可以这样写这个图像; "dd if= of=/dev/your-sd-card-device bs=1M sync"。

希望对你的问题有所帮助。

【讨论】:

  • 我的文件结构是这样的i.hizliresim.com/vap54m.png。 u-boot-sdcard.bin 是我们寻找的文件吗?
  • 我认为你需要配置你的 Yocto 环境来输出 .sdcard 文件。您可以查看此链接以了解如何准备 sdcard 映像,我认为此过程对于任何处理器都是相似的。(community.nxp.com/docs/DOC-334664)
  • 谢谢你的回答,我试试。有没有办法将u-boot从串口加载到板子nand、nor、spi或其他内存?
  • 您可以使用 tftp 协议,但要做到这一点,您需要已经安装了 U-Boot 映像。串口多用于终端接口。
  • 我研究了我的电路板文档。我用于构建 Yocto 映像和 U-boot 映像的 SDK 似乎只有 u-boot-///-.bin 文件可用。它不会为 u-boot 创建任何 .img 文件,但似乎 .bin 文件足以移植 U-boot。目前,唯一的问题是如何在不使用 SDCARD 的情况下将 U-boot 二进制文件移植到我的主板内存中。顺便谢谢你的回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-08
  • 2021-12-03
  • 1970-01-01
相关资源
最近更新 更多