Deploy linux kernel on QEMU

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

下载必须的开发工具,包括 QemuLinux kernelgcc 等等

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

2.3 利用 busybox 制作内存根文件系统

评论