Bitbake版本1.43.0是否损坏?它无法在yocot页上成功运行helloworld演示

时间:2019-07-04 21:30:40

标签: embedded-linux yocto bitbake

Bitbake 1.43.0版不能像bitbake用户手册所示的helloworld演示一样工作。

我跳回到了bitbake版本1.23.0,它运行良好。 但是,我无法在最新版本上使用它。 ....

base.bbclass

`addtask build'

.bblayer.conf

BBLAYERS ?= " \
    /home/bubba/mylayer/ \
    "

bitbake.conf

TMPDIR  = "${TOPDIR}/tmp"
CACHE   = "${TMPDIR}/cache"
STAMP   = "${TMPDIR}/stamps"
T       = "${TMPDIR}/work"
B       = "${TMPDIR}"

printhello.bb 它位于另一个名为mylayer的目录中

DESCRIPTION = "Prints Hello World"
PN = 'printhello'
PV = '1'

python do_build() {
    bb.plain("********************");
    bb.plain("*                  *");
    bb.plain("*  Hello, World!   *");
    bb.plain("*                  *");
    bb.plain("********************");
}

layer.conf 该文件位于mylayer / conf目录中

BBPATH .= ":${LAYERDIR}"

BBFILES += "${LAYERDIR}/*.bb"

BBFILE_COLLECTIONS += "mylayer"
BBFILE_PATTERN_mylayer := "^${LAYERDIR_RE}/"

我执行bitbake printhello后打印的错误

bubba@bubbaMini:~/hello$ bitbake printhello
WARNING: Layer mylayer should set LAYERSERIES_COMPAT_mylayer in its conf/layer.conf file to list the core layer names it is compatible with.
WARNING: Layer mylayer should set LAYERSERIES_COMPAT_mylayer in its conf/layer.conf file to list the core layer names it is compatible with.
Parsing recipes: 100% |######################################################################################################################################################################| Time: 0:00:00
Parsing of 1 .bb files complete (0 cached, 1 parsed). 1 targets, 0 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
ERROR: An uncaught exception occurred in runqueue################################################                                                                                            | ETA:  0:00:00
Traceback (most recent call last):
  File "/home/bubba/bitbake/lib/bb/runqueue.py", line 1500, in RunQueue.execute_runqueue():
             try:
    >            return self._execute_runqueue()
             except bb.runqueue.TaskFailure:
  File "/home/bubba/bitbake/lib/bb/runqueue.py", line 1420, in RunQueue._execute_runqueue():
                                                                 [43, 967, 4, 3, 1, 5, 3, 7, 13, 1, 2, 1, 1, 246, 35, 1, 38, 1, 35, 2, 338, 204, 142, 3, 3, 37, 244])
    >            if self.rqdata.prepare() == 0:
                     self.state = runQueueComplete
  File "/home/bubba/bitbake/lib/bb/runqueue.py", line 1156, in RunQueueData.prepare():
                         todeal.remove(tid)
    >                    self.prepare_task_hash(tid)

  File "/home/bubba/bitbake/lib/bb/runqueue.py", line 1169, in RunQueueData.prepare_task_hash(tid='/home/bubba/mylayer/printhello.bb:do_build'):
             self.runtaskentries[tid].hash = bb.parse.siggen.get_taskhash(taskfn, taskname, procdep, self.dataCaches[mc])
    >        self.runtaskentries[tid].unihash = bb.parse.siggen.get_unihash(taskfn + "." + taskname)

  File "/home/bubba/bitbake/lib/bb/siggen.py", line 49, in SignatureGenerator.get_unihash(task='/home/bubba/mylayer/printhello.bb.do_build'):
         def get_unihash(self, task):
    >        return self.taskhash[task]

KeyError: '/home/bubba/mylayer/printhello.bb.do_build'

ERROR: Running idle function
Traceback (most recent call last):
  File "/home/bubba/bitbake/lib/bb/runqueue.py", line 1500, in RunQueue.execute_runqueue():
             try:
    >            return self._execute_runqueue()
             except bb.runqueue.TaskFailure:
  File "/home/bubba/bitbake/lib/bb/runqueue.py", line 1420, in RunQueue._execute_runqueue():
                                                                 [43, 967, 4, 3, 1, 5, 3, 7, 13, 1, 2, 1, 1, 246, 35, 1, 38, 1, 35, 2, 338, 204, 142, 3, 3, 37, 244])
    >            if self.rqdata.prepare() == 0:
                     self.state = runQueueComplete
  File "/home/bubba/bitbake/lib/bb/runqueue.py", line 1156, in RunQueueData.prepare():
                         todeal.remove(tid)
    >                    self.prepare_task_hash(tid)

  File "/home/bubba/bitbake/lib/bb/runqueue.py", line 1169, in RunQueueData.prepare_task_hash(tid='/home/bubba/mylayer/printhello.bb:do_build'):
             self.runtaskentries[tid].hash = bb.parse.siggen.get_taskhash(taskfn, taskname, procdep, self.dataCaches[mc])
    >        self.runtaskentries[tid].unihash = bb.parse.siggen.get_unihash(taskfn + "." + taskname)

  File "/home/bubba/bitbake/lib/bb/siggen.py", line 49, in SignatureGenerator.get_unihash(task='/home/bubba/mylayer/printhello.bb.do_build'):
         def get_unihash(self, task):
    >        return self.taskhash[task]

KeyError: '/home/bubba/mylayer/printhello.bb.do_build'


Summary: There were 2 WARNING messages shown.
Summary: There were 2 ERROR messages shown, returning a non-zero exit code.

....

我不确定为什么它在一个版本而不是另一个版本上失败。 如果有人能解释我做错了什么或我错过了哪一步,那么

1 个答案:

答案 0 :(得分:0)

当bitbake没有正确设置目录路径时,此错误。

在linux上,运行export PATH=/path-to-bitbake-bin:$PATH