article de référence
-
La méthode de compilation de qemu-system-aarch64 à partir du code source de qemu
-
RT-Thread 5.0.1 qemu-virt64-aarch64 résout le problème de compilation
avant-propos
-
Récemment, RT-Thread doit être utilisé
qemu-virt64-aarch64
pour vérifier la plate-forme aarch64, c'est-à-dire certaines fonctions réseau de la plate-forme ARM64, qui doivent êtreqemu-virt64-aarch64
activées -
L'ubuntu 20.04 utilisé dans l'environnement de développement a constaté qu'après avoir activé le pilote et les composants réseau, le périphérique réseau qemu ne peut pas être initialisé normalement
-
Après vérification, il s'avère que qemu doit être mis à jour
qemu-system-aarch64
. Pour la méthode de mise à jour, reportez-vous à l'article précédent :
Comment compiler qemu-system-aarch64 à partir du code source de qemu
environnement de développement
-
Pour compiler
qemu-virt64-aarch64
, il est recommandé d'utiliser l'environnement Linux Ubuntu 20.04 au lieu de l'environnement Windows. -
Référence d'environnement de compilation spécifique : RT-Thread 5.0.1 qemu-virt64-aarch64 résout le problème de compilation
-
set_env.sh
#!/bin/bash
export RTT_CC=gcc
#export RTT_EXEC_PATH=/home/zhangsz/linux/tools/gcc-arm-10.2-2020.11-x86_64-aarch64-none-elf/bin
export RTT_EXEC_PATH=/home/zhangsz/linux/tools/gcc-arm-11.2-2022.02-x86_64-aarch64-none-elf/bin
export RTT_CC_PREFIX=aarch64-none-elf-
export PATH=$PATH:$RTT_EXEC_PATH
echo "CC => ${RTT_CC}"
echo "PREFIX => ${RTT_CC_PREFIX}"
echo "EXEC_PATH => ${RTT_EXEC_PATH}"
source set_env.sh
, faites attention à utiliseraarch64-none-elf-
la chaîne d'outils, sinon la compilation risque d'échouer
Ouvrir le réseau qemu-virt64-aarch64
-
Le RT-Thread BSP par défaut
qemu-virt64-aarch64
est d'activer la fonction réseau, qui doit être activée manuellement -
scons --menuconfig
Entrez dans l'interface de configuration graphique
.config - RT-Thread Project Configuration
> AARCH64 qemu virt64 configs
[*] Using VirtIO NET
-
Activer les composants réseau : SAL, périphérique réseau, LWIP
-
Augmentez de manière appropriée la taille de la pile des threads tcp et lwip
-
Confirmez
Using VirtIO NET
que la structure du pilote est activée
.config - RT-Thread Project Configuration
> RT-Thread Components
> Device Drivers
> Using VirtIO device drivers
--- Using VirtIO device drivers
VirtIO Version (VirtIO v1.0) --->
-*- Using VirtIO NET
compiler et exécuter
-
scons peut être compilé, et il est actuellement confirmé que la chaîne d'outils
gcc-arm-10.2-2020.11-x86_64-aarch64-none-elf.tar.xz
etgcc-arm-11.2-2022.02-x86_64-aarch64-none-elf.tar.xz
qemu peuvent fonctionner normalement -
résultat courant
résumé
-
Si aucun périphérique réseau n'est trouvé après le démarrage de qemu : Par exemple
virtio-net0 Network Interface 1
, la version de qemu doit être mise à jour, c'est-à-direqemu-system-aarch64
la version de , telle que 7.0 ou supérieure, la dernière version doit être 8.0 -
Après avoir ouvert le composant réseau qemu, une utilisation ultérieure du composant réseau est nécessaire pour réaliser les fonctions réseau correspondantes, telles que
wget
https
etc.