前提概要
我们日常一般都是相同架构的host上构建相同架构的虚拟机,例如在x86架构的服务器上搭建x86架构的虚拟机,在arm架构的服务器上也一样搭建aarch64架构的虚拟机;但是,如果你手上只有x86服务器,而你又想在使用arm环境来做开发/编译等,那就需要一种工具来支持跨架构翻译不通架构的质量了,把arm指令翻译成x86指令,把x86指令翻译成aarch64指令;具体是那种工具可以搞呢?来,我带你一起在openEuler x86环境上走一遍,你就熟悉了。let's go
1. 安装qemu-system-aarch64
一般我们日常在host上只是安装了qemu-kvm(最新的已经只有qemu了,qemu-kvm被qemu收编了),qemu-kvm本身是不支持跨架构的指令集翻译的,所以呢,我们就要到社区下载较新的qemu源码来编译qemu-system-aarch64,以此来支持跨架构的指令集翻译。
备注:这里对于qemu-kvm、qemu的区分想进一步了解的,可以看下面这篇帖子
http://blog.jcix.top/2016-11-02/qemu_commands/
1.1 下载qemu源码
wget https://download.qemu.org/qemu-2.11.0.tar.xz (这里你可以选择最新的qemu版本源码哈)
1.2 安装qemu-system-aarch64组件的安装依赖包
yum install zlib-devel
yum install glib2-devel
yum install pixman-devel
1.3 源码编译和安装
tar xvJf qemu-2.11.0.tar.xz (解压源码)
cd qemu-2.11.0
./configure --target-list=aarch64-softmmu (这里要特别说明下,一定要加上 --target-list=aarch64-softm