QEMU is an emulator for various CPUs. It works on Linux, Windows, FreeBSD and Mac OS X. Windows version is in an alpha stage. I hope I can provide useful information on development and usage of the software.
C:
-std vga
, -std cirrus
and -sdl
=> no changes.SET QEMU_AUDIO_DRV=fmod
and QEMU_FMOD_DRV=dsound
=> no audio output (?).sha1sum
. Since Qemu-1.0 the build is done with the MinGW compiler (as it doesn't compile any more with cygwin, even if Cygwin is still used for the shell and other tools: MSYS is not required)
The main difference is now that the build is done since Qemu-1.2.1 with MinGW by using the latest version of gcc.
You need the following packages (downloadable with the MinGW installer program) :
[Show/Hide]
http://prdownloads.sourceforge.net/mingw/mingw-get-0.5-mingw32-beta-20120426-1-bin.tar.xz?download
http://prdownloads.sourceforge.net/mingw/binutils-2.23.1-1-mingw32-bin.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/gcc-4.7.2-1-mingw32-doc.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/gcc-4.7.2-1-mingw32-lang.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/gcc-4.7.2-1-mingw32-lic.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/gcc-c++-4.7.2-1-mingw32-bin.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/gcc-core-4.7.2-1-mingw32-bin.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/gdb-7.5-1-mingw32-bin.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/libexpat-2.0.1-1-mingw32-dll-1.tar.gz?download
http://prdownloads.sourceforge.net/mingw/libgcc-4.7.2-1-mingw32-dll-1.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/libgmp-5.0.1-1-mingw32-dll-10.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/libgomp-4.7.2-1-mingw32-dll-1.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/libiconv-1.14-2-mingw32-dev.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/libiconv-1.14-2-mingw32-dll-2.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/libintl-0.18.1.1-2-mingw32-dll-8.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/libmpc-0.8.1-1-mingw32-dll-2.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/libmpfr-2.4.1-1-mingw32-dll-1.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/libpthreadgc-2.9.0-mingw32-pre-20110507-2-dll-2.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/libquadmath-4.7.2-1-mingw32-dll-0.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/libssp-4.7.2-1-mingw32-dll-0.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/libstdc++-4.7.2-1-mingw32-dll-6.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/make-3.82.90-2-mingw32-cvs-20120902-bin.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/mingw-get-0.5-mingw32-beta-20120426-1-bin.tar.xz?download
http://prdownloads.sourceforge.net/mingw/mingw-get-0.5-mingw32-beta-20120426-1-lic.tar.xz?download
http://prdownloads.sourceforge.net/mingw/mingwrt-3.20-2-mingw32-dev.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/mingwrt-3.20-2-mingw32-dll.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/pkginfo-0.5-mingw32-beta-20120426-1-bin.tar.xz?download
http://prdownloads.sourceforge.net/mingw/pthreads-w32-2.9.0-mingw32-pre-20110507-2-dev.tar.lzma?download
http://prdownloads.sourceforge.net/mingw/w32api-3.17-2-mingw32-dev.tar.lzma?download
GLIB for MinGW:
Fetched new GTK+ Bundle for mingw
You need the following package http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.24/gtk+-bundle_2.24.10-20120208_win32.zip
Warning: do not forget to correct the values of prefix=
in the provided lib/pkgconfig/*.pc
files!
See gtk+-bundle_win32.README
ZLIB for MinGW:
You need the following packages
http://sourceforge.net/projects/mingw/files/MinGW/Extension/zlib/zlib-1.2.7-1/libz-1.2.7-1-mingw32-dll-1.tar.lzma/download and
http://sourceforge.net/projects/mingw/files/MinGW/Extension/zlib/zlib-1.2.7-1/libz-1.2.7-1-mingw32-dev.tar.lzma/download
Note: everything is installed for me in C:\MinGW
. Those tar files can be extracted with the -lzma
option of cygwin's tar if needed, as the cygwin's shell is still used by me (and not the MSYS version).
SDL for MinGW:
Fetched SDL-devel-1.2.15-mingw32.tar.gz from SDL site.
DirectX:
Fetched http://sourceforge.net/projects/mingwdx/files/latest/download?source=files
and files from http://www.filehat.com/folders.php?fid=134
PIXMAN for MinGW:
Fetch my version of the
pixman library for MinGW pixman-0.28.0-mingw32.tar.xz.
Source code is here: http://cairographics.org/releases/
(or here: pixman-0.28.0.tar.gz)
Note: my porting notes are here: pixman-0.28.0-mingw32-README.txt.
libfdt for MinGW :
Optionally fetch my version of the
libfdt library for MinGW mingw-libfdt-1.3.0-EL.tar.bz2.
Source code is here: http://jdl.com/software/dtc-v1.3.0.tgz
(or here: dtc-v1.3.0.tgz)
Note: my porting notes are here: libfdt-1.3.0-mingw32-README.txt.
Qemu:
export PATH=/cygdrive/c/MinGW/bin:$HOME/bin:/usr/local/bin:/usr/bin:/bin cd $HOME/bin ln -s /cygdrive/c/MinGW/bin/dlltool.exe i586-mingw32-dlltool ln -s /cygdrive/c/MinGW/bin/ld.exe i586-mingw32-ld ln -s /cygdrive/c/MinGW/bin/windres.exe i586-mingw32-windres ln -s /usr/bin/pkg-config.exe i586-mingw32-pkg-config ln -s ar-wrapper.h i586-mingw32-ar ln -s gcc-wrapper.sh i586-mingw32-gcc
#!/bin/bash # ############################################################################## # (c) Eric Lassauge - January 2012 # <lassauge {AT} users {DOT} sourceforge {DOT} net > # # ############################################################################## # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/> # ############################################################################## # Complete script for MinGW gcc wrapper from cygwin: change POSIX path to windows path # Needs: cygpath #Configure to where you installed MinGW mingwbase=/cygdrive/c/MinGW mingwroot=`cygpath -w ${mingwbase}` dollarstar="" # Parse the gcc flags to change all file pathes while [ $# -ne 0 ]; do case "$1" in -o) param=`cygpath -w $2` dollarstar="${dollarstar} -o ${param}" shift ;; -I) param=`cygpath -w $2` dollarstar="${dollarstar} -I ${param}" shift ;; -I*) parami=`echo $1 | sed -e 's/-I//'` first=`echo ${parami} | sed -e 's/^\(.\).*/\1/'` case $first in '/' | '.') param=`cygpath -w ${parami}` dollarstar="${dollarstar} -I${param}" ;; *) dollarstar="${dollarstar} ${1}" ;; esac ;; -B) param=`cygpath -w $2` dollarstar="${dollarstar} -B ${param}" shift ;; -L) param=`cygpath -w $2` dollarstar="${dollarstar} -L ${param}" shift ;; -L*) paraml=`echo $1 | sed -e 's/-L//'` first=`echo ${paraml} | sed -e 's/^\(.\).*/\1/'` case $first in '/' | '.') param=`cygpath -w ${paraml}` dollarstar="${dollarstar} -L${param}" ;; *) dollarstar="${dollarstar} ${1}" ;; esac ;; *) if [ -f "$1" ] then param=`cygpath -w $1` dollarstar="${dollarstar} ${param}" else dollarstar="${dollarstar} $1" fi ;; esac shift done # remove spurious ^M dollarstar=`echo "${dollarstar}" | sed -e 's/^M//g'` # echo "# Calling MinGW compiler: gcc ${dollarstar}" # Add the path to mingw tools export PATH=${mingwbase}/bin:$PATH ${mingwbase}/bin/gcc -Wl,-mi386pe --sysroot="${mingwroot}" ${dollarstar}
#!/bin/bash # ############################################################################## # (c) Eric Lassauge - December 2012 # <lassauge {AT} users {DOT} sourceforge {DOT} net > # # ############################################################################## # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/> # ############################################################################## # Complete script for MinGW ar wrapper from cygwin: change POSIX path to windows path # Needs: cygpath #Configure to where you installed MinGW mingwbase=/cygdrive/c/MinGW mingwroot=`cygpath -w ${mingwbase}` dollarstar="" # Parse the gcc flags to change all file pathes while [ $# -ne 0 ]; do case "$1" in *) if [ -f "$1" ] then param=`cygpath -w $1` dollarstar="${dollarstar} ${param}" else dollarstar="${dollarstar} $1" fi ;; esac shift done # remove spurious ^M dollarstar=`echo "${dollarstar}" | sed -e 's/ //g'` # echo "# Calling MinGW compiler: gcc ${dollarstar}" # Add the path to mingw tools export PATH=${mingwbase}/bin:$PATH ${mingwbase}/bin/ar ${dollarstar}
export PKG_CONFIG_PATH=/cygdrive/c/MinGW/lib/pkgconfig ./configure --target-list="i386-softmmu arm-softmmu sparc-softmmu ppc-softmmu x86_64-softmmu mipsel-softmmu"\ --cc=i586-mingw32-gcc --host-cc=/usr/bin/gcc --audio-drv-list="winwave dsound sdl fmod"\ --audio-card-list="ac97 es1370 sb16 cs4231a adlib gus hda" \ --prefix=/home/lassauge/MyDocuments/Qemu-windows \ --with-confsuffix=/Bios \ --fmod-lib=/home/lassauge/Qemu/fmodapi375win/api/lib/libfmod.a \ --fmod-inc=/home/lassauge/Qemu/fmodapi375win/api/inc \ --enable-mixemu \ --disable-guest-agent \ --disable-werror \ --disable-strip $*
config-host.mak
and config-target.mak
because some spurious ^M might be in! (you can use this script to ease your pain: clean-config.sh).make QEMU_DGFLAGS=" "
C:\MinGW\lib
in my case):fmod.dll intl.dll libgcc_s_dw2-1.dll libglib-2.0-0.dll libgthread-2.0-0.dll libpng14-14.dll libssp-0.dll libz-1.dll SDL.dll zlib1.dll
This program is provided as is and without any warranty.