【虚拟化qemu】(一)— qemu 虚拟化软件介绍与安装
关于 qemu
qemu(quick emulator)是一款可执行硬件虚拟化的(hardware virtualization)开源仿真器(Emulator)。
对于 qemu 的介绍可以查看该关于 qemu 的 wiki 词条链接。
QEMU 可以做些什么
于嵌入式行业 qemu 可以帮助开发者:学习裸机编程,RTOS 的编程,网络协议的学习,图形界面的学习。使用 qemu 确实能够在一定程度上节省时间,提高软件调试与分析的效率。
用软件模拟硬件的操作行为,本质上来说和实际的硬件操作区别不大,因为在嵌入式编程中,最底层的指令集的行为已经在 qemu 中实现的很好了,硬件模拟方面,qemu 也大致能够模拟操作寄存器后,处理器的行为,这些在对 qemu 的底层支持和学习的过程中已经进行了大量的实验和研究。
理解 qemu 的使用,会对嵌入式软件原理有着更加深刻的理解,从更大的层面上来说,虚拟化的行为本来就是一种很好的解决方案,去设计一个嵌入式软件方案,去演示一个底层软件,或者节约下载调试时间,开发嵌入式上层业务系统软件的功能层面来说,qemu 都是值得去研究和使用的工具。
QEMU 的安装
关于 qemu 的安装官方提供有两种安装方式:
- 源码编译安装。
- 使用包管理进行安装。
详情参考官方网站的 qemu 下载详情页。
宿主机环境:
本机安装环境为 mac 系统的 Ubuntu 20.04.5 LTS 虚拟机,宿主机环境如下:
配置项 | 配置名称 |
---|---|
Operating System | Ubuntu 20.04.5 LTS |
Kernel | Linux 5.15.0-46-generic |
Architecture | x86-64 |
Virtualization | kvm |
Processor | Intel® Core™ i7-9750H CPU @ 2.60GHz × 2 |
Graphics | virgl (Intel® UHD Graphics 630 (Compat)) |
Memory | 1.9 GiB |
Disk Capacity | 68.7 GB |
源码编译安装:
To download and build QEMU 7.1.0-rc4:
wget https://download.qemu.org/qemu-7.1.0-rc4.tar.xz
tar xvJf qemu-7.1.0-rc4.tar.xz
cd qemu-7.1.0-rc4
./configure
make
make install
编译安装异常处理:
缺少 Ninja 工具
cs@ubuntu:~/Desktop/workspace/qemu-7.1.0-rc3**$ ./configure
Using './build' as the directory for build output
ERROR: Cannot find Ninja
使用以下指令:
sudo apt-get install ninja-build##使用该指令安装Ninja工具
缺少 glib 开发工具库
cs@ubuntu:~/Desktop/workspace/qemu-7.1.0-rc3$ ./configure
Using './build' as the directory for build output
ERROR: glib-2.56 gthread-2.0 is required to compile QEMU
使用以下指令:
sudo apt-get install libglib2.0-dev##使用该指令安装glib工具
缺少 pixman-1 运行时依赖库
Run-time dependency pixman-1 found: NO (tried pkgconfig)
../meson.build:522:2: ERROR: Dependency "pixman-1" not found, tried pkgconfig
A full log can be found at /home/cs/Desktop/workspace/qemu-7.1.0-rc3/build/meson-logs/meson-log.txt
ERROR: meson setup failed
使用以下指令:
sudo apt-get install libpixman-1-dev##使用该指令安装pixman-1运行时依赖库
编译过程中会遇到一些问题,大多是一些库和包找不到的情况,具体的可以参考 CSDN-BLOG-LinuxOS 学习 qemu。
验证:
安装完成后可以使用 qemu 工具查看工具版本号进行验证安装成功
cs@ubuntu:~$ qemu-arm -version
qemu-arm version 7.0.93
Copyright (c) 2003-2022 Fabrice Bellard and the QEMU Project developers
小结:
编译过程中,因为未设置编译选项,所以对所有的平台系统进行了编译,编译时间有点长所以可以耐心等待。
参考文档
感悟
相逢恨晚,心疼当年为了学习而花钱买的板子,进阶学习要板子,基础学习还是模拟的就够用了