Windows10下安装arm64架构的centos
背景
用C++写了一个串口通讯库,方便第三方调用。但是只有Windows,Linux(x86) 32bit, 64bit环境的,客户突然需要 aarch64 / ARM64 Linux 环境下的库,没办法,网上找了一圈,然后实践,这里记录下。环境
Windows10
qemu-w64-setup-20251224.exe
CentOS-7-aarch64-Minimal-2009.iso
xshell(可选)
安装QEMU
下载

安装
双击一路下一步,修改安装位置(这里不要选中文路径),然后安装即可。
下载虚拟机启动固件
下载 QEMU_EFI.fd
下载ARM64架构的centos7.9
下载 CentOS-7-aarch64-Minimal-2009.iso

安装centos系统
新建一个文件,将centos镜像,QEMU_EFI.fd文件放到这个目录,方便后续配置使用。
创建虚拟机磁盘空间
"D:\qemu\qemu-img.exe" create -f qcow2 "F:\qemuVM\Anolis.qcow2" 20G
D:\qemu\qemu-img.exe:QEMU 安装路径,需要替换为自己的路径F:\qemuVM\Anolis.qcow2:虚拟机磁盘文件路径,可自定义文件名,必须为 .qcow2 后缀20G:虚拟机磁盘空间大小,不建议太小

执行安装命令
QEMU安装目录输入cmd进入命令行,执行安装命令

D:\qemu\qemu-system-aarch64.exe -m 2048 -cpu cortex-a72 -smp 2,sockets=1,cores=2 -M virt -bios F:\qemuVM\QEMU_EFI.fd -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file=F:\qemuVM\Anolis.qcow2,id=hd0 -device virtio-blk-device,drive=hd0 -drive if=none,file=F:\qemuVM\CentOS-7-aarch64-Minimal-2009.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 这里注意:各个文件路径要对应。下面是参数说明,我改了下参数。

安装过程:
- 运行命令后打开虚拟机窗口
- 选择第一个选项等待安装,安装过程可能较长
(第三个选择是先检测安装光盘/ISO 是否有损坏,然后进入正常安装 ) - 安装完成后,选择英文,点击继续
下面是别人安装的截图,我的安装时没有截图,都差不多。





这里实际界面可能不一样,你需要设置安装目的地,下一步才是设置root密码。
如果都没警告了,就开始安装。


安装结束之后重启系统即可。
用ssh连接centos,做一些配置
我这里用的xshell工具。
使用 IP: 127.0.0.1 port: 2222 直接连接即可。账号密码为: root/你刚才设置的root密码

配置网络
首先,我在安装之后,虚拟机直接是有网络的。所以没有配置网络。直接配置DNS了。如果你安装后,没有网络,可以按照如下步骤操作。
1. 分配静态 IP (可选)
输入命令查看自己实际网卡名称,我这里的是 enp0s1ip link

继续执行如下命令:
ip addr add 10.0.2.15/24 dev enp0s1 ip link set enp0s1 up ip route add default via 10.0.2.2 你也可以根据自己需求修改参数。
2.配置DNS
sudo vim /etc/resolv.conf
nameserver 8.8.8.8 nameserver 8.8.4.4 按照上面配置完毕之后,ping www.baidu.com 有响应就是ok了
配置yum源
备份原文件
mkdir /etc/yum.repos.d/backup
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup
配置阿里云的源
cat>/etc/yum.repos.d/CentOS-Aliyun.repo<<'EOF' [base] name=CentOS-7.9.2009-Base-Aliyun baseurl=https://mirrors.aliyun.com/centos-vault/altarch/7.9.2009/os/aarch64/ enabled=1 gpgcheck=0 [updates] name=CentOS-7.9.2009-Updates-Aliyun baseurl=https://mirrors.aliyun.com/centos-vault/altarch/7.9.2009/updates/aarch64/ enabled=1 gpgcheck=0 [extras] name=CentOS-7.9.2009-Extras-Aliyun baseurl=https://mirrors.aliyun.com/centos-vault/altarch/7.9.2009/extras/aarch64/ enabled=1 gpgcheck=0 EOF 上面这个是一条命令。
生成新缓存
yum clean all && yum makecache
安装开发环境(可选)
yum groupinstall -y "Development Tools"
# 单独验证GCC、G++是否安装成功 gcc --version g++ --version 映射Windows串口到虚拟机
QEMU 没有类似 VMware 的 GUI 管理器,关闭窗口即虚拟机关机。
可用启动脚本快速启动虚拟机。
无串口映射启动
@echo off D:\qemu\qemu-system-aarch64.exe ^ -m 2048 ^ -cpu cortex-a72 ^ -smp 2,sockets=1,cores=2 ^ -M virt ^ -bios F:\qemuVM\QEMU_EFI.fd ^ -device VGA ^ -device nec-usb-xhci ^ -device usb-mouse ^ -device usb-kbd ^ -drive if=none,file=F:\qemuVM\Anolis.qcow2,id=hd0 ^ -device virtio-blk-device,drive=hd0 ^ -net nic ^ -net user,hostfwd=tcp:127.0.0.1:2222-:22 pause 有串口映射启动脚本
@echo off D:\qemu\qemu-system-aarch64.exe ^ -m 2048 ^ -cpu cortex-a72 ^ -smp 2,sockets=1,cores=2 ^ -M virt ^ -bios F:\qemuVM\QEMU_EFI.fd ^ -device VGA ^ -device nec-usb-xhci ^ -device usb-mouse ^ -device usb-kbd ^ -drive if=none,file=F:\qemuVM\Anolis.qcow2,id=hd0 ^ -device virtio-blk-device,drive=hd0 ^ -net nic ^ -net user,hostfwd=tcp:127.0.0.1:2222-:22 ^ -chardev serial,id=hostcom5,path=COM5 -serial chardev:hostcom5 pause 说明:这里记得修改串口,而且,在启动前,要确保串口可用,否则系统报错。

启动系统后,编译动态库,运行测试程序,可以和插入windows的物理设备串口通讯。
最后,必须感谢下下面这个作者,网上找了一堆,写的都什么玩意儿,最后找到这篇文章,写的简练,让我有了个开头。后面就是GPT了。