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

Yocto Kirkstone添加DTS到树莓派内核报错:无mydts目标

问题

使用Yocto Kirkstone版本,目标是为树莓派Linux内核添加DTS文件。创建了meta-mydts层,目录结构如下:

meta-main-layer
meta-raspberrypi
meta-mydts/
├── conf
│   └── layer.conf
├── COPYING.MIT
├── README
└── recipes-kernel
    └── linux
        ├── linux-raspberrypi
        │   └── raspberrypi4-64
        │       └── my.dts
        └── linux-raspberrypi_5.15.bbappend

编写的linux-raspberrypi_5.15.bbappend文件内容:

SRC_URI += "file://mydts.dts;subdir=git/arch/arm/boot/dts/overlays"

FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"

PACKAGE_ARCH = "${MACHINE_ARCH}"
KERNEL_DEVICETREE += "mydst.dtb"

在meta-main-layer的镜像定义中添加:

IMAGE_INSTALL:append += " mydts"

但构建时报错:

ERROR: Nothing RPROVIDES 'mydts' (but meta-main-layer/recipes-core/images/image-64.bb RDEPENDS on or otherwise requires it)
NOTE: Runtime target 'mydts' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['mydts']

求问如何修复这个构建问题,遗漏了哪些步骤?

解决方案

1. 移除错误的IMAGE_INSTALL配置

DTS是内核的一部分,不需要单独打包为mydts包,直接删除镜像配置中的这一行:

IMAGE_INSTALL:append += " mydts"

2. 修正文件名拼写错误

bbappend文件存在两处拼写不一致问题:

  • 实际DTS文件是my.dts,SRC_URI中写错为mydts.dts,修正为:
    SRC_URI += "file://my.dts;subdir=git/arch/arm/boot/dts/overlays"
    
  • KERNEL_DEVICETREE中写错为mydst.dtb,需和源文件名对应:
    # 普通设备树
    KERNEL_DEVICETREE += "my.dtb"
    # 如果是overlay,改为以下格式
    KERNEL_DEVICETREE += "overlays/my.dtbo"
    

3. 修正FILESEXTRAPATHS路径

DTS文件放在linux-raspberrypi/raspberrypi4-64/目录下,需要让Yocto能找到这个路径,修改为:

FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}/${MACHINE}:"

4. 确认meta-mydts层已添加到构建配置

检查build/conf/bblayers.conf,确保包含meta-mydts层:

BBLAYERS ?= " \
  ${TOPDIR}/meta-main-layer \
  ${TOPDIR}/meta-raspberrypi \
  ${TOPDIR}/meta-mydts \
  # 其他已有层... \
"

5. 清理缓存后重新构建

执行以下命令清理内核构建缓存,再重新构建镜像:

bitbake -c clean linux-raspberrypi
bitbake your-image-name

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 16:22:46