目录
引言
最近在写一本关于ARM64的书,所以想用QEMU模拟AARCH64环境并测试一下相关代码,在此记录下整个过程。
华为云开发者主机
我的测试主机采用的是华为云开发者主机,它是个云桌面,和阿里的无影云电脑差不多。熟悉我的朋友都知道,我很喜欢云桌面,使用方便,随处可用。目前华为开展免费领取活动,感兴趣的同学可以去领一下:华为云开发者官网_华为云 (huaweicloud.com)。
配置环境是这样的:
使用的系统是Ubuntu 22.04.4 LTS。编译程序啥的,性能还不错,而且下载软件的速度很快,不想无影云电脑那样有限速。
唯一的缺点就是这玩意特别难进入,打开桌面时显示“环境准备中,大约需要1分钟,请您耐心等待...”,但是实际情况下你多长时间能进去完全是运气。我一定以为死机了,还提交了工单,不过后来发现只要你有足够的耐心,一定能够进去的。
QEMU-system-aarch64的安装
Ubuntu的仓库里面是带了QEMU-system-aarch64的,但是版本特别老,是6.0。现在最新的版本都9.1了。所以我决定采用自己编译源源代码的方式来进行安装。在这个过程中,参考了
手把手教你搭建ARM64 QEMU环境 - 知乎 (zhihu.com)
准备开发环境
由于是给开发者准备的云主机,所以一些最基本的软件已经安装了,像gcc、make、Python 3.10。如果你是在自己的虚拟机上进行测试,可能需要先安装这些。不过还是有一些第三方软件需要安装一下。
大致的步骤如下:
pip3 install --upgrade pip
pip3 install sphinx
pip3 install sphinx_rtd_theme
pip3 install Ninja
sudo apt-get install libglib2.0-0 libglib2.0-dev ninja-build libpixman-1-dev
下载QEMU 9.1源码并编译
接下来就是现在QEMU 9.1的源码并进行编译。大致的步骤如下:
wget https://download.qemu.org/qemu-9.1.0.tar.xz
tar xvJf qemu-9.1.0.tar.xz
cd qemu-9.1.0
mkdir build/
cd build/
../configure --target-list=aarch64-softmmu --audio-drv-list=
make -j8 && make install
有大概3000个文件需要编译,所以还是需要花一点时间的,不过华为的云主机还挺快,等不了太久。
安装后在/usr/local/bin目录下可以找到qemu-system-aarch64。安装的过程中如果出现没有权限,无法拷贝文件的情况,可以用sudo chmod 777修改目标路径的权限。
测试QEMU 9.1
下面简单的测试一下QEMU,运行如下命令
developer@ecs-cloud-host-ubuntu-img-make:~$ qemu-system-aarch64 --version
QEMU emulator version 9.1.0
Copyright (c) 2003-2024 Fabrice Bellard and the QEMU Project developers
System模式的QEMU编译成功了。