我遇到的问题是,我试图使用bitbake从头开始构建Angstrom镜像(因为Angstrom现在与Yocto兼容),但我在运行bitbake systemd-image时遇到了错误
Traceback (most recent call last):
File "/usr/bin/bitbake", line 234, in <module>
ret = main()
File "/usr/bin/bitbake", line 197, in main
server = ProcessServer(server_channel, event_queue, configuration)
File "/usr/lib/pymodules/python2.7/bb/server/process.py", line 78, in __init__
self.cooker = BBCooker(configuration, self.register_idle_function)
File "/usr/lib/pymodules/python2.7/bb/cooker.py", line 76, in __init__
self.parseConfigurationFiles(self.configuration.file)
File "/usr/lib/pymodules/python2.7/bb/cooker.py", line 510, in parseConfigurationFiles
data = _parse(os.path.join("conf", "bitbake.conf"), data)
TypeError: getVar() takes exactly 3 arguments (2 given)
ERROR: Error evaluating '${TARGET_OS}:${TRANSLATED_TARGET_ARCH}:build-${BUILD_OS}:pn-${PN}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}:${CLASSOVERRIDE}:forcevariable${@bb.utils.contains("TUNE_FEATURES", "thumb", ":thumb", "", d)}${@bb.utils.contains("TUNE_FEATURES", "no-thumb-interwork", ":thumb-interwork", "", d)}'
Traceback (most recent call last):
File "/usr/lib/pymodules/python2.7/bb/data_smart.py", line 116, in expandWithRefs
s = __expand_var_regexp__.sub(varparse.var_sub, s)
File "/usr/lib/pymodules/python2.7/bb/data_smart.py", line 60, in var_sub
var = self.d.getVar(key, 1)
File "/usr/lib/pymodules/python2.7/bb/data_smart.py", line 260, in getVar
return self.expand(value, var)
File "/usr/lib/pymodules/python2.7/bb/data_smart.py", line 132, in expand
return self.expandWithRefs(s, varname).value
File "/usr/lib/pymodules/python2.7/bb/data_smart.py", line 117, in expandWithRefs
s = __expand_python_regexp__.sub(varparse.python_sub, s)
TypeError: getVar() takes exactly 3 arguments (2 given)
ERROR: Error evaluating '${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE'),d)[0] or 'defaultpkgname'}'
Traceback (most recent call last):
File "/usr/lib/pymodules/python2.7/bb/data_smart.py", line 117, in expandWithRefs
s = __expand_python_regexp__.sub(varparse.python_sub, s)
File "/usr/lib/pymodules/python2.7/bb/data_smart.py", line 76, in python_sub
value = utils.better_eval(codeobj, DataContext(self.d))
File "/usr/lib/pymodules/python2.7/bb/utils.py", line 387, in better_eval
return eval(source, _context, locals)
File "PN", line 1, in <module>
TypeError: getVar() takes exactly 3 arguments (2 given)我做这个已经有一段时间了,在不同的网站上搜索。最初,我尝试遵循Angstrom站点上的开发人员部分的指南,但一旦我遇到一些错误(在此之前,我将其放在这里),我找到了Derek Molloy的站点http://derekmolloy.ie/building-angstrom-for-beaglebone-from-source/,它解决了这些错误,并给出了这个过程的更多细节。
最终,我偶然发现了另一个论坛帖子,它描述了我的问题,但不幸的是,答案并不是真的很清楚(至少对我来说) http://comments.gmane.org/gmane.linux.distributions.angstrom.devel/7431。我不知道哪里可能是错的,而且我对Yocto项目还很陌生,所以我不确定是否有什么步骤遗漏了,或者有什么我忽略了的隐含的东西,所以我非常感谢任何人能在这方面给我指出正确的方向。
作为附注,我一直在想,这可能与环境有关-angstrom-...我有一个文件,因为我的是environment-angstrom-v2013.12,而所有其他的例子都使用以前的版本,我想知道在使用这个文件时是否涉及到新的步骤。
发布于 2014-11-22 05:14:03
你为什么要使用系统范围的bitbake,而不是与Angstrom版本兼容的bitbake?
发布于 2016-02-05 01:15:58
不要使用系统范围的bitbake,因为bitbake API可以并且确实会随着时间的推移而改变。使用对应的bitbake来释放angstrom。
(这是错误的,因为您的bitbake需要getVar接受三个参数,而您的angstrom层只传递了两个)
https://stackoverflow.com/questions/27069624
复制相似问题