我正在尝试使用自定义源代码(LinuxKernel3.16)使用Yocto创建一个映像。当我尝试运行“bitbake mycustomrecipe”时,会收到如下警告和错误:

WARNING: Unable to get checksum for myCustomRecipe SRC_URI entry defconfig: file could not be found

我还有其他一些警告/错误,但我相信这些都是由于上述警告而自然发生的。我的图层结构如下:
meta-mytestLayer
|
+--conf/
|  |
|  +--layer.conf
|
+--recipes-kernel/
   |
   +--linux/
      |
      +--myCustomRecipe_3.16/
      |  |
      |  +--defconfig
      |
      +--myCustomRecipe_3.16.bb

如您所见,mycustomrecipe_3.16/目录中有一个defconfig文件。为什么找不到这个?这个文件结构与我在几个教程(如this document的lab three)中看到的文件结构非常相似。我的layer.config如下所示:
BBPATH .= ":${LAYERDIR}"

BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
    ${LAYERDIR}/recipes-*/*/*.bbappend"

BBFILE_COLLECTIONS += "myTestLayer"
BBFILE_PATTERN_myTestLayer = "^${LAYERDIR}/"
BBFILE_PRIORITY_myTestLayer = "6"

我的食谱是这样的:
inherit kernel
require recipes-kernel/linux/linux-yocto.inc

SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git;protocol=git;nocheckout=1;name=machine"
SRC_URI += "file://defconfig"

LINUX_VERSION ?= "3.16"
LINUX_VERSION_EXTENSION ?= ""

SRCREV_machine="f14680f1692a9ec2a5b1b716a7a0c03dd391106f"

PR = "r1"
PV = "${LINUX_VERSION}+git${SRCPV}"

COMPATIBLE_MACHINE = "qemux86"

我是一个新手,正在看一些实验室/参考手册/教程,但没有发现任何与这个具体问题相关的东西。我主要使用前面提供的链接,并使用yocto项目linux内核开发手册的this section

最佳答案

您的defconfig文件位于名为myCustomRecipe_3.16/的目录中,而openembedded将在名为以下任一项的目录(1)中查找该文件:
myCustomRecipe-3.16/
myCustomRecipe/
files/
注意“-”而不是“\
如果查看失败配方的log.do_unpack,您将看到在哪些目录中搜索了您的defconfig。
(1)好吧,这只是故事的一部分。这三个目录将附加所有OVERRIDES的目录。

10-08 05:38