web-dev-qa-db-fra.com

Reconstruction rapide de l’arbre des périphériques uniquement avec Yocto/bitbake?

Ainsi, chaque fois que je modifie l’arborescence de périphériques, je modifie généralement les dts dans une recette personnalisée et reconstruit l’image. La reconstruction prend beaucoup de temps car elle reconstruit le noyau entier. L'image doit ensuite être construite et finalement déployée sur le périphérique cible.

Y a-t-il une astuce qui me manque qui reconstruit uniquement l'arborescence des périphériques?

METTRE À JOUR:

J'ai marqué la réponse de g0hl1n comme étant la bonne, car c'est la réponse à ma question. Cependant, j’ai trouvé très fastidieux de travailler avec le noyau dans Yocto: chemins étranges et longs et risque d’écrasement des fichiers à chaque reconstruction, source du noyau dans tmp/work-shared pendant la construction du noyau dans tmp/work .

Au lieu de cela, j'ai déplacé le développement du noyau hors de Yocto. Yocto possède de bons outils pour créer un SDK (voir la tâche populate_sdk). Il est ainsi facile de configurer un environnement pour le développement du noyau avec des reconstructions rapides et des déploiements manuels (ou scriptés). Une fois le travail terminé, les modifications peuvent être déplacées dans une recette à l’aide de git diff.

Les instructions sur la page suivante ont été très utiles: http://jumpnowtek.com/beaglebone/Working-on-the-BeagleBone-kernel.html

14
Jonatan

Autant que je sache, il y a deux façons différentes de le faire.

  1. Le méthode du noyau: Utilisation des scripts fournis par le noyau

    • Passez au répertoire source de votre noyau (<build dir>/tmp/work/<machine>/<kernel-name>/<kernel-version>/git/)
    • Exécutez le compilateur d'arborescence de périphériques: ./scripts/dtc/dtc -I dts -O dtb -o ./devicetree.dtb path/to/devicetree.dts
  2. Le méthode bitbake} _: Utilisation du travail de déploiement du noyau

    • Appelez $ bitbake <kernel-name> -f -c deploy
    • Le blob de périphérique généré peut alors être trouvé dans <build dir>/tmp/work/<machine>/<kernel-name>/<kernel-version>/build/Arch/arm/boot/dts/)

Au moins pour moi, les deux versions ont fonctionné lors d'un test rapide.

UPDATE: Je viens juste de terminer une troisième version de la construction du dtb avec yocto sur le réseau . Celle-ci utilise la version devshell de yocto du noyau . Pour plus d'informations, reportez-vous à la page de l'auteur original. at https://splefty.blogspot.co.at/2015/09/compiling-device-tree-using-yocto.html .

12
g0hl1n

Pour moi, utiliser bitbake pour régénérer l’arborescence de périphériques fonctionnait de la manière suivante:

Commande: $ bitbake <kernel-name> -f -c compile

Exemple: $ bitbake linux-fslc -f -c compile

Testé avec le yocto sumo.

1
Tobias Braune