在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模塊。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章