实验过程在Ubuntu 16.04操作系统中成功实现,部分操作过程可能和官方文档有所出入。 我只翻译了自己所用到的部分,完整文档请移步 官方文档 Tools
开发平台
我使用的是虚拟机,在VMware Station上安装了Ubuntu 16.04版本用于开发。我同时也在物理机上安装了Ubuntu 16.04,但采用虚拟机的原因一是便于截图,二是我在Ubuntu下使用代理但Terminal没法使用,下载速度很慢。
由于频繁的切换虚拟机和物理机界面有所不便,且Ubuntu图形化界面有时比命令行方式操作繁琐,因此我使用了MobaxTerm工具通过SSH登陆虚拟机进行操作。
在使用此工具时,要先安装openssh-server软件,以打开SSH服务 执行以下命令
sudo apt-get install openssh-server
安装完毕后,使用ifconfig
命令可以查看本机IP地址,在MobaxTerm中新建一个session然后填入IP地址即可登陆。
更换阿里云源
更新阿里云的源之后,安装一些依赖包速度会快一些。
更换方法
sudo vim /etc/apt/sources.list
将文中内容替换如下
# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
编译工具链
测试你的工具链
在命令行中输入
objdump -i
可以看到第二行中有 elf32-i386
的字样
输入 gcc -m32 -print-libgcc-file-name
可以看到显示 /usr/lib/gcc/i486-linux-gnu/version/libgcc.a
或者 /usr/lib/gcc/x86_64-linux-gnu/version/32/libgcc.a
如果以上两个命令都可以正常使用,并显示了以下字符,那么你的机器已经编译好了工具链。
我的系统中已经安装好了编译工具链,所以自行编译安装工具链的方法请参见官方文档,地址在开头部分已经给出。
QEMU
官方文档中的下载地址有些慢,我在Github上找到了替代镜像,fork了一份在我的仓库中,请按照如下地址下载:https://github.com/chenat9/mit-qemu.git
01 安装编译依赖库
在编译安装QEMU之前,要先安装如下依赖库:
libsdl1.2-dev libtool-bin libglib2.0-dev libz-dev libpixman-1-dev
02 编译QEMU
进入QEMU目录
cd mit-qemu
执行如下命令
./configure --disable-kvm --target-list="i386-softmmu x86_64-softmmu"
系统会打印出一堆的log信息,正在编译QEMU
等待编译结束后执行
make && sudo make install
(如果不加sudo,会出现权限问题).
至此,环境已经搭建完毕。
测试QEMU
在命令行中输入qemu-system-x86_64
可以看到QEMU启动,如下图: