You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Yocto构建的recovery镜像中包含main-image.wic.bz2文件?

实现Recovery镜像嵌入Main镜像的Yocto方案

1. 创建Recovery镜像配方

在你的Yocto项目recipes-core/images/目录下新建main-recovery-image.bb文件,内容可参考下面示例(根据你的main image配方调整继承的基础镜像):

# 继承基础镜像(示例:树莓派基础镜像+核心镜像特性)
inherit core-image rpi-basic-image

# 依赖main-image,确保构建recovery前先完成main镜像的构建
DEPENDS += "main-image"

# 安装阶段:将main-image.wic.bz2复制到recovery镜像的指定目录
do_install() {
    # 创建目标目录
    install -d ${D}/opt/recovery
    # 从部署目录复制main镜像文件到目标路径,设置权限
    install -m 0644 ${DEPLOY_DIR_IMAGE}/main-image.wic.bz2 ${D}/opt/recovery/
}

# 声明要包含到镜像中的文件路径
FILES_${PN} += "/opt/recovery/main-image.wic.bz2"

# 设置Recovery镜像的输出格式(根据你的USB启动需求调整,比如wic.bz2)
IMAGE_FSTYPES += "wic.bz2"

2. 配置构建环境

  • 确保main-image所在的layer已添加到conf/bblayers.conf中,否则Yocto无法找到依赖的main-image配方。
  • 确认MACHINE参数已设置为树莓派对应的型号(比如raspberrypi4-64),保证构建环境与main-image一致。

3. 构建Recovery镜像

在构建终端执行以下命令启动构建:

bitbake main-recovery-image

构建完成后,含main-image.wic.bz2的Recovery镜像产物会出现在tmp/deploy/images/<你的MACHINE>/目录下,直接烧写到USB闪存即可使用。

额外注意事项

  • 如果main-image.wic.bz2文件较大,需调整Recovery镜像的根文件系统大小,可在配方中添加:IMAGE_ROOTFS_SIZE = "2048000"(单位KB,根据实际需求修改)。
  • 若要实现自动恢复逻辑,可在配方中添加恢复脚本(比如/usr/bin/recover.sh),设置可执行权限后,通过systemd服务配置开机启动。

内容的提问来源于stack exchange,提问作者Thugmek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 07:53:09