2013-10-31 152 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