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

Yocto Kirkstone根文件系统创建目录及复制文件失败问题求助

问题分析与修复方案

核心问题点

  1. FILES路径错误:当前FILES_${PN} += "${datadir}/movies/${MY_FILES}"把本地绝对路径拼接到目标路径中,导致实际生成的路径为/usr/share/movies/home/antoine/Downloads/qb_helmet_sample.mp4,完全不符合预期。
  2. 本地文件未纳入构建上下文:直接使用本地绝对路径会导致Yocto构建系统无法可靠访问文件(干净构建或共享环境下会失效),需将文件放入meta层的标准目录并通过SRC_URI引入。
  3. do_install触发问题:image recipe默认未继承base类,可能导致do_install任务未被正确执行。

修改后的完整video-image.bb代码

SUMMARY = "Adds usb-uvc capabilities, h264 encoding"
IMAGE_INSTALL = "packagegroup-core-boot ${CORE_IMAGE_EXTRA_INSTALL}"
IMAGE_LINGUAS = " "
LICENSE = "MIT"

inherit core-image base

# Set rootfs to 1 GB by default
IMAGE_OVERHEAD_FACTOR ?= "1.0"
IMAGE_ROOTFS_SIZE ?= "1003520"
#IMAGE_ROOTFS_EXTRA_SPACE:append = "${@bb.utils.contains("DISTRO_FEATURES", "systemd", " + 4096", "", d)}"

inherit extrausers
# Change root password (note the capital -P)
EXTRA_USERS_PARAMS = " \
    usermod -p '$6$11223344$N9q7Gt5eJJb54sBuR/.7ih8w/OeBBQ8D38FmefDKuTMVM5RbnR07FQayQQWSntbXw/DPpuS781UWLHDTY1lhr1' root; \
"

# 引入meta层files目录下的视频文件
SRC_URI += "file://qb_helmet_sample.mp4"

VIDEO_FILENAME = "qb_helmet_sample.mp4"

# 正确声明要打包的路径与文件
FILES_${PN} += "${datadir}/movies/"
FILES_${PN} += "${datadir}/movies/${VIDEO_FILENAME}"

do_install(){
    # 创建目标目录
    install -d ${D}${datadir}/movies
    # 从WORKDIR复制文件到目标路径(SRC_URI拉取的文件默认存放在WORKDIR)
    install -m 0644 ${WORKDIR}/${VIDEO_FILENAME} ${D}${datadir}/movies/
}

操作步骤

  1. 在你的meta层根目录下创建files文件夹,将qb_helmet_sample.mp4复制到该目录中。
  2. 替换原video-image.bb文件内容为上述代码。
  3. 执行清理与重新构建命令:
    bitbake -c clean video-image
    bitbake video-image
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 01:28:23