搭建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,等待安裝完成。

 

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啓動內核與文件系統來測試功能了,當然也要測試qemu的調試功能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章