2013-10-31 153 views
3

我在openembedded环境中运行bitbake,我认为它缺少99%的配方文件。我已经编辑我的conf目录下的local.conf档案,它有行:Bitbake没有找到食谱

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不再完全匹配。

回答

1

我发现有一个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" 

我忘记了可以追加+ =。

2

我最近有一个类似的问题。我添加了一个配方,并收到以下错误。在指出潜在的问题时,不是用来描述性的。
我已经加入到IMAGE_INSTALL_append = “的maXTouch”

[email protected]:~/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 \ "

我创造了一个新的目录结构,并通过这样一个额外的目录水平 我在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 

最近。 即不知道我是否让我的追加文件运行。 (mispelled bbapend) 因此,发现它对调试有帮助 编辑recipexx.bbappend添加一个变量或搜索已经在追加中的变量。

MYVAR = “MyAppend”

bitbake的层示出,追加| grep的MYVAR

或...

-v bitbake的-c recipexx建立-f -D | grep MYVAR