web-dev-qa-db-fra.com

Comment compiler les fichiers sources de l'arborescence des périphériques dts Linux en dtb?

J'ai un fichier d'arborescence de périphériques (.dts) et je veux compiler le fichier pour ma carte basée sur powerpc.

Comment puis-je le faire sur ma machine, qui n'est pas basée sur powerpc ?? Puis-je le faire avec le DTC installé sur mon système Ubuntu? Ou sera-ce plus comme utiliser un compilateur séparé et transmettre des informations Arch (comme utiliser une chaîne d'outils)?

33
mdsingh

Les arborescences de périphériques n'ont pas besoin d'être compilées avec des outils "sensibles à l'architecture". Le compilateur dtc sur votre machine ubuntu est probablement suffisamment à jour pour compiler l'arborescence de votre appareil. Ou vous pouvez télécharger la dernière source et la compiler vous-même. Le compilateur dtc peut être trouvé ici:

https://git.kernel.org/pub/scm/utils/dtc/dtc.git

Ce package contient de bons documents qui vous aideront à mieux comprendre les arborescences de périphériques en général.

Il est assez facile de compiler (et de démonter) les arborescences de périphériques. Par exemple

$ dtc -O dtb -o p4080ds.dtb p4080ds.dts

Pour obtenir l'arborescence des périphériques sous forme de texte à partir du blob de l'arborescence des périphériques, procédez comme suit:

$ dtc -I dtb -O dts p4080ds.dtb

J'espère que cela t'aides!

38
challinan

make dtbs

Faire cela à partir de l'arborescence du noyau est une autre façon courante de les compiler, car l'emplacement standard pour placer les dts est sous l'arborescence du noyau dans les répertoires de la forme ./Arch/<Arch>/boot/dts/.

Cela finit par appeler dtc, mais pourrait mieux fonctionner car les inclusions potentielles seront au bon endroit.

les fichiers dtb sont placés dans le même répertoire que les dts.

  • dtc peut être installé par cette commande sur linux:

    Sudo apt-get install device-tree-compiler

  • vous pouvez compilerdts ou dtsi fichiers par cette commande:

    dtc -I dts -O dtb -o devicetree_file_name.dtb devicetree_file_name.dts

  • vous pouvez convertirdts en dtb par cette commande:

    dtc -I dts -O dtb -f devicetree_file_name.dts -o devicetree_file_name.dtb

  • vous pouvez convertirdtb en dts par cette commande:

    dtc -I dtb -O dts -f devicetree_file_name.dtb -o devicetree_file_name.dts

12
Mojtaba Ahmadi