QEMU搭建ARM64+Linux虚拟环境(2021.7.13)
QEMU搭建ARM64+Linux虚拟环境文章目录QEMU搭建ARM64+Linux虚拟环境一、qemu简介1、功能及架构简介2、实现思路介绍二、qemu安装1、安装依赖2、获取源码3、编译(1)准备工作(2)编译三、安装Linux操作系统1、UEFI固件下载2、操作系统镜像下载3、创建虚拟硬盘4、虚拟机安装5、进入UI界面进行安装6、安装成功四、参考教程:一、qemu简介1、功能及架构简介QEM
QEMU搭建ARM64+Linux虚拟环境
文章目录
一、qemu简介
1、功能及架构简介
QEMU是一个支持跨平台虚拟化的虚拟机,QEMU的优势是可以跨指令集,VMware和Virtualbox之类的工具通常只能在x86计算机上虚拟出一个x86计算机,而QEMU支持在x86上虚拟出一个ARM计算机
qemu架构如下:
简单来说qemu就是实现换硬件平台架构的功能
2、实现思路介绍
qemu软件虚拟化实现思路就是二进制代码翻译技术,主要是提取guest代码,然后将其翻译成TCG中间代码,最后再将中间代码翻译成host指定架构的代码,如:x86就翻译成其支持的代码形式,ARM架构同理。
二、qemu安装
1、安装依赖
官方推荐要安装一下依赖(ubuntu):
sudo apt-get install git libglib2.0-dev libfdt-dev libpixman-1-dev zlib1g-dev
sudo apt-get install git-email
sudo apt-get install libaio-dev libbluetooth-dev libbrlapi-dev libbz2-dev
sudo apt-get install libcap-dev libcap-ng-dev libcurl4-gnutls-dev libgtk-3-dev
sudo apt-get install libibverbs-dev libjpeg8-dev libncurses5-dev libnuma-dev
sudo apt-get install librbd-dev librdmacm-dev
sudo apt-get install libsasl2-dev libsdl1.2-dev libseccomp-dev libsnappy-dev libssh2-1-dev
sudo apt-get install libvde-dev libvdeplug-dev libvte-2.90-dev libxen-dev liblzo2-dev
sudo apt-get install valgrind xfslibs-dev
sudo apt-get install libnfs-dev libiscsi-dev
实际编译时还需要下面这个依赖
sudo apt-get install ninja-build
2、获取源码
使用git获取源码
git clone git://git.qemu-project.org/qemu.git
如果系统提示需要安装git的话按照提示安装就好,安装好之后再执行上面这条命令
源码下载好之后会在当前目录生成一个qemu目录
cd进入到qemu目录下,ls查看所有文件如下,其中configure命令是我们之后要用到的
3、编译
(1)准备工作
首先先检查当前系统是否有GCC编译器和make编译工具
可参考教程:https://www.cnblogs.com/tinywan/p/7230039.html
官网建议新建一个工作空间用来编译,而不要在qemu目录下直接编译,原文如下:
QEMU supports builds in this directory (not recommended) or in an extra directory (out-of-tree builds, recommended). There can be any number of out-of-tree builds, so if you plan to make cross builds, debug and release builds, out-of-tree builds are what you need.
QEMU 支持在此目录(不推荐)或额外目录(推荐使用树外构建)中的编译。可以有任意数量的树外构建,因此如果您计划进行交叉构建、调试和发布构建,那么额外目录编译就是您所需要的。
做法如下:
# Switch to the QEMU root directory.
cd qemu
# Prepare a native debug build.
mkdir -p bin/debug/native
cd bin/debug/native
# Return to the QEMU root directory.
cd ../../..
(2)编译
configure为shell脚本,用于生成Makefile,其使用方法可使用如下命令查看:
./configure --help
使用到的[option]含义如下:
-
–enable-kvm:
编译KVM模块,是qemu可利用KVM来访问硬件提供的虚拟化服务
-
–enable-vnc:
启动VNC(远程控制工具软件)
拓展:VNC(https://blog.csdn.net/CH_sir/article/details/107784528)
-
–target-list:
目标机器的构架,默认是将所有架构都编译,为了更快完成编译,指定需要的架构即可。
我使用的是aarch64-softmmu,根据需要选择自己的构架,相应的下面的configure命令中的选项也要修改
../../../configure --enable-kvm --enable-debug --enable-vnc --target-list="aarch64-softmmu"
make -j8
sudo make install
通过一下指令查看是否编译成功:
qemu-system-aarch64 -M help
三、安装Linux操作系统
1、UEFI固件下载
QEMU_EFI.fd
下载地址:http://releases.linaro.org/components/kernel/uefi-linaro/16.02/release/qemu64/
**拓展:**UEFI启动方式和传统启动方式的区别
参考教程:http://www.uqidong.com/uefi.html
简单的来说uefi启动是新一代的bios,功能更加强大,而且它是以图形图像模式显示,让用户更便捷的直观操作。
如今很多新产品的电脑都支持uefi启动模式,甚至有的电脑都已抛弃bios而仅支持uefi启动。这不难看出uefi正在取代传统的bios启动。
2、操作系统镜像下载
这里采用的是arm64架构的ubuntu 16.04 server版:ubuntu-16.04.3-server-arm64.iso
3、创建虚拟硬盘
利用qemu-img指令可以创建1个空的虚拟硬盘,便于后面安装的时候将系统安装到虚拟硬盘上
进入到工作空间/opt/qemu/bin/debug/native目录下
使用以下命令创建虚拟硬盘
qemu-img create ubuntu16.04-arm64.img 16G
在当前目录下会生成ubuntu16.04-arm64.img这样一个文件
4、虚拟机安装
将上面的镜像文件ubuntu-16.04.3-server-arm64.iso和UEFI固件(QEMU_EFI.fd)都放在/opt/qemu/bin/debug/native该目录下,然后使用以下命令安装
qemu-system-aarch64 -m 2048 -cpu cortex-a57 -smp 2 -M virt -bios QEMU_EFI.fd -nographic -drive if=none,file=ubuntu-16.04.3-server-arm64.iso,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -drive if=none,file=ubuntu16.04-arm64.img,id=hd0 -device virtio-blk-device,drive=hd0
5、进入UI界面进行安装
装了一下午…
注意:第一次登录卡顿特别严重,别着急,我一开始直接将窗口关闭了,导致后来出现一系列问题
下次启动输入命令如下:
qemu-system-aarch64 -m 2048 -cpu cortex-a57 -smp 2 -M virt -bios QEMU_EFI.fd -nographic -drive if=none,file=ubuntu16.04-arm64.img,id=hd0 -device virtio-blk-device,drive=hd0
6、安装成功
登录
查看系统架构
四、参考教程:
https://www.cnblogs.com/bakari/p/7858029.html
https://wiki.qemu.org/Hosts/Linux
https://blog.csdn.net/chenxiangneu/article/details/78955462
https://blog.csdn.net/qq_33037487/article/details/112472759
更多推荐
所有评论(0)