0% ont trouvé ce document utile (0 vote)
4 vues5 pages

Guide d'installation du compilateur croisé

Le document décrit l'installation d'un compilateur croisé pour générer des exécutables ARM à partir de programmes source sur une machine hôte. Il couvre également la construction d'une chaîne d'outils de compilation croisée avec Crosstool-NG, ainsi que l'installation d'appels système et de Buildroot pour créer un système d'exploitation minimal pour Raspberry Pi 3. Les commandes nécessaires pour chaque étape sont fournies en détail.

Transféré par

rushtimebb
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues5 pages

Guide d'installation du compilateur croisé

Le document décrit l'installation d'un compilateur croisé pour générer des exécutables ARM à partir de programmes source sur une machine hôte. Il couvre également la construction d'une chaîne d'outils de compilation croisée avec Crosstool-NG, ainsi que l'installation d'appels système et de Buildroot pour créer un système d'exploitation minimal pour Raspberry Pi 3. Les commandes nécessaires pour chaque étape sont fournies en détail.

Transféré par

rushtimebb
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Installation de compilateur croisé

1. Role de compilateur croise

Permet de compiler un programme source sur une machine hôte et de produire un


exécutable pour une machine cible.
2. Commandes utilises
sudo apt-get update

sudo apt-get install build-essential gcc-arm-linux-gnueabihf

gedit hello.c

arm-linux-gnueabihf-gcc hello.c -o helloarm

// compiler le fichier source hello.c en utilisant le compilateur croisé ARM et de


générer un exécutable ARM appelé helloarm. L'exécutable résultant pourra être
exécuté sur une plate-forme ARM cible, telle qu'un système embarqué ou un
microcontrôleur compatible ARM.

sudo apt install qemu-user

// permet d'émuler l'exécution d'applications compilées pour une architecture


spécifique (par exemple, ARM) sur une architecture différente (par exemple, x86). Cela
permet d'exécuter des binaires conçus pour une architecture cible sur un système hôte avec
une architecture différente, sans avoir besoin d'une machine virtuelle complète.

qemu-arm hello
sudo ln -s /usr/arm-linux-gnueabihf/lib/[Link].3 /lib/
// crée un lien symbolique entre le fichier
qemu-arm -L /usr/arm-linux-gnueabihf/ helloarm

// affiche le message hello world


Building a cross-compiling toolchain
1. Rôle
// La chaîne d'outils de compilation croisée comprend
généralement un compilateur, un éditeur de liens, des
bibliothèques et d'autres outils nécessaires à la construction
du logiciel.
3. Commandes utilises
sudo apt install build-essential git autoconf bison flex texinfo help2man gawk libtool-bin
libncurses5-dev unzip

$ git clone [Link]

cd crosstool-ng/

// Crosstool-NG est un outil populaire utilisé pour construire des chaînes d'outils de
compilation croisée.

git checkout 7622b490

// t utilisée pour passer à une version spécifique d'un dépôt Git. L'argument fourni après la
commande "git checkout" est généralement un identifiant de commit, une branche ou une
étiquette.

./bootstrap

// initialiser ou préparer un projet avant de le construire.

./configure --enable-local

// utilisée pour configurer les options de compilation et générer les fichiers de configuration
nécessaires avant de construire le logiciel

sudo apt-get install python3-dev

python3 --version

/ct-ng menuconfig

// pour lancer une interface de configuration basée sur des menus qui permet de
personnaliser la construction de la chaîne d'outils de compilation croisée.

./ct-ng list-samples

//Crosstool-NG affiche une liste des différents exemples de configurations

./ct-ng armv8-rpi3-linux-gnueabihf

// utilisée avec Crosstool-NG pour démarrer la configuration d'une chaîne d'outils de


compilation croisée pour l'architecture ARMv8 destinée à la Raspberry Pi 3

./ct-ng savedefconfig

./ct-ng build

75 ./ct-ng build
Installation system call
1. Rôle

Les appels système permettent aux programmes d'accéder aux fonctionnalités et aux ressources
du système d'exploitation, comme la gestion des fichiers, les opérations d'entrée/sortie, la
gestion des processus, la communication interprocessus, la gestion des signaux, etc.

2. Commandes utilises
sudo apt install gcc build-essential libncurses-dev libssl-dev libelf-dev bison flex -y

// "libssl-dev" : C'est une bibliothèque de développement pour OpenSSL, qui est une
implémentation open source du protocole SSL/TLS. Elle est utilisée pour sécuriser les
communications réseau.

"libelf-dev" : C'est une bibliothèque de développement pour le format de fichier binaire ELF
(Executable and Linkable Format) utilisé par de nombreux systèmes d'exploitation Unix et
Linux. Elle fournit des fonctionnalités pour travailler avec les fichiers ELF.

"bison" : C'est un générateur de parseur utilisé pour analyser la syntaxe de fichiers sources. Il
est souvent utilisé dans le processus de compilation pour générer des analyseurs syntaxiques
pour différents langages de programmation.

"flex" : C'est un générateur de scanner lexical utilisé pour analyser et traiter des fichiers
sources.

sudo apt install dwarves

// commande pour l'analyse et le débogage de fichiers exécutables ELF (Executable and


Linkable Format) et de fichiers de débogage DWARF associés

sudo apt clean && sudo apt autoremove -y

wget -P ~/ [Link]

tar -xvf ~/[Link] -C ~/

cd linux-5.19

uname -a

// version

mkdir helloworld

gedit helloworld/helloworld.c

gedit helloworld/Makefile

gedit Makefile

gedit include/linux/syscalls.h

gedit arch/x86/entry/syscalls/syscall_64.tbl

sudo make menuconfig


gedit .config

sudo gedit .config

nproc

// afficher le nombre de processeurs disponibles sur le système.

sudo make modules_install -j12

// utilisée pour installer les modules du noyau Linux après leur compilation à l'aide de la
commande "make" dans le répertoire source du noyau.

sudo make install -j12

// utilisée pour installer le noyau Linux

sudo update-grub

// mettre à jour le fichier de configuration GRUB (Grand Unified Bootloader). GRUB est un
chargeur de démarrage qui permet de sélectionner et de démarrer différents systèmes
d'exploitation installés sur votre machine

sudo shutdown -r now ake-j12

// redémarrer le système immédiatement.


gcc programname.c
./[Link]
//rechercher le fichier exécutable "[Link]" dans le répertoire
courant et tenter de l'exécuter
Dmesg
// afficher les messages du noyau du système

sudo make clean -j12


raspberry Pi 3 - Buildroot – Linux
1. Role buildroot
Il permet de compiler un système d'exploitation minimal avec les paquets
logiciels nécessaires pour une application spécifique .
4. Commandes utilises
wget [Link]
tar xvf [Link].bz2
cd [Link].bz2
make raspberrypi3_defconfig
make
ls output/images/

Vous aimerez peut-être aussi