RT-Thread 5.0.1 qemu-virt64-aarch64 解决网络问题

参考文章

前言

  • 最近需要使用 RT-Thread qemu-virt64-aarch64,验证 aarch64 平台,也就是 ARM64 平台的一些网络功能,需要开启 qemu-virt64-aarch64 的网络功能

  • 开发环境使用的 ubuntu 20.04,发现开启网络驱动与组件后,无法正常的初始化 qemu 网络设备

  • 经过验证,发现需要更新 qemu qemu-system-aarch64,更新方法 参考上篇文章:
    qemu 源码编译 qemu-system-aarch64 的方法

开发环境

#!/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,注意使用 aarch64-none-elf- 工具链,否则可能编译失败

开启 qemu-virt64-aarch64 网络

  • 默认 RT-Thread BSP qemu-virt64-aarch64 为开启网络功能,需要手动开启

  • scons --menuconfig 进入图形配置界面

 .config - RT-Thread Project Configuration
     > AARCH64 qemu virt64 configs
        [*] Using VirtIO NET

在这里插入图片描述

  • 开启网络组件: SAL、net device、 LWIP
    在这里插入图片描述

  • 适当增加 tcp 与 lwip 线程的栈大小
    在这里插入图片描述

  • 确认 Using VirtIO NET 的驱动框架使能

 .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

在这里插入图片描述

编译与运行

  • scons 即可编译,当前确认使用 工具链 gcc-arm-10.2-2020.11-x86_64-aarch64-none-elf.tar.xzgcc-arm-11.2-2022.02-x86_64-aarch64-none-elf.tar.xz 均可以正常运行 qemu

  • 运行效果

在这里插入图片描述

小结

  • 如果 开启 qemu 后,没有发现网络设备:如 virtio-net0 Network Interface 1,需要更新 qemu 的版本,也就是 qemu-system-aarch64 的版本,如 7.0 以上,当前最新应该是 8.0

  • 开启了 qemu 网络组件,还需要进一步使用网络组件,实现相应的网络功能,如 wget https

猜你喜欢

转载自blog.csdn.net/tcjy1000/article/details/131499396