gpt4 book ai didi

linux - 如何使用 Yocto 将文件部署到/boot 分区

转载 作者:太空狗 更新时间:2023-10-29 11:11:45 25 4
gpt4 key购买 nike

我正在尝试将一些二进制文件部署到 RPi CM3 的 Yocto 镜像中的/boot,但它会将它们部署到错误的位置。

do_install() {
install -d ${D}/boot/overlays
install -m 0664 ${WORKDIR}/*.dtb ${D}/boot/overlays/
install -m 0664 ${WORKDIR}/*.dtbo ${D}/boot/overlays/
}

文件会部署到最终镜像的/分区的/boot,但不会部署到/boot分区。因此它们在启动时不可用。

我已经搜索并研究了 Poky 发行版的内核配方(和类),但我没有找到它使用的机制如何确保文件被部署到引导镜像(而不是/boot 目录根图像)。

感谢任何帮助:)

更新 #1

在我的 local.conf 中我做了:

IMAGE_BOOT_FILES_append = " \
overlays/3dlab-nano-player.dtbo \
overlays/adau1977-adc.dtbo \
...
"

在我的 rpi3-overlays.bb 中

do_deploy() {
install -d ${DEPLOYDIR}/${PN}
install -m 0664 ${WORKDIR}/*.dtb ${DEPLOYDIR}/${PN}
install -m 0664 ${WORKDIR}/*.dtbo ${DEPLOYDIR}/${PN}

touch ${DEPLOYDIR}/${PN}/${PN}-${PV}.stamp
}

使用此镜像构建,但文件仍未部署在/boot 分区中。使用 RPI_KERNEL_DEVICETREE_OVERLAYS 我得到一个构建错误,因为内核配方试图像 dts 文件一样构建 dtbo 文件。

最佳答案

RPI 图像是用 sdimage-raspberrypi.wks 创建的WIC wks 文件。它包含:

part /boot --source bootimg-partition ...

所以它使用bootimg-partition.py用于生成 /boot 的 wic 插件分割。它复制 IMAGE_BOOT_FILES 定义的每个文件变量。

看来你想添加一些devicetree覆盖,所以你需要修改machine配置,更具体地说 RPI_KERNEL_DEVICETREE_OVERLAYS多变的。 IMAGE_BOOT_FILES变量设置在 rpi-base.inc 中.

如果您没有定义任何自定义机器或自定义发行版,您可以在 local.conf 中添加它:

RPI_KERNEL_DEVICETREE_OVERLAYS_append = " <deploy-path>/<dto-path>"

可以看到here如何在部署目录中添加文件。

关于linux - 如何使用 Yocto 将文件部署到/boot 分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56914301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com