WSL2下Ubuntu22.04使用Qemu搭建虚拟Vexpress-A9开发板(一)——环境搭建

Qemu简介

        Qemu是一款开源免费的仿真软件,跟VMware station类似,可以仿真一台虚拟的电脑,然后在这个电脑上安装各种操作系统、运行各种应用程序。Qemu和VMware station不同的是,除了可以仿真一台电脑外,它还支持仿真一系列嵌入式开发板(支持ARM、MIPS、RISC-V等各种架构),模拟的开发板支持各种外设:串口、LCD、网卡、USB、SD卡等,可以在这个开发板上运行U-boot+Linux+Rootfs。对于缺少开发板学习嵌入式、研究U-boot、Linux内核的朋友,可以考虑使用qemu来搭建一块虚拟的开发板,方便快捷、经济实惠。

开发环境介绍

        操作系统环境为Windows11+wsl2+Ubuntu22.04子系统

        Qemu版本为6.2.0

        交叉编译工具链版本为11.4.0

        Linux内核版本为5.10.186

        U-boot版本为2022.07-rc3

        busybox版本为1.36.1

wsl子系统迁移

        在应用商城安装好Ubuntu22.04子系统后,该系统默认安装在C盘,可能造成C盘空间紧张,于是将其迁移至其他空闲分区。

使用管理员身份打开powershell,输入命令查看wsl2发行版本:

wsl -l -v

 命令显示结果如下,不同环境下NAME可能会有所不同,记住这个NAME:

 输入命令关闭发行版:

wsl --shutdown

导出到D盘:

wsl --export Ubuntu D:\ubuntu.tar

注销原发行版:

wsl --unregister Ubuntu

在D盘根目录下新建wsl文件夹,用于存放新的发行版,然后使用如下命令将D:\ubuntu.tar导入到D:\wsl文件夹下:

wsl --import Ubuntu D:\wsl\Ubuntu D:\ubuntu.tar --version 2

等待一段时间导入成功后,输入如下指令修复默认登陆用户(ubuntu可改为自己的用户名):

Ubuntu config --default-user ubuntu

Ubuntu22.04切换软件源

修改软件源指令(这里推荐使用清华源):

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vi /etc/apt/sources.list

# 将sources.list替换为以下内容
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse

# 更新软件源列表并升级已安装的软件包
sudo apt update
suto apt upgrade

配置安装交叉编译环境

sudo apt install gcc-arm-linux-gnueabi
sudo apt install g++-arm-linux-gnueabi
sudo apt install build-essential openssh-server vim net-tools flex bison libncurses-dev libssl-dev u-boot-tools

搭建qemu运行环境

# qemu依赖包
sudo apt-get install zlib1g-dev 
sudo apt-get install libglib2.0-0
sudo apt-get install libglib2.0-dev
sudo apt-get install libtool
sudo apt-get install libsdl1.2-dev
sudo apt-get install libpixman-1-0
sudo apt-get install libpixman-1-dev
sudo apt-get install autoconf

# 安装qemu
sudo apt install qemu-system

检验环境搭建是否成功

交叉编译工具链:

$ arm-linux-gnueabi-gcc -v
Using built-in specs.
COLLECT_GCC=arm-linux-gnueabi-gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc-cross/arm-linux-gnueabi/11/lto-wrapper
Target: arm-linux-gnueabi
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libitm --disable-libquadmath --disable-libquadmath-support --enable-plugin --with-system-zlib --enable-libphobos-checking=release --without-target-system-zlib --enable-multiarch --disable-sjlj-exceptions --with-specs='%{mfloat-abi=hard:-march=armv7-a -mcpu=generic-armv7-a -mfloat-abi=hard}' --with-arch=armv5t --with-float=soft --disable-werror --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=arm-linux-gnueabi --program-prefix=arm-linux-gnueabi- --includedir=/usr/arm-linux-gnueabi/include --with-build-config=bootstrap-lto-lean --enable-link-serialization=2
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04)

虚拟开发板QEMU:

$ qemu-system-arm --version
QEMU emulator version 6.2.0 (Debian 1:6.2+dfsg-2ubuntu6.12)
Copyright (c) 2003-2021 Fabrice Bellard and the QEMU Project developers

猜你喜欢

转载自blog.csdn.net/cotex_A9/article/details/132299932