1
WORKSHOP LINUX EMBARQUE SEM21
Utilisation de Uboot pour charger un noyau et un système de fichier Linux en utilisant
un hyperviseur Qemu
Environnement de travail :
- Machine virtuelle sous Linux (exemple Ubuntu) - La dernière version stable d’un noyau Linux - La dernière version de Cross compiler toolchain - La dernière version d’un hyperviseur qemu
- La dernière version du chargeur de démarrage U-BOOT - Installation de l’outil GIT sur Linux ( sudo apt install git)
Les Liens Web pour télécharger les codes sources :
- Kernel Linux : https://github.com/torvalds/linux
- Toolchain : https://developer.arm.com/tools-and-software/open-source- software/developer-tools/gnu-toolchain/gnu-a/downloads
• La version actuel :
gcc-arm-9.2-2019.12-mingw-w64-i686-arm-none- linux-gnueabihf.tar.xz
- Qemu :https://github.com/qemu/qemu
- U-boot :https://ftp.denx.de/pub/u-boot/ ou avec git - https://gitlab.denx.de/u-boot/u-boot
1
erétape : Télécharger le code source de U-boot avec git
- Ouvrez votre Terminal sous Linux
- Taper: git clone https://gitlab.denx.de/u-boot/u-boot.git
2
èmeétape : Préparer la compilation
Chargez la configuration par défaut pour la carte cible, c'est-à-dire vexpress_ca9x4_defconfig en utilisant la 1ère commande et compilez U-boot en utilisant la 2ème commande indiquée ci- dessous.
Décompresser l’archive ou bien l’installer avec apt si le package existe
2
WORKSHOP LINUX EMBARQUE SEM21
- # tar -xJf gcc-arm-9.2-2019.12-mingw-w64-i686-arm-none-linux- gnueabihf.tar.xz
- ou #sudo apt install arm-none-linux-gnueabihf - #cd u-boot
- #make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- vexpress_ca9x4_defconfig
- #make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- Vérifier que la compilation n’a pas généré d’erreurs et a fini avec succès.
Installer l’hyperviseur Qemu :
- #git clone https://git.qemu.org/git/qemu.git
ou bien #sudo apt install qemu-system-arm (la dernière version)
- Lancement de qemu : # ~/Qemu_arm/bin/qemu-system-arm -M vexpress-a9 -m 512M -kernel u-boot -nographic
Téléchargement du noyau linux avec git :
- # git clone https://github.com/torvalds/linux - # cd linux
- # git checkout -b stable v5.10
La compilation :
2
# cd linux
# make ARCH=arm CROSS_COMPILE=(chemin jusqu’a )/bin/arm-none-linux-gnueabihf- vexpress_defconfig
Accès au noyau Linux :
make ARCH=arm CROSS_COMPILE=(chemin jusqu’a )/bin/arm-none-linux-gnueabihf- menuconfig