kar*_*bar 2 linux kernel linux-kernel yocto
我正在尝试使用自定义源(linux 内核 3.16)使用 yocto 创建图像。当我尝试运行“bitbake myCustomRecipe”时,我收到如下警告和错误:
WARNING: Unable to get checksum for myCustomRecipe SRC_URI entry defconfig: file could not be found
Run Code Online (Sandbox Code Playgroud)
我还有其他几个警告/错误,但我相信由于上述警告,这些警告/错误很自然。我的层结构是这样的:
meta-mytestLayer
|
+--conf/
| |
| +--layer.conf
|
+--recipes-kernel/
|
+--linux/
|
+--myCustomRecipe_3.16/
| |
| +--defconfig
|
+--myCustomRecipe_3.16.bb
Run Code Online (Sandbox Code Playgroud)
如您所见,myCustomRecipe_3.16/ 目录中有一个 defconfig 文件。为什么找不到这个?这个文件结构与我在几个教程中看到的非常相似(如本文档的实验三)。我的 layer.config 看起来像这样:
BBPATH .= ":${LAYERDIR}"
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
${LAYERDIR}/recipes-*/*/*.bbappend"
BBFILE_COLLECTIONS += "myTestLayer"
BBFILE_PATTERN_myTestLayer = "^${LAYERDIR}/"
BBFILE_PRIORITY_myTestLayer = "6"
Run Code Online (Sandbox Code Playgroud)
我的食谱是这样的:
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"
Run Code Online (Sandbox Code Playgroud)
我是一个完全的 yocto 新手,正在查看许多实验室/参考手册/教程,但没有找到与此特定问题相关的任何内容。我主要使用我之前提供的链接并使用Yocto Project Linux Kernel Development Manual 的这一部分。
您的defconfig
文件位于名为 的目录中myCustomRecipe_3.16/
,而 OpenEmbedded 将在目录 (1) 中查找名为以下任一项的文件:
myCustomRecipe-3.16/
myCustomRecipe/
files/
注意“-”而不是“_”。
如果您查看log.do_unpack
失败的配方,您将看到为您的 defconfig 搜索了哪些目录。
(1) 嗯,这只是故事的一部分。这三个目录也将附加您所有的目录OVERRIDES
。