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

下载

https://qemu.weilnetz.de/w64/

安装

双击一路下一步,修改安装位置(这里不要选中文路径),然后安装即可。

下载虚拟机启动固件

下载 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进入命令行,执行安装命令

xml 复制代码
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 (可选)

输入命令查看自己实际网卡名称,我这里的是 enp0s1
ip link

继续执行如下命令:

xml 复制代码
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

xml 复制代码
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

配置阿里云的源

xml 复制代码
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"

xml 复制代码
# 单独验证GCC、G++是否安装成功
gcc --version
g++ --version

映射Windows串口到虚拟机

QEMU 没有类似 VMware 的 GUI 管理器,关闭窗口即虚拟机关机。

可用启动脚本快速启动虚拟机。

无串口映射启动

xml 复制代码
@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

有串口映射启动脚本

xml 复制代码
@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了。

感谢文章

相关推荐
x-cmd14 天前
[x-cmd] QEMU 10.2.0 发布:虚拟机实时更新与性能飞跃的技术深度解读
安全·qemu·虚拟机·x-cmd
yao0003715 天前
基于QEMU+OpenSBI+edk2的riscv启动流程解析
qemu·riscv·uefi·bios·固件·opensbi
三雷科技16 天前
qemu-img 使用手册(含详细案例)
qemu
河码匠1 个月前
libvirt xml 配置文件说明
qemu·kvm·libvirt
乙酸氧铍1 个月前
【imx6ul 学习笔记】Docker 运行百问网 imx6ul_qemu
linux·docker·arm·qemu·imx6ul
fdtsaid1 个月前
Intel 六位专家对 Simics 助力 Shift-Left 的讨论(2018)
qemu·仿真·simulation·simics·intel simics
shandianchengzi2 个月前
【记录】ARM|Ubuntu 24 快速安装 arm-none-eabi-gdb 及 QEMU 调试实战
linux·arm开发·ubuntu·arm·qemu
DeeplyMind2 个月前
使用parted工具扩展QCOW2磁盘大小完整方案
linux·qemu·virtialization
张世争3 个月前
RT-Thread qemu LVGL9.5 LV_LOG_USER 输出打印适配
qemu·rt-thread·log·lvgl9.5