Deploy linux kernel on QEMU
本文主要是记录我第一次使用 Qemu 运行 Linux kernel 的过程。整个过程包括下载、编译、制作根文件系统、编写 init 脚本几个步骤。由于是第一次使用 Qemu 运行 linux kernel,难免会有些问题,希望不要误导大家。
1. Introduction
本文章主要是分享我在初次接触使用 Qemu 运行编译后的 linux kernel 的经验。由于是新手,文中难免有错误,敬请批评指正
2. 开发环境
首先我们需要有一个宿主机,也就是用来运行 Qemu*,编译 *Linux 的主机。我在本文中主要是使用的 vmware 虚拟机,系统是 Ubuntu 18.04 LTS。
下载必须的开发工具,包括 Qemu,Linux kernel,gcc 等等
2.1 下载安装 Qemu
在 Qemu 官网上下载 Qemu 源码,版本可以选择最新的 stable 版本,我在本次实验中选择的是 Qemu v4.2.1
下载好之后,需要编译安装。
这里可以直接按照 Qemu 官网上的安装教程做,命令也不复杂,只是由于使用的都是默认的配置,因此会将大部分的工具都编译安装,编译过程会比较慢。
1
2
3
4
5 wget https://download.qemu.org/qemu-4.2.1.tar.xz
tar xvJf qemu-5.1.0-rc1.tar.xz
cd qemu-5.1.0-rc1
./configure
make
编译完成后,默认是不会将工具安装到系统中的,所有的可执行文件都在下载解压后的目录中,运行虚拟机所需要的可执行文件也在该目录中,对应于 <平台>-softmmu
目录中,比如 x86_64 平台的虚拟机在 x86_64-softmmu
目录中,aarch64 平台的虚拟机在 aarch64-softmmu
目录中。
为了方便直接引用目标平台的可执行虚拟机文件(以下都以x86-64为例),我们可以创建 qemu-system-x86_64 的软链接,将这个软链接文件放在 PATH
中。ln -s <绝对路径>/qemu-4.2.1/x86_64-softmmu/qemu-system-x86_64 /usr/bin/qemu-system-x86_64
2.2 下载 Linux kernel
下载 Linux 内核 在 github 或者 kernel.org 上下载即可,推荐下载 LTS 的内核版本,可以在 kernel.org