2015-10-22 1 views
0

Я пытаюсь создать изображение с помощью yocto с использованием настраиваемого источника (linux kernel 3.16). При попытке запустить «Bitbake myCustomRecipe», я получаю предупреждение и сообщение об ошибке, как следующее:yocto defconfig не найден

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 

Как вы можете видеть, есть defconfig файл в myCustomRecipe_3.16/директории. Почему это не найдено? Эта файловая структура очень похожа на те, которые я видел в нескольких учебниках (например, в трех лабораториях this document). Моя 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 новичок и смотрю на ряде лабораторий/справочники/учебники, но не нашли ничего, связанного с этой конкретной проблемой. Я в основном работаю с ранее предоставленной ссылкой и используя this section руководства по разработке ядра ядра Yocto Project.

ответ

4

У вас есть defconfig файл в директории под названием myCustomRecipe_3.16/, в то время как OpenEmbedded будет искать файл в каталогах (1) называется либо из:

  • myCustomRecipe-3.16/
  • myCustomRecipe/
  • files/

Обратите внимание на '-' вместо '_'.

Если вы посмотрите на log.do_unpack за свой неудачный рецепт, вы увидите, какие каталоги были найдены для вашего defconfig.

(1) Хорошо, это только часть истории. Эти три каталога будут добавлены вместе с каталогами для всего вашего OVERRIDES.