Windows系统利用Qemu仿真ARM64平台
- 0 写在最前
- 1 Windows安装Qemu
- 1.1 下载Qemu
- 1.2 安装Qemu
- 1.3 添加环境变量
- 1.4测试安装是否成功
- 2. Qemu安装Ubuntu-Server-Arm-64
- 2.1 安装前的准备
- 2.2 安装Ubuntu server arm 64位镜像
- 3 Windows配置Qemu网络和传输文件
- 3.1 参考内容
- 3.2 Windows安装MobaXterm
- 3.2 Windows通过SSH直连ARM镜像并配置网络
- 3.3 Windows通过SFTP传输文件到ARM镜像
- 4 Ubuntu配置Qemu网络和传输文件
- 4.1 参考内容
- 4.1 安装MobaXterm
- 4.2 Ubuntu通过SSH直连ARM镜像并配置网络
- 4.3 Ubuntu通过SFTP传输文件到ARM镜像
0 写在最前
-
- 本文是在Windows平台上,仿真ARM 开发平台,其中ARM采用的是发布版本的Ubuntu20.04系统
-
- 本文在Linux(Ubuntu)平台上,尝试安装,但是Linux平台上,半天没有加载出安装界面,因此转到Windows平台进行安装镜像,但是安装好的镜像即可在任何的Qemu平台上运行了
-
- 推荐大家如果在Ubuntu内无法安装镜像,可以尝试从Windows安装好镜像丢到Ubuntu内操作,Ubuntu加速效果的确比Windows更好
-
- Windows平台软件列表:Window10,qemu-w64-setup-20221230.exe,Ubuntu20.04.5-server-arm64.ISO,QEMU UEFI
-
- Ubuntu平台软件列表:Ubuntu20.04,qemu(4.2.1),Ubuntu20.04.5-server-arm64.ISO,QEMU UEFI
- 问题1:Windows安装好的ubuntu.img镜像能否加载到VirtualBox的Ubuntu系统中使用呢?
答案是可以的,而且发现,在Ubuntu平台上运行qemu的Ubuntu镜像,比Windows上流畅,原因可能是Ubuntu自身的KVM支持更好一些
参考内容
从0开始使用QEMU模拟ARM开发环境之QEMU利用桥接联网
Windows上使用QEMU创建aarch64(ARM64)虚拟机
Windows使用QEMU搭建arm64 ubuntu 环境
Windows 搭建ARM虚拟机 UOS系统
Ubuntu18.04使用qemu搭建ARM64架构虚拟机(方法一)
【UEFI实战】Windows版本QEMU网络配置
【Linux operation 25】Win10桥接网卡使得qemu虚拟机可以正常访问网络
Windows主机的Qemu网络配置
win10上qemu虚拟arm环境网络配置
QEMU 网络配置一把梭
Linux 内核调试 七:qemu网络配置
Linux 虚拟网络设备详解之 Bridge 网桥
qemu虚拟机与主机共享文件(FTP服务器)
1 Windows安装Qemu
1.1 下载Qemu
Qemu官方地址,Windows系统选择最新版本的exe程序进行下载
1.2 安装Qemu
选择正确的安装路径,直接点击下一步,即可安装成功
1.3 添加环境变量
在系统中添加环境变量
1.4测试安装是否成功
win+r
组合键,打开cmd
,输入qemu-system-aarch64 -M help
,查看输出,如果有系统输出,则表明安装成功
2. Qemu安装Ubuntu-Server-Arm-64
2.1 安装前的准备
准备内容
Ubuntu20.04 server arm64
QEMU UEFI
足够的磁盘空间
Ubuntu-Server 20.04 安装详细过程(图文)
2.2 安装Ubuntu server arm 64位镜像
-
- 新建文件夹用于存放以上三个文件,并存放后续的Ubuntu镜像
-
- 创建镜像文件:
qemu-img create ubuntu.img 50G
- 创建镜像文件:
E:\UbuntuARM>qemu-img create ubuntu.img 50G
Formatting 'ubuntu.img', fmt=raw size=53687091200
E:\UbuntuARM>
-
- 安装镜像文件:
qemu-system-aarch64.exe -m 2048 -cpu cortex-a72 -smp 4,cores=4,threads=1,sockets=1 -M virt -bios QEMU_EFI.fd -net nic,model=pcnet -device nec-usb-xhci -device usb-kbd -device usb-mouse -device VGA -drive if=none,file=ubuntu-20.04.5-live-server-arm64.iso,format=raw,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -drive if=none,file=ubuntu.img,format=raw,id=hd0 -device virtio-blk-device,drive=hd0
- 安装镜像文件:
-
- 安装中间勾选SSH服务:勾选SSH服务,后期SSH可以帮助我们配置网络,否则就得将镜像丢入Ubuntu内进行网络桥接配置了,略微麻烦
-
- 关于
reboot
:安装完成之后会提示reboot
机器,但是多半reboot失败并提示:Failed unmounting /cdrom
,此时 可以直接退出机器
- 关于
-
- 启动镜像文件:
qemu-system-aarch64.exe -m 4096 -cpu cortex-a72 -smp 8 -M virt -bios QEMU_EFI.fd -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file=ubuntu.img,format=raw,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 user,hostfwd=tcp::2222-:22 -net nic
- 启动镜像文件:
3 Windows配置Qemu网络和传输文件
3.1 参考内容
值得一看
【UEFI实战】Windows版本QEMU网络配置
【Linux operation 25】Win10桥接网卡使得qemu虚拟机可以正常访问网络
Windows主机的Qemu网络配置
win10上qemu虚拟arm环境网络配置
- Windows上安装好qemu模拟的arm Ubuntu之后,发现没有办法共享剪切板,甚至连网络都走不出去,而网络上的教程提示我们利用OpenVPN创建TAP类型的网卡,进行桥接,但是OpenVPN针对企业网络,想要下载安装太麻烦了,因此 本文想通过不安装任何网卡软件,使得软件能够接入qemu内的虚拟机。
3.2 Windows安装MobaXterm
MobaXterm:官方网站,是一款开源的远程连接工具,类似xshell,下载exe文件,双击安装即可。
3.2 Windows通过SSH直连ARM镜像并配置网络
预备条件
- 之前Qemu内的系统,安装过OpenSSH
- MobaXterm已经安装成功:安装mobaXterm主要是为了方便接入SSH并共享剪切板
- 镜像文件进行了端口转发:
hostfwd=tcp::2222-:22 -net nic
-
- 按照下面的方式,启动镜像:
qemu-system-aarch64.exe -m 4096 -cpu cortex-a72 -smp 8 -M virt -bios QEMU_EFI.fd -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file=ubuntu.img,format=raw,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 user,hostfwd=tcp::2222-:22 -net nic
- 按照下面的方式,启动镜像:
-
- 查看本机IP,并通过SSH连接到虚拟镜像
-
- 登录虚拟机,进行换源:Ubuntu(arm)20.04更换软件源,本文是直接删除了sources.list然后新建了新的文件,替换了源文件
pldz@pldz-arm:~$ sudo rm /etc/apt/sources.list
pldz@pldz-arm:~$ sudo touch /etc/apt/sources.list
pldz@pldz-arm:~$ sudo vi /etc/apt/sources.list
pldz@pldz-arm:~$ sudo apt-get update
-
- 至此,可以在镜像文件中,安装
net-tools
,gcc
,gdb
,make
,cmake
,等等工具,搭建好开发环境
- 至此,可以在镜像文件中,安装
3.3 Windows通过SFTP传输文件到ARM镜像
预备条件
- 之前Qemu内的系统,安装过OpenSSH
- MobaXterm已经安装成功:安装mobaXterm主要是为了方便接入SSH并共享剪切板
- 镜像文件进行了端口转发:
hostfwd=tcp::2222-:22 -net nic
-
- 在MobaXterm内选择SFTP传输,选择IP、用户名和端口,登录SFTP
-
- 输入用户密码,从Windows拖动文件到SFTP对话框内,传输文件
4 Ubuntu配置Qemu网络和传输文件
4.1 参考内容
参考内容
QEMU 网络配置一把梭
Linux 内核调试 七:qemu网络配置
Linux 虚拟网络设备详解之 Bridge 网桥
qemu虚拟机与主机共享文件(FTP服务器)
- Ubuntu可以通过sudo apt-get命令很简单的获取到TAP网卡,但是在配置过程中还是有点复杂,本文其实采用Ubuntu的目的只是在此基础上进行二次开发,很像套娃,Windows10上利用Virtualbox安装Ubuntu20-x64,Ubuntu内利用Qemu安装Ubuntu20-arm64,再借助MobaXterm工具进行网络连接转发和文件传输,利用SSH绕过了TAP
4.1 安装MobaXterm
见前面第3.1节
4.2 Ubuntu通过SSH直连ARM镜像并配置网络
预备条件
- 之前Qemu内的系统,安装过OpenSSH
- Virtualbox内的UbuntuX64启动了OpenSSH服务
- Windows主机能供Ping通过Virtualbox内的UbuntuX64
- MobaXterm已经安装成功:安装mobaXterm主要是为了方便接入SSH并共享剪切板
- 镜像文件进行了端口转发:
hostfwd=tcp::2222-:22 -net nic
-
- MobaXterm接入Virtualbox的虚拟机:在SSH模块,输入Virtualbox内的UbuntuX64的IP进行SSH连接
-
- 在Virtualbox的Ubuntux64启动Qemu运行UbuntuArm64:找到镜像文件目录,其中包括镜像文件和QEMU_EFI文件,输入
qemu-system-aarch64 -m 4096 -cpu cortex-a57 -smp 8 -M virt -bios QEMU_EFI.fd -nographic -net user,hostfwd=tcp::2222-:22 -net nic -device virtio-scsi-device -drive if=none,file=ubuntu.img,format=raw,index=0,id=hd0 -device virtio-blk-device,drive=hd0
- 在Virtualbox的Ubuntux64启动Qemu运行UbuntuArm64:找到镜像文件目录,其中包括镜像文件和QEMU_EFI文件,输入
-
- 验证网络是否能访问外网:
4.3 Ubuntu通过SFTP传输文件到ARM镜像
预备条件
- 之前Qemu内的系统,安装过OpenSSH
- Virtualbox内的UbuntuX64启动了OpenSSH服务
- Windows主机能供Ping通过Virtualbox内的UbuntuX64
- MobaXterm已经安装成功:安装mobaXterm主要是为了方便接入SSH并共享剪切板
- 镜像文件进行了端口转发:
hostfwd=tcp::2222-:22 -net nic
-
- 在MobaXterm内选择SFTP传输,选择虚拟机的Ubuntux64的IP、UbuntuARM用户名和Qemu的UbuntuARM端口,登录SFTP