我在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完全匹配。
答案 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