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

在Yocto中为树莓派镜像应用RT补丁时遭遇linux-yocto_4.12.bbappend配方不可用错误的求助

解决Yocto中树莓派内核RT补丁应用失败的方案

先拆解你遇到的核心问题

你看到的ERROR: No recipes available for: ... linux-yocto_4.12.bbappend错误,本质是两个关键失误:

  1. BBappend文件名不匹配:树莓派在Yocto环境中使用的内核Recipe是linux-raspberrypi,而非linux-yocto,你写的bbappend对应了错误的内核包,Yocto找不到匹配的Recipe文件。
  2. 内核版本完全不兼容:你下载的是5.4.70版本的RT补丁,但bbappend指向了4.12版本的内核,跨大版本的补丁根本无法适配。

下面是一步步的修复方案:


步骤1:修正BBappend文件名

首先确认当前Yocto环境中树莓派内核的Recipe版本:

  • 打开meta-raspberrypi/recipes-kernel/linux/目录,你会看到类似linux-raspberrypi_5.4.bb的文件(对应你参考的Dunfell 3.1.20版本分支)。
  • 在你的自定义层meta-mylayer/recipes-kernel/linux/目录下,创建(或重命名原文件)为linux-raspberrypi_%.bbappend(%是通配符,适配所有5.4.x版本的树莓派内核),或者精确命名为linux-raspberrypi_5.4.bbappend。

步骤2:调整补丁存放路径

把你下载解压好的patch-5.4.70-rt40.patch移动到:
yocto/meta-mylayer/recipes-kernel/linux/linux-raspberrypi/
(路径要和bbappend对应的Recipe名称linux-raspberrypi一致,这样FILESEXTRAPATHS才能正确定位到补丁)

步骤3:修正BBappend内容

编辑新的linux-raspberrypi_%.bbappend文件,写入以下内容:

FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI_append = " file://patch-5.4.70-rt40.patch"

注意:SRC_URI_append后面要加空格,确保补丁路径被正确解析。

步骤4:验证补丁与内核版本匹配

确认你的树莓派内核基线版本是5.4.70:

  • 执行bitbake linux-raspberrypi -e | grep "^PV"查看内核版本号,如果不是5.4.70,需要下载对应内核版本的RT补丁(比如内核是5.4.80,就找对应rt版本的补丁)。

步骤5:清理缓存并重新构建

先清理之前的内核构建缓存,避免旧内容干扰:

bitbake -c cleanall linux-raspberrypi
bitbake -c cleansstate linux-raspberrypi

然后重新构建镜像:

bitbake core-image-base

额外检查点

  • 确保你的meta-mylayer已经正确添加到build/conf/bblayers.conf中,Yocto才能扫描到这个自定义层的bbappend。
  • 如果补丁打失败,可以通过bitbake linux-raspberrypi -c patch -v查看补丁过程的详细日志,排查补丁格式或路径问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 12:59:05