2
votes

exception lors de l'exécution de bitbake

mes premiers pas dans BitBake en utilisant ce guide , la configuration fonctionne bien jusqu'au moment où je lance bitbake world , où j'obtiens ceci -

bitbake --version
BitBake Build Tool Core version 1.40.0

et oui - j'ai extrait le dernier BitBake de github:

    WARNING: python should use 4 spaces indentation, but found tabs in base.bbclass, line 41
....
    WARNING: python should use 4 spaces indentation, but found tabs in base.bbclass, line 64
    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/ubuntu/bitbake/lib/bb/runqueue.py", line 1508, in RunQueue.execute_runqueue():
                 try:
        >            return self._execute_runqueue()
                 except bb.runqueue.TaskFailure:
      File "/home/ubuntu/bitbake/lib/bb/runqueue.py", line 1428, 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/ubuntu/bitbake/lib/bb/runqueue.py", line 1164, in RunQueueData.prepare():
                             todeal.remove(tid)
        >                    self.prepare_task_hash(tid)

      File "/home/ubuntu/bitbake/lib/bb/runqueue.py", line 1177, in RunQueueData.prepare_task_hash(tid='/home/ubuntu/Poky/poky/meta-tutorial/recipes-tutorial/first/first_0.1.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/ubuntu/bitbake/lib/bb/siggen.py", line 45, in SignatureGenerator.get_unihash(task='/home/ubuntu/Poky/poky/meta-tutorial/recipes-tutorial/first/first_0.1.bb.do_build'):
             def get_unihash(self, task):
        >        return self.taskhash[task]

    KeyError: '/home/ubuntu/Poky/poky/meta-tutorial/recipes-tutorial/first/first_0.1.bb.do_build'


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

qu'est-ce qui ne va pas avec mon code python?


0 commentaires

3 Réponses :


0
votes

Le code du tutoriel est cassé. Le bitbake.conf est stocké dans

ch04/build/conf/bitbake.conf 

mais il appartient à

ch04/meta-tutorial/conf/bitbake.conf

Déplacez le fichier là et ça marche

J'ai ouvert un numéro: https: // bitbucket.org/a4z/bitbakeguide/issues/17/bitbakeconf-stored-in-the-wrong-place


3 commentaires

merci, j'ai déplacé le fichier du dossier 'meta-tuturial / conf' vers le dossier 'build / conf', mais j'obtiens toujours le même résultat


Oh, maintenant je me rends compte que l'exception que j'ai eue lors du test était différente :-). Pouvez-vous s'il vous plaît publier le contenu de votre first_0.1.bb?


c'est exactement comme dans l'exemple - a4z.bitbucket.io/docs/BitBake/…



1
votes

Je suis confronté exactement au même problème, je l'ai finalement trouvé à cause de la version de bitbake.

Si vous clonez Bitbake depuis https://github.com/openembedded/bitbake , vous pourrait passer à une première version:

balises git checkout / 1.26.0 -b 1.26.0

Ensuite, le problème a disparu.


0 commentaires

2
votes

https: / /www.yoctoproject.org/docs/2.1/bitbake-user-manual/bitbake-user-manual.html#var-BB_SIGNATURE_HANDLER

Il semble utiliser BB_SIGNATURE_HANDLER noop (par défaut)

Je corrige cette erreur en ajoutant BB_SIGNATURE_HANDLER define dans meta-tutorial / conf / bitbake.conf

BB_SIGNATURE_HANDLER ?= "basichash"


3 commentaires

Résoudre le problème avec BitBake 1.42


@ddidier en utilisant BitBake 1.42 (commit 34ed28a41), je peux toujours reproduire ce problème sans BB_SIGNATURE_HANDLER défini.


Je suis vraiment désolé, je voulais dire que BB_SIGNATURE_HANDLER? = "Basichash" résout le problème avec 1.42 (cela ne fonctionne pas sans lui).