启动使用 bmaptool 传输的映像时出错,但 dd 有效

问题描述 投票:0回答:1

FWIW: 我在 StackOverflow 上搜索了 bmaptool 相关的问题,只找到了 5 个帖子,没有一个与我的问题相符。如果我走错地方了,我相信有人可以告诉我该去哪里;)

Results for bmaptool
5 results

使用 Yocto,我构建了一个映像文件(

.sdimg
,包含用于 Mender 安装的 4 个分区)以及关联的
sdimg.bz2
sdimg.bmap
文件。系统是 Freescale ARMv8a NXP iMX.8+,映像构建良好 — 并且通常启动良好。

IF (I boot from USB drive and use dd to transfer the file to eMMC) THEN
    when I shutdown, remove the USB drive, and try to boot from eMMC
    -> everything works just fine
IF (I boot from USB drive and use bmaptool to transfer the file to eMMC) THEN
    when I shutdown, remove the USB drive, and try to boot from eMMC
    -> sometimes it gives me an "unaligned pointer" error and won't boot

看起来好像 bmaptool 中有些不对劲(因为同一个图像适用于 dd),但考虑到有多少人可能使用 bmaptool 以及它已经存在了多久,这似乎不太可能......

Sooooo,对我可能做错了什么有什么想法吗?

问候, k

行动、期望、现实

  • 构建了为 Mender 配置的 Yocto 映像,并使用 bmaptool 使用 bz2 文件来刷新 eMMC
  • 期望映像能够成功启动 - 就像使用 dd 传输相同映像文件时一样
  • 有时启动会因“指针未对齐”错误而停止

监视器注意事项:不允许使用所提出的核心问题的准确描述符来“标记”问题()并不是很有帮助......它只是阻止其他人找到它,因为问题只是与 (构建环境)和 (首先构建映像的原因)的“已接受”标签相关。

“建议”说创建关于该死的附近任何东西的标签,以便“帮助他人”(具体来说,它说“以多种方式标记事物,以便人们可以更轻松地找到它们。为产品线添加标签,项目、团队以及使用的具体技术或语言”但显然这是假的,因为它不会让某人这样做,除非已经超出了提出基本问题的范围。

yocto mender
1个回答
0
投票

就我而言,我必须在使用 bmaptool 刷新之前擦除引导加载程序部分:

dd if=/dev/zero of=${BLOCK_DEVICE} bs=1MiB count=8

原因可能是 bmap 工具只写入所需的块,因此可能会在引导加载程序区域中留下一些来自先前引导加载程序的混乱字节。 dd 从头到尾写入所有字节,这就是它较慢的原因。

© www.soinside.com 2019 - 2024. All rights reserved.