Bootstrap

【虚拟机】Windows(x86)上部署ARM虚拟机(Ubuntu)

【虚拟机】Windows(x86)上部署ARM虚拟机(Ubuntu)

零、起因

最近在学嵌入式,这就不得不涉及ARM指令集,但是电脑是x86指令集的,用手机不太方便,买开发板又要等几天……,总之就是要找个理由在x86的Windows上运行一下ARM的Ubuntu~

壹、准备

我们要在ARM虚拟机上运行Ubuntu系统需要准备下面这些文件(文末提供网盘分享链接):

1. 虚拟机

这边我们使用的是QEMU,QEMU可以模拟很多不同指令集的CPU,目前包括有 ARM、LoongArch、MIPS、RISCV 和 x86_64 等,我们可以到官网下载最新版:https://www.qemu.org/,也可以选择跟我一样的版本,下载后得到一个软件安装包,按照正常的软件安装方法运行安装程序,设置好安装位置,安装安装即可,这里需要记一下安装位置!下载地址:https://qemu.weilnetz.de/w64/2024/qemu-w64-setup-20240423.exe

2. UEFI

统一可扩展固件接口(英语:Unified Extensible Firmware Interface,缩写UEFI)是一种个人电脑系统规格,用来定义操作系统与系统固件之间的软件界面,作为BIOS(基本输入/输出系统)的替代方案。可扩展固件接口负责加电自检(POST)、联系操作系统以及提供连接操作系统与硬件的接口。我们的ARM虚拟机需要用到这个,下载地址:http://releases.linaro.org/components/kernel/uefi-linaro/16.02/release/qemu64/QEMU_EFI.fd

3. Ubuntu

Ubuntu的系统安装包,Ubuntu系统就不多介绍了,可以自行到官网下载,官网地址:https://cn.ubuntu.com/download/server/arm,也可以下载跟我一样的版本,只要下载的是ARM版本的即可,下载地址:https://cdimage.ubuntu.com/releases/24.04/release/ubuntu-24.04-live-server-arm64.iso

贰、安装

1. 虚拟机的安装

直接运行下载得到的qemu-w64-setup-20240423.exe即可,安装过程中的选项都可以保持默认的,但是要注意记一下安装位置,等下要用到:
记住安装路径
我的安装位置:D:\Program Files\qemu

2. 虚拟机环境变量配置(选做)

为了方便,可以把安装路径配置到环境变量中去,这样到时候虚拟机的命令就可以简单一点点,我选择不配置,要配置的同学可以看看:
配置环境变量

3. 创建磁盘文件

在安装系统之前,我们需要给虚拟机创建一个磁盘文件,作为虚拟机存储资料的地方,使用如下命令(配置了环境变量后可以省略安装路径):
CMD命令格式:

"QEMU安装路径\qemu-img.exe" create -f qcow2 "保存的文件夹\文件名.qcow2" 文件大小

我的:

"D:\Program Files\qemu\qemu-img.exe" create -f qcow2 "F:\VM\ARM\ubuntu\ubuntu.qcow2" 40G

这样我们会得到一个虚拟磁盘文件:F:\VM\ARM\ubuntu\ubuntu.qcow2

4. 安装Ubuntu系统

CMD命令格式:

"QEMU安装路径\qemu-system-aarch64.exe" -m 8192 -cpu cortex-a72 -smp 8,sockets=4,cores=2 -M virt -bios "下载的 QEMU_EFI.fd 文件路径" -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file="刚刚创建的磁盘文件的路径",id=hd0 -device virtio-blk-device,drive=hd0 -drive if=none,file="Ubuntu系统安装包文件路径",id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom  -net nic -net user,hostfwd=tcp:127.0.0.1:2222-:22

最后一个参数hostfwd是做的端口映射,把虚拟机的端口号为22的TCP协议映射到主机地址127.0.0.1:2222中,方便我们使用SSH链接虚拟机。

我的:

"D:\Program Files\qemu\qemu-system-aarch64.exe" -m 8192 -cpu cortex-a72 -smp 8,sockets=4,cores=2 -M virt -bios "F:\VM\ARM\ubuntu\QEMU_EFI.fd" -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file="F:\VM\ARM\ubuntu\ubuntu.qcow2",id=hd0 -device virtio-blk-device,drive=hd0 -drive if=none,file="F:\VM\ARM\ubuntu\ubuntu-24.04-live-server-arm64.iso",id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom  -net nic -net user,hostfwd=tcp:127.0.0.1:2222-:22

运行此命令后会弹出一个窗口,稍作等待即可进入Ubuntu的安装引导程序了,具体如何配置Ubuntu的安装程序我就不多介绍了,系统安装完即可正常使用了,至此我们成功在Windows(x86)上运行了Ubuntu(ARM)。

5. 运行已安装好系统的虚拟机

安装好后把虚拟机窗口关掉了,想再次打开可以使用下面的命令(不需要指定系统安装包了):
CMD命令格式:

"QEMU安装路径\qemu-system-aarch64.exe" -m 8192 -cpu cortex-a72 -smp 8,sockets=4,cores=2 -M virt -bios "下载的 QEMU_EFI.fd 文件路径" -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file="安装有系统的磁盘文件路径",id=hd0 -device virtio-blk-device,drive=hd0 -drive if=none,file=,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -net nic -net user,hostfwd=tcp:127.0.0.1:2222-:22

我的:

"D:\Program Files\qemu\qemu-system-aarch64.exe" -m 8192 -cpu cortex-a72 -smp 8,sockets=4,cores=2 -M virt -bios "F:\VM\ARM\ubuntu\QEMU_EFI.fd" -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file="F:\VM\ARM\ubuntu\ubuntu.qcow2",id=hd0 -device virtio-blk-device,drive=hd0 -drive if=none,file=,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -net nic -net user,hostfwd=tcp:127.0.0.1:2222-:22

稍作等待,Ubuntu系统成功在ARM虚拟机中启动之后就可以使用了~

可以输入如下命令查看系统使用的CPU指令集:
查看CPU指令集

6. 配置Ubuntu系统

Ubuntu系统安装好后还需要经过一定的配置才好用,这边不详细讲,给同学们找了几篇文章参考:

  1. 配置SSH:如何在 Ubuntu 上启用 SSH,安全地远程管理和传输数据:https://developer.aliyun.com/article/1375688
  2. 配置远程连接:【Linux】远程连接Linux虚拟机(MobaXterm):https://blog.csdn.net/XiaoYuHaoAiMin/article/details/140702880
  3. 配置镜像软件源:【Ubuntu】Ubuntu 配置镜像源(ARM):https://blog.csdn.net/XiaoYuHaoAiMin/article/details/140697174
  4. 安装编程软件(可选):如何在 Ubuntu 22.04 上安装 GCC:https://cn.linux-console.net/?p=14950

叁、参考文档

肆、文件资源

链接:https://pan.baidu.com/s/1hYPR9RymKkGBgHj9YMaeGQ?pwd=j0y3
提取码:j0y3

;