dtc-1.7.2

Introduction à Dtc

Le paquet dtc contient le compilateur d'arbre de périphériques pour travailler avec des fichiers sources et binaires d'arborescence de périphériques ainsi que libfdt, une bibliothèque auxiliaire pour lire et manipuler des arbres de périphériques au format binaire.

Ce paquet est connu pour pouvoir être construit et fonctionner correctement avec une plateform 12.3.

Informations sur le paquet

  • Téléchargement (HTTP) : https://kernel.org/pub/software/utils/dtc/dtc-1.7.2.tar.xz

  • Somme de contrôle MD5 du téléchargement : 0f193be84172556027da22d4fe3464e0

  • Taille du téléchargement : 168 Ko

  • Estimation de l'espace disque requis : 13 Mo (avec les tests)

  • Estimation du temps de construction : 0,2 SBU (avec les tests)

Dépendances de Dtc

Facultatives

libyaml-0.2.5, SWIG-4.3.0 et texlive-20240312

Installation de Dtc

Installez dtc en exécutant les commandes suivantes :

mkdir build &&
cd    build &&

meson setup --prefix=/usr         \
            --buildtype=release   \
            -D python=disabled .. &&
ninja

Pour tester les résultats lancez : CC='gcc -Wl,-z,noexecstack' meson test -v.

Maintenant, en tant qu'utilisateur root :

ninja install

Toujours en tant qu'utilisateur root, supprimez la bibliothèque statique inutile :

rm /usr/lib/libfdt.a

Si vous avez installé texlive-20240312, vous pouvez construire la documentation au format PDF en exécutant la commande suivante :

pushd ../Documentation
  latexmk -bibtex --pdf dtc-paper &&
  latexmk -bibtex --pdf dtc-paper -c
popd

Pour installer la documentation, en tant qu'utilisateur root, exécutez la commande suivante :

cp -R ../Documentation -T /usr/share/doc/dtc-1.7.2

Si vous avez installé SWIG-4.3.0 et souhaitez installer les liaisons Python 3 de ce paquet, construisez le module Python 3 :

pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir ..

En tant qu'utilisateur root, installez le module Python 3 :

pip3 install --no-index --find-links dist --no-user libfdt

Explication des commandes

--buildtype=release : spécifie le type de construction convenant aux versions stables de ce paquet, comme la valeur par défaut produit des binaires non optimisés.

-D python=disabled : ce paramètre évite de construire les liaisons Python 3 avec la méthode obsolète (exécuter setup.py directement). Nous construisons les liaisons Python 3 avec la commande pip3 wheel séparément si nécessaire.

CC='gcc -Wl,-z,noexecstack' : cette variable évite de marquer les bibliothèques partagées dans la suite de tests comme nécessitant une pile exécutable. Glibc 2.41 et supérieur a arrêté de permettre d'utiliser dlopen sur ce type de bibliothèque, donc la suite de tests échouerait. Cependant, ces bibliothèques partagées n'ont pas vraiment besoin d'une pile exécutable, donc nous pouvons utiliser -Wl,-z,noexecstack pour corriger la suite de tests. Il est nécessaire d'utiliser la variable d'environnement CC pour la commande meson test car ces bibliothèques partagées sont construites par un script de tests au lieu du système de construction meson/ninja, et le script de tests ne reconnaît pas d'autres variables d'environnement « communes » comme LDFLAGS.

Contenu

Programmes installés: convert-dtsv0, dtc, dtdiff, fdtdump, fdtget, fdtoverlay et fdtput
Bibliothèque installée: libfdt.so
Répertoire installé: /usr/lib/python3.13/site-packages/libfdt-1.7.2.dist-info et /usr/share/doc/dtc-1.7.2 (optionally)

Descriptions courtes

convert-dtsv0

convertit une source d'arbre de périphériques v0 en une source d'arbre de périphériques v1

dtc

compile une source d'arbre de périphériques (dts) en un blob binaire d'arbre de périphériques (dtb) ou décompile les dtb en dts

dtdiff

compare deux arbres de périphériques différents

fdtdump

affiche un version lisible d'un fichier d'arbre de périphériques à plat

fdtget

lit les valeurs d'un arbre de périphériques

fdtoverlay

applique un certain nombre de couches sur un blob d'arbre de périphériques

fdtput

écrit une valeur de propriété dans un arbre de périphériques

libfdt.so

est une bibliothèque auxiliaire pour lire et manipuler des arbres de périphériques au format binaire