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

4

2 回答 2

4

我发现有一个属于不同层的 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"

我忘记了可以附加+=。

于 2013-10-31T19:32:04.140 回答
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 \ "

我创建了一个新的目录结构,并通过这样做一个额外的目录级别,我在 meta-methode/recipes-core/touch/atmel 中添加了一个未找到的配方解决方案将目录级别添加到 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)因此,发现它有助于调试 Edit recipexx.bbappend 添加一个变量或搜索一个已经在附加中的 var。

MYVAR = "我的附加"

bitbake-layers 显示附加 | grep MYVAR

或者...

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

于 2015-08-11T20:03:59.143 回答