Bitbake没有找到食谱

时间:2013-10-31 19:19:53

标签: openembedded bitbake

我在openembedded环境中运行bitbake,我认为它丢失了99%的配方文件。我在conf目录中编辑了local.conf文件,它有一行:

BBFILES := "/blah/blah/blah/rootfs/openembedded/recipes/*/*.bb"

如果我用以下方式检查该路径:

ls -l /blah/blah/blah/rootfs/openembedded/recipes/*/*.bb

我看到了大量的bb文件。

认为给出了我需要做的所有文档,但是当我运行bitbake时,我收到以下错误:

bitbake base-image
NOTE: Handling BitBake files: \ (0015/0015) [100 %]
Parsing of 15 .bb files complete (14 cached, 1 parsed). 15 targets, 0 skipped, 0 masked, 0 errors.
ERROR: Nothing PROVIDES 'base-image'

Build Configuration:
BB_VERSION        = "1.10.2"
METADATA_BRANCH   = "<unknown>"
METADATA_REVISION = "8c6a371"
TARGET_ARCH       = "arm"
TARGET_OS         = "linux-gnueabi"
MACHINE           = "at91sam9x5ek"
DISTRO            = "angstrom"
DISTRO_VERSION    = "v20131031"
TARGET_FPU        = "soft"

Unknown Event: <bb.event.NoProvider instance at 0x1b70a28>
ERROR: Nothing PROVIDES 'base-image'
Command execution failed: Traceback (most recent call last):
  File "/home/max/workspace/tacbio/tacbio-kernel-2_6_39/rootfs/openembedded/bitbake/lib/bb/command.py", line 88, in runAsyncCommand
commandmethod(self.cmds_async, self, options)
  File "/home/max/workspace/tacbio/tacbio-kernel-2_6_39/rootfs/openembedded/bitbake/lib/bb/command.py", line 174, in buildTargets
command.cooker.buildTargets(pkgs_to_build, task)
  File "/home/max/workspace/tacbio/tacbio-kernel-2_6_39/rootfs/openembedded/bitbake/lib/bb/cooker.py", line 782, in buildTargets
taskdata.add_provider(localdata, self.status, k)
  File "/home/max/workspace/tacbio/tacbio-kernel-2_6_39/rootfs/openembedded/bitbake/lib/bb/taskdata.py", line 354, in add_provider
self.add_provider_internal(cfgData, dataCache, item)
  File "/home/max/workspace/tacbio/tacbio-kernel-2_6_39/rootfs/openembedded/bitbake/lib/bb/taskdata.py", line 383, in add_provider_internal
raise bb.providers.NoProvider(item)
NoProvider: base-image

所以,路径似乎没有错,我有数百个bb文件,但bitbake只看到15个食谱。知道我错过了什么吗?不幸的是,我的特定电路板附带的文档已经过时了几年,因此不再与OE或Yocto完全匹配。

2 个答案:

答案 0 :(得分:2)

我发现有一个属于不同层的local.conf覆盖了我的BBFILES变量。我修好了路径并解决了这个问题。

不确定它是否对任何人都有用,但为了让我的食谱从多个层一起工作,我的BBFILES系列就像这样。

 BBFILES := "${HOME}/workspace/tacbio/tacbio-kernel-2_6_39/rootfs/openembedded/recipes/*/*.bb"
 BBFILES += "${HOME}/workspace/tacbio/tacbio-kernel-2_6_39/rootfs/openembedded/oe_at91sam/recipes/*/*.bb"

我忘记了可以附加+ =。

答案 1 :(得分:2)

我最近遇到了类似的问题。我添加了一个食谱并收到以下错误。在指出潜在问题时没有特别描述性。
我已添加到IMAGE_INSTALL_append =“maxtouch”

wwright@sammy:~/dev/prod/angstrom$ bb -v atmel-maxtouch -c fetch NOTE: Started PRServer with DBfile: /home/wwright/dev/prod/angstrom/cache/prserv.sqlite3, IP: 127.0.0.1, PORT: 58436, PID: 37407 Loading cache: 100% |######################################################################################| ETA: 00:00:00 Loaded 2723 entries from dependency cache. WARNING: No recipes available for: /home/wwright/dev/prod/angstrom/sources/meta-angstrom/recipes-tweaks/openjdk/openjdk-7_%.bbappend ***ERROR: Nothing PROVIDES 'maxtouch'***

我的layer.conf文件

# We have recipes-* directories, add to BBFILES BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ ${LAYERDIR}/recipes-*/*/*.bbappend \ "

我创建了一个新的dir结构,并通过这样做增加了一个dir级别 我在meta-methode / recipes-core / touch / atmel中添加了一个未找到的配方。该解决方案将dir级别添加到BBFILES var。

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

meta-methode/recipes-core
├── base-files
│   ├── base-files_3.0.%.bbappend
│   └── files
│       └── display-settings.sh
├── init-ifupdown
│   ├── files
│   │   └── interfaces
│   └── init-ifupdown_%.bbappend
├── systemd
│   ├── files
│   ├── systemd-serialgetty.bbappend
│   └── systemd-serialgetty.bb.save
├── touchscreen
│   └── atmel
│       └── maxtouch_1.23.bb
└── util-linux
    └── util-linux_2.%.bbappend

最近。 即无法判断我是否正在运行我的附加文件。 (错误的bbapend) 所以,发现它有助于调试 编辑recipexx.bbappend添加一个变量或搜索已附加的var。

MYVAR =“MyAppend”

bitbake-layers show-appends | grep MYVAR

...或

bitbake -v recipexx -c build -f -D | grep MYVAR