搭建qemu windows编译环境

    准备使用qemu的vexpress平台调试学习arm linux。vexpress是cortex-A9四核结构,支持vexpress平台的qemu要1.0后的版本。windows平台较新的qemu版本比较难找,准备自己下载源代码编译。本文记录环境的搭建过程与qemu的编译。

1. 安装MinGW

www.mingw.org下载mingw-get-setup.exe工具,运行,选择安装目录(如D:\MinGW)。

工具运行后会下载并运行MinGW Installation Manager,根据需要选择安装的包。

然后执行Installation->Apply changes,等待安装完成。

搭建qemu windows编译环境_第1张图片

 

2,启动MinGW

为方便启动MinGW工具,新建到D:\MinGW\msys\1.0\msys.bat的快捷方式。

拷贝D:\MinGW\msys\1.0\etc目录下的fstab.sample文件为fstab,修改fstab的内容:

#Win32_Path  Mount_Point
d:/mingw  /mingw

点击快捷方式运行MinGW,执行命令ls /mingw:

$ ls /mingw
bin  include  lib  libexec  mingw32  msys  share  var

 

3,安装python

编译QEMU需要python工具,并且版本不能太高(3.0以下的版本)。

本文安装python-2.7.6.msi到D:\Python27\。

同时修改fstab文件增加如下内容:

d:/Python27 /python

修改etc目录下的profile文件,增加python命令的路径:

if [ $MSYSTEM == MINGW32 ]; then
  export PATH=".:/usr/local/bin:/mingw/bin:/bin:/python:$PATH"
else
  export PATH=".:/usr/local/bin:/bin:/mingw/bin:/python:$PATH"
fi

 

4,安装gtk库

编译QEMU还需要用到glib2.0的库,pkg-config与libz的库,这些东西在gtk的开发包里面都有。gtk的开发包可以在如下网址下载到:

http://www.gtk.org/download/index.php

可以单独安装需要的开发工具,本文直接下载了整个gtk开发工具包

http://www.gtk.org/download/win32.php

下载GTK+ 2.x的http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.24/gtk+-bundle_2.24.10-20120208_win32.zip。

解压gtk -bundle_2.24.10-20120208_win32.zip到D:\MinGW\gtk目录,配置环境变量

if [ $MSYSTEM == MINGW32 ]; then
  export PATH=".:/usr/local/bin:/mingw/bin:/bin:/python:/mingw/gtk/bin:$PATH"
else
  export PATH=".:/usr/local/bin:/bin:/mingw/bin:/python:/mingw/gtk/bin:$PATH"
fi

export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/mingw/gtk/lib/pkgconfig"

重新启动MinGW运行:

$ pkg-config.exe  --cflags --libs gtk+-2.0
-mms-bitfields -Id:/mingw/gtk/include/gtk-2.0 -Id:/mingw/gtk/lib/gtk-2.0/include
 -Id:/mingw/gtk/include/atk-1.0 -Id:/mingw/gtk/include/cairo -Id:/mingw/gtk/incl
ude/gdk-pixbuf-2.0 -Id:/mingw/gtk/include/pango-1.0 -Id:/mingw/gtk/include/glib-
2.0 -Id:/mingw/gtk/lib/glib-2.0/include -Id:/mingw/gtk/include -Id:/mingw/gtk/in
clude/freetype2 -Id:/mingw/gtk/include/libpng14  -Ld:/mingw/gtk/lib -lgtk-win32-
2.0 -lgdk-win32-2.0 -latk-1.0 -lgio-2.0 -lpangowin32-1.0 -lgdi32 -lpangocairo-1.
0 -lgdk_pixbuf-2.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0
 -lglib-2.0 -lintl

 

5,安装SDL

下载SDL-1.2.15源代码,使用MinGW对SDL进行编译安装:

$ ./configure

$ make

$ make install

执行sdl-config命令,检查sdl是否编译正确:

$ sdl-config
Usage: sdl-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--cflags]
[--libs] [--static-libs]

 

6,编译qemu

$ ./configure --prefix="d:/qemu" --target-list=arm-softmmu  --disable-coroutine-pool

指定安装目录为d:\qemu,只要编译arm平台相关的工具,coroutine-pool在windows平台的qemu上有问题,禁止该选项。从./configure --help可以看到,禁止只是降低性能。因为使用qemu调试跟踪内核,性能无关紧要。

 --disable-coroutine-pool disable coroutine freelist (worse performance)
 --enable-coroutine-pool  enable coroutine freelist (better performance) 

 

如果出现如下错误:

ERROR: zlib check failed
       Make sure to have the zlib libs and headers installed.

重新运行MinGW Installer,从All Packages里面选择msys-zlib的dev软件包安装:

 

然后继续执行上述的configure命令,成功之后执行:

$ make

$ make install

 

7,测试qemu工具

D:\qemu>qemu-system-armw.exe执行qemu,会提示缺少库文件。根据提示从MinGW的目录下搜索缺少的文件。最后需要拷贝如下的库文件到qemu的安装目录:

搭建qemu windows编译环境_第2张图片

库文件准备好之后就可以用qemu启动内核与文件系统来测试功能了,当然也要测试qemu的调试功能。

你可能感兴趣的:(内核学习)