artigo de referência
-
O método de compilação do qemu-system-aarch64 a partir do código-fonte do qemu
-
RT-Thread 5.0.1 qemu-virt64-aarch64 resolve o problema de compilação
prefácio
-
Recentemente, o RT-Thread precisa ser usado
qemu-virt64-aarch64
para verificar a plataforma aarch64, ou seja, algumas funções de rede da plataforma ARM64, que precisam serqemu-virt64-aarch64
habilitadas -
O ubuntu 20.04 usado no ambiente de desenvolvimento constatou que após habilitar o driver de rede e os componentes, o dispositivo de rede qemu não pode ser inicializado normalmente
-
Após a verificação, descobriu-se que o qemu precisa ser atualizado
qemu-system-aarch64
. Para o método de atualização, consulte o artigo anterior:
Como compilar o qemu-system-aarch64 a partir do código-fonte do qemu
ambiente de desenvolvimento
-
Para compilar
qemu-virt64-aarch64
, recomenda-se usar o ambiente Linux ubuntu 20.04 em vez do ambiente Windows. -
Referência específica do ambiente de compilação: RT-Thread 5.0.1 qemu-virt64-aarch64 resolve o problema de compilação
-
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
, preste atenção ao usaraarch64-none-elf-
a cadeia de ferramentas, caso contrário, a compilação pode falhar
Abra a rede qemu-virt64-aarch64
-
O padrão RT-Thread BSP
qemu-virt64-aarch64
é habilitar a função de rede, que precisa ser habilitada manualmente -
scons --menuconfig
Entre na interface gráfica de configuração
.config - RT-Thread Project Configuration
> AARCH64 qemu virt64 configs
[*] Using VirtIO NET
-
Ativar componentes de rede: SAL, dispositivo de rede, LWIP
-
Aumente apropriadamente o tamanho da pilha de threads tcp e lwip
-
Confirme
Using VirtIO NET
se a estrutura do driver está habilitada
.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
compilar e executar
-
scons podem ser compilados e atualmente está confirmado que tanto o toolchain
gcc-arm-10.2-2020.11-x86_64-aarch64-none-elf.tar.xz
quantogcc-arm-11.2-2022.02-x86_64-aarch64-none-elf.tar.xz
o qemu podem rodar normalmente -
resultado em execução
resumo
-
Se nenhum dispositivo de rede for encontrado após iniciar o qemu: Por exemplo
virtio-net0 Network Interface 1
, a versão do qemu precisa ser atualizada, ou seja,qemu-system-aarch64
a versão do, como 7.0 ou superior, a versão mais recente deve ser 8.0 -
Depois de abrir o componente de rede qemu, é necessário usar mais o componente de rede para realizar as funções de rede correspondentes, como
wget
https
etc.