QEMU搭建armlinux开发环境
- 人工智能
- 2025-09-10 13:15:02

Qemu 作为一款强大的开源虚拟化软件,为我们提供了一个便捷且经济实惠的方式来模拟各种硬件环境,从而在上面安装和学习 Linux 系统。本文将详细介绍如何使用 Qemu 搭建 Linux 学习环境,
环境准备 操作系统:建议使用 Ubuntu 20.04 及以上版本,本文以 Ubuntu 20.04 为例进行介绍。因为 Ubuntu 系统拥有丰富的软件源和开发工具,方便我们进行后续的操作。硬件配置:至少 4GB 内存,以确保 QEMU 模拟的 ARM 系统能够稳定运行。20GB 以上可用磁盘空间,用于存储内核源码、根文件系统等文件。推荐使用双核及以上处理器,以提高编译和模拟的性能。网络连接:确保主机能够正常访问互联网,因为我们需要从网络上下载内核源码、工具链、根文件系统构建工具等资源。 1. 安装 QEMU 1.1 Ubuntu LTS版本与QEMU版本对照(APT方式)在 Ubuntu 系统中,打开终端并执行以下命令来安装 QEMU 相关工具:
sudo apt-get update sudo apt-get install qemu-system-arm Ubuntu版本QEMU版本更新状态ARM支持特性18.04 LTS2.11.1停止维护基础VExpress支持20.04 LTS4.2.1安全更新支持Cortex-A9完整外设22.04 LTS6.2.0长期支持支持TPM、安全启动24.04 LTS8.1.2最新版本支持RISC-V、LoongArch 1.2 指定版本安装 wget download.qemu.org/qemu-6.2.0.tar.xz tar xvf qemu-6.2.0.tar.xz cd qemu-6.2.0 # 2. 配置编译选项 ./configure --target-list=arm-softmmu --prefix=/opt/qemu-6.2.0 # 3. 编译安装 make -j12 sudo make install安装完成,查看版本号
2. 选择合适的 Linux 内核和 BusyBox 版本 Linux 内核:建议选择 4.x 或 5.x 系列的内核版本,因为这些版本对 ARM 架构有较好的支持,并且稳定性和性能都比较不错。例如,Linux 内核 5.15 版本是一个广泛使用且稳定的版本。BusyBox:可以选择较新的稳定版本,如 1.33.x 或 1.34.x 系列,这些版本包含了丰富的工具,能满足根文件系统的基本需求。 3. 编译 Linux 内核 3.1 下载内核源码可以从 Linux 内核官方网站( .kernel.org/)下载所需版本的内核源码,以 5.15.18 版本为例:
wget cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.15.18.tar.xz tar xvf linux-5.15.18.tar.xz cd linux-5.15.18 3.2 安装交叉编译工具链 sudo apt-get install gcc-arm-linux-gnueabi 3.3 配置内核 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- vexpress_defconfig此命令使用 VExpress 开发板的默认配置。如果需要自定义配置,可以执行:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig 3.4 编译内核 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- zImage dtbs -j$(nproc)编译完成后,在 arch/arm/boot 目录下会生成 zImage 内核镜像文件,在 arch/arm/boot/dts 目录下会生成设备树文件 vexpress-v2p-ca9.dtb。
4. 准备根文件系统(使用 BusyBox) 4.1 下载 BusyBox 源码从 BusyBox 官方网站( busybox.net/downloads/)下载所需版本的源码,以 1.36.1 版本为例:
wget busybox.net/downloads/busybox-1.36.1.tar.bz2 tar xvf busybox-1.36.1.tar.bz2 cd busybox-1.36.1 4.2 配置 BusyBox make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- defconfig同样,如果需要自定义配置,可以执行:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig在配置界面中,确保选择 “Build BusyBox as a static binary”(将 BusyBox 编译为静态二进制文件),这样可以避免动态链接库的依赖问题。
4.3 编译并安装 BusyBox make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- install编译完成后,会在 _install 目录下生成根文件系统的基本结构和工具。
4.4 完善根文件系统创建必要的目录和文件:
cd _install mkdir -p dev proc sys etc etc/init.d sudo mknod -m 666 dev/null c 1 3 sudo mknod -m 666 dev/console c 5 1 # 控制台设备创建 /etc/init.d/rcS 启动脚本:
#!/bin/sh mount -t proc none /proc mount -t sysfs none /sys echo "Welcome to QEMU VExpress-A9!" exec /bin/sh赋予脚本执行权限:
chmod +x etc/init.d/rcS 4.5 生成initramfs find . | cpio -H newc -ov --owner root:root > ../initramfs.cpio cd .. gzip initramfs.cpio 5. 启动模拟环境使用以下 QEMU 命令启动 VExpress - A9 模拟环境:
qemu-system-arm \ -M vexpress-a9 \ -m 512M \ -kernel linux-5.15.18/arch/arm/boot/zImage \ -dtb linux-5.15.18/arch/arm/boot/dts/vexpress-v2p-ca9.dtb \ -append "console=ttyAMA0 root=/dev/ram rdinit=/sbin/init" \ -initrd busybox-1.36.1/initramfs.cpio.gz \ -nographic -M vexpress-a9:指定模拟的开发板型号为 VExpress - A9。-m 512M:为虚拟机分配 512MB 的内存。-kernel:指定内核镜像文件的路径。-dtb:指定设备树文件的路径。-initrd :初始内存文件系统 需使用gzip压缩的cpio归档-nographic:以无图形界面模式启动。-append:传递内核启动参数,指定控制台设备和根文件系统的挂载信息。启动成功后,你将看到 Linux 系统的启动信息,最终会进入一个简单的 shell 环境。
成功显示:Welcome to QEMU VExpress-A9! 恭喜,环境搭建成功!
QEMU搭建armlinux开发环境由讯客互联人工智能栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“QEMU搭建armlinux开发环境”
下一篇
lean4安装