1107441_zh-CN

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

1107441_zh-CN

1107441_zh-CN

.sdcard 指南格式<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

理解和使用.sdcard格式

Yocto Communiy BSP 和 Release BSP 中默认启用的一个非常有用的功能是在 .sdcard 中生成烘焙图像的选项格式。

如果 .sdcard默认情况下未选择格式,可以在 conf/local.conf 文件上通过添加 IMAGE_FSTYPES 来启用它,如下所示:

IMAGE_FSTYPES="sd卡"

值得注意的是,如果指定了这个变量,那么只会创建类型定义的文件系统。此变量最常用的默认值是:

IMAGE_FSTYPES="tar.bz2 ext3 sd卡"

.sdcard 格式创建一个包含所有必要分区的映像,并将引导加载程序、内核和 rootfs 加载到该映像中。您可以使用 dd 将此文件中的数据低级复制到 SD 卡设备,如以下命令示例所示:

$ sudo dd if=.sdcardof=/dev/sd bs=1M && 同步

.sdcard 上使用的分区文件

.sdcard 分区如下所示:

SD_Card_Partitions.jpg

IMAGE_ROOTFS_ALIGNMENT
为引导加载程序保留的未分区空间

引导空间
Kernerl 和其他数据

根文件系统大小
根文件系统。

在 RootFS 分区上授予更多可用空间

.sdcard 的大小文件将完全取决于 rootfs 的大小。这意味着,除非我们向 rootfs 分区添加额外的空间,否则生成的文件将不会对我们所有的 SD 卡容量进行分区。(当然,一旦加载到 SD 卡上,总是可以选择编辑分区)

为了添加更多空间,您可以使用 IMAGE_ROOTFS_EXTRA_SPACE 变量。您可以将其添加到 local.conf 文件中,并添加以 KB 为单位的可用磁盘空间。例如,如果您想保证 1GB 的额外空间,您可以将以下行添加到您的 local.conf 文件。

IMAGE_ROOTFS_EXTRA_SPACE = "1048576"

值得注意的是,这是 IMAGE_OVERHEAD_FACTOR 变量的附加空间,该变量定义了应用于初始图像大小的乘数。这仅适用于乘数乘以

默认情况下,构建过程对此变量使用乘数 1.3。当使用此方法确定最终生成的图像大小时,此默认值会导致 30% 的可用磁盘空间添加到图像中。这意味着在安装后脚本之前应该有 30% 的可用磁盘空间。如果您希望获得更多空间,可以按如下方式编辑此变量:

图像开销因子 = "1.5"

这将导致在安装后脚本之前向映像中添加 50% 的可用磁盘空间,并且不考虑可能来自包管理系统的开销。

IMAGE_ROOTFS_SIZE 是如何计算的

这个变量也是以千字节为单位,它由 OpenEmbedded 构建系统使用一种算法来确定,该算法考虑了用于生成图像的初始磁盘空间、图像的请求大小(通过开销因素)以及要添加到图像的额外可用空间(通过额外空间变量)。

构建系统首先运行 du(磁盘使用情况)命令来确定 rootfs 目录树的大小。如果 IMAGE_ROOTFS_SIZE 当前值大于磁盘使用量乘以开销因子,则仅添加额外的空间。如果 IMAGE_ROOTFS_SIZE 小于磁盘使用量乘以开销因子,则在添加额外空间之前将磁盘使用量乘以开销因子。

IMAGE_ROOTFS_SIZE 必须设置为默认值,该值通常非常低,因为它只是在每次烘焙图像时初始化并根据实际尺寸要求进行更新。

您也可以直接使用此变量来选择要分配给 RootFS 的空间。例如,将 RootFS 设置为 2GB 需要在 local.conf 文件中添加以下内容:

IMAGE_ROOTFS_SIZE = “2097152”
图像开销因子 = “1.0”

在这个例子中,我们将开销因子保留为 1,这样就不会添加额外的空间,因为我们指定了我们想要的 rootfs 大小。

回复:.sdcard 指南格式<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

你知道发生了什么事吗?在 tmp/deploy/images// 文件夹中,较短的 sdcard 文件名只是较长文件名的链接。运行 dd 命令时我总是使用较长的文件名。

另外,我发现引导加载程序中存在严重的 CRC 环境错误。无论出于何种原因,总是要求您第一次从新映像的卡启动时中断启动,然后输入“saveenv”(不带引号),然后重置。这也许可以解决你的问题。每次我将新图像写入 SD 卡时,我都必须这样做。

回复:.sdcard 指南格式<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

您可能从网页上复制粘贴了命令“IMAGE_ROOTFS_SIZE = “2097152””,但其中的双引号字符( “ ”)有误。请将其替换为“linux double quote "”,解析错误即可消失。

回复:.sdcard 指南格式<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

根据第一段,该文档似乎在说这些变量中的任何一个都应该添加到 conf/local.conf。

然而,当我添加

IMAGE_ROOTFS_SIZE = “2097152”
图像开销因子 = “1.0”

到我的 conf/local.conf 文件,我收到 bitbake 错误:

错误:/home/user/yocto/build/conf/local.conf:26 处的 ParseError:未解析的行:'IMAGE_ROOTFS_SIZE =“2097152”'

回复:.sdcard 指南格式<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

是否会逐步淘汰这一模式,转而采用“WIC”模式?rocko repo 无法构建 .sdcard默认文件。

有人知道是否有关于 WIC 文件格式的类似描述以及如何使用它吗?

回复:.sdcard 指南格式<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

您能分享一下您的解决方案吗?谢谢

回复:.sdcard 指南格式<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

事实证明,如果更改制造工具脚本,制造工具也可以创建多个分区。该文档包含在制造工具下载中。我计划使用 *.sdcard 图像对我的设备上 eMMC 进行编程,并且无论如何都需要使用制造工具。制造工具中的默认设置甚至不使用 *.sdcard 图像,所以我想我现在不需要解决这个特定问题。

回复:.sdcard 指南格式<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

jtis我也有同样的问题。我正在尝试做同样的事情。

回复:.sdcard 指南格式<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

你好, gusarambula ,这份文档包含非常重要和有用的信息,希望下次你能在教程中向我们解释所有可以使用命令“dd”应用于带有 i.MX 的 SD 的选项。

请继续努力

回复:.sdcard 指南格式<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

非常感谢您的反馈!

Bio_TICFSL ,我终于可以提到你了。您能否对此文档提出评论?

回复:.sdcard 指南格式<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

非常好的文档,特别是关于扩展分区容量的主题,看起来像是一个常见问题解答。

回复:.sdcard 指南格式<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

非常好的文档!

回复:.sdcard 指南格式<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

很棒的文件,古斯塔沃。

标记 (1)
无评分
版本历史
最后更新:
‎11-19-2025 05:15 AM
更新人: