在Windows系统下编译QEMU

一、准备MinGW环境
www.mingw.org下载:
MSys(当前版本是1.0.11)
MSys DTK (当前版本是1.0.1)
MinGW(当前版本是5.1.6)
mingw版本的zlib开发包(当前版本的文件名是libz-1.2.3-1-mingw32-dev.tar.gz)和运行时的dll文件(当前版本的文件名是libz-1.2.3-1-mingw32-dll-1.tar.gz)

依次运行MSys、MSys DTK、MinGW安装程序,按提示信息操作。安装后,在MSys安装目录下的etc目录中创建fstab文件,把MinGW与MSys关联起来。fstab文件的内容很简单,可参考etc目录下的样例文件。然后,MSys的命令行界面,执行下面的命令安装zlib开发包
tar -C /mingw -xf /c/wyk/libz-1.2.3-1-mingw32-dev.tar.gz
这里假定zlib开发包的下载目录是c:\\wyk。

二、安装SDL开发包
www.libsdl.org下载SDL开发包,当前版本是1.2.14,选择Win32平台,文件名是sdl-devel-1.2.14-mingw32.tar.gz
在MSys的命令行界面,执行下面的命令安装
tar -C /mingw -xf /c/wyk/sdl-devel-1.2.14-mingw32.tar.gz
这里假定SDL开发包的下载目录是c:\\wyk。
然后修改 /mingw/SDL-1.2.14/bin目录下的sdl-config脚本文件,将prefix 变量的定义改为 /mingw/SDL-1.2.14

三、编译QEMU
www.nongnu.org/qemu/download.html下载QEMU源码包,当前的稳定版本是0.10.6
在MSys的命令行界面下解开源码包,进入源码目录,先执行
PATH=$PATH:/mingw/SDL-1.2.14/bin
将SDL开发包路径补充进来。然后,执行
./configure --prefix=/c/qemu/0.10.6
配置QEMU。其中的 --prefix 参数指定编译后安装QEMU的目录。

make
命令进行编译。最后再执行
make install
命令安装编译好的QEMU程序。

按前面的配置命令,QEMU程序会安装在c:\\qemu\\0.10.6目录下。在此目录下,还需要拷贝SDL和zlib 的dll文件,QEMU才能正常运行。SDL的dll文件名是SDL.DLL,位于/mingw/SDL-1.2.14/bin目录下;zlib的dll文件名libz-1.dll,在前面下载的libz-1.2.3-1-mingw32-dll-1.tar.gz压缩包内。 运行QEMU程序时,可能会输出错误信息:无法加载PC BIOS(bios.bin文件),这是因为编译安装路径设置在windows系统下与linux系统的有差异造成的,只要用QEMU的 -L 参数指定bios的加载路径(即QEMU.EXE程序所在的目录下)就可以解决。

四、kqemu加速模块
在MinGW环境下无法编译kqemu,但可以直接从www.nongnu.org/qemu/download.html下载kqemu源码包(当前版本是kqemu-1.4.0pre1.tar.gz),里面包含已编译好的windows环境的kqemu模块。
在c:\\qemu目录下创建kqemu目录,将kqemu源码包中的kqemu.inf 和 kqemu.sys 文件解压到kqemu目录中。然后在kqemu.inf文件上点击鼠标右键,在弹出菜单中选择“安装”来安装kqemu模块。安装完成后,用
net start kqemu
命令,可以启动kqemu,供QEMU使用。

注意:经实际验证,kqemu-1.4.0pre1.tar.gz中包含的kqemu.sys在0.10.6版本的QEMU使用时,会使QEMU异常退出,所以运行QEMU时,要加 -no-kqemu 参数,避免使用kqemu模块。

相关推荐