2017-02-17 2 views
0

J'ai deux images différentes qui utilisent beaucoup de paquets communs. L'un d'eux est le wpa-supplicant, qui fournit un fichier wpa_supplicant.conf installé par la recette par défaut. Cependant, je veux que mon propre wpa_supplicant.conf soit installé.Bitbake: modifier un bbappend en fonction de l'image compilée

Je l'ai résolu en ayant un .bbappend dans ma couche. Mais maintenant je veux seulement que cette appendice soit appliquée quand je compile l'une des images, mais pas l'autre. En bref: est-il possible d'activer/désactiver un .bbappend en fonction de l'image compilée?

NOTES:

  • j'ai vu this answer qui est similaire, mais la création d'un nouveau package qui installent mon dossier ne fonctionne pas: beaucoup de paquets vont essayer d'installer le même fichier et retourne bitbake erreur.

    • L'erreur est ici que je ne peux pas installer le même fichier à partir de deux paquets différents, c'est pourquoi ce n'est pas une copie de l'OMI this question.

Merci!

+0

Copie possible de [Utilisation de bitbake est-il possible d'avoir un do \ _install différent pour un paquet basé sur l'image cible?] (Http: // stackoverflow.com/questions/33288622/using-bitbake-is-it-possible-d'-avoir-un-différent-faire-installer-pour-un-paquet-basé) – Anders

+0

@Anders je fais référence à cette question dans ma réponse. C'est similaire, mais le problème fondamental que je suis est différent (je ne peux pas avoir deux paquets installant le même fichier), c'est pourquoi je pose des questions sur la possibilité .bbappend. –

+0

Eh bien, la question était la même, à savoir une seule machine. Sa propre réponse est différente, car il a utilisé deux machines. – Anders

Répondre

2

Eh bien, comme indiqué dans la réponse à laquelle vous liez, vous ne pouvez pas influencer l'image par d'autres recettes. La raison en est que chaque recette est construite indépendamment de l'image que vous construisez.

Les différentes images sont-elles destinées à être installées sur le même MACHINE? Sinon, vous pourriez avoir différents wpa_supplicant.conf pour chaque MACHINE.

Pour la même MACHINE:

  • L'utilisation ROOTFS_POSTPROCESS_COMMAND est une façon de résoudre ce
  • Ajouter les wpa_supplicant.conf -files (avec des noms différents) andadd un script pkg_post_inst_${PN}(){xxx} à votre wpa-supplicant, que pendant le temps rootfs-création , détecte quelle image est en cours de création et sélectionne le correctif wpa_supplicant.conf.
  • Une autre solution consiste à supprimer wpa_supplicant.conf du package wpa-supplicant dans votre bbappend. Créez deux nouveaux packages wpa-supplicant-conf1 et wpa-supplicant-conf2, qui inclut uniquement les wpa_supplicant.conf respectifs. Ces deux devraient idéalement avoir une

wpa-supplicant-conf1:

RCONFLICTS_${PN} = "wpa-supplicant-conf2" 

et wpa-supplicant-conf2

RCONFLICTS_${PN} = "wpa-supplicant-conf1" 

dans leurs recettes.

+0

Merci pour la réponse, le type de machine est le même, physiquement il y aura deux conseils différents. Je vais enquêter plus avant car je ne connais pas 'ROOTFS_POSTPROCESS_COMMAND' ni' pkg_post_inst _ $ {PN} '. En ce qui concerne la troisième solution: comment supprimer un fichier avec un '.bbappend'? Suppression avec 'do_install_append()?' –

+1

Oui, un 'rm' dans' do_install_append() 'fonctionne parfaitement. – Anders