Bitbake找不到配方

4

我正在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个回答

4

原来有一个属于不同层的local.conf覆盖了我的BBFILES变量。我修复了路径,问题得到了解决。

不确定对任何人是否有用,但要让我的多个层次的recipes一起工作,我的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"

我曾经忘记了可以使用 += 来追加内容。


2

我最近遇到了类似的问题。我添加了一个配方,但是出现了以下错误。这些错误并不能完全指出潜在的问题所在。
我添加了“maxtouch”到“IMAGE_INSTALL_append”中。

wwright@sammy:~/dev/prod/angstrom$ bb -v atmel-maxtouch -c fetch 注意:使用DB文件启动PRServer:/home/wwright/dev/prod/angstrom/cache/prserv.sqlite3,IP:127.0.0.1,端口:58436,PID:37407 正在加载缓存:100% |######################################################################################| ETA: 00:00:00 从依赖关系缓存中加载了2723个条目。 警告:无可用的配方: /home/wwright/dev/prod/angstrom/sources/meta-angstrom/recipes-tweaks/openjdk/openjdk-7_%.bbappend ***ERROR: Nothing PROVIDES 'maxtouch'***

我的layer.conf文件

#我们有recipes-*目录,将其添加到BBFILES BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ ${LAYERDIR}/recipes-*/*/*.bbappend \ "

我创建了一个新的目录结构,并因此多了一个目录级别,在meta-methode/recipes-core/touch/atmel中添加了一个配方,但并未找到。解决方法是将目录级别添加到BBFILES变量中。

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

最近遇到一个问题,我无法确定我的Append文件是否运行。 (bbapend 拼写错误) 因此,我发现对于调试很有帮助。

编辑 recipexx.bbappend 添加一个变量或搜索已经存在于 append 中的变量。

MYVAR = "MyAppend"

bitbake-layers show-appends | grep MYVAR

或者...

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接