On Mon, Sep 10, 2012 at 9:23 AM, Stefan Weil <s...@weilnetz.de> wrote: > Am 10.09.2012 08:19, schrieb Clemens Kolbitsch: > > On Sat, Sep 8, 2012 at 11:22 AM, Clemens Kolbitsch > <kolbit...@lastline.com> wrote: > > On Fri, Sep 7, 2012 at 9:26 PM, Stefan Weil <s...@weilnetz.de> wrote: > > Am 08.09.2012 02:48, schrieb Clemens Kolbitsch: > > Hi guys, > > I need to run Win7 64bit in Qemu without KVM support. I found a few > messages concerning the "unsupported architecture" problem (Windows > shows a BSOD with "STOP 0x0000005D ..." on boot), for example > > http://lists.gnu.org/archive/html/qemu-devel/2011-03/msg01623.html > or > http://permalink.gmane.org/gmane.comp.emulators.qemu/92457 > > but I don't think there was ever a solution to the problem - at least > what is proposed does not work (I've tried stable and GIT versions). > > Since I have a decent background of modifying the Qemu internals, I'm > more than happy to contribute to solving this issue, but I'm not sure > if anyone is currently working on it (i.e., I don't want to start at 0 > in case someone is about to release a patch). > > Please let me know if there is already a know solution/workaround or > whoever might be working on it, please ping me so we can sync. > > BTW, in case this is necessary, here are the details of what I > need/what is not working: > > Qemu: current git-trunk, > > x86_64-softmmu$ ./qemu-system-x86_64 --version > QEMU emulator version 1.2.50, Copyright (c) 2003-2008 Fabrice Bellard > > host: 64bit, Ubuntu LTS12.04 > > guest: 64bit Windows 7, no KVM possible > > Thanks! > -Clemens > > Hi Clemens, > > AFAIK, nobody is working on this issue which exists for a long time now. > It would be great if you could find a solution to make QEMU without KVM > work with Windows guests. > > Hi Stefan, > > thanks for the info. I'll work on it then - hopefully I can come back > with a patch soon! > > PS: It's QEMU, not Qemu. I modified the subject in my reply :-) > > hehe, old habbit :) I'll try to remember - but why is the ML then > called "Qemu-devel" ? ;) > > After a first night of debugging, I have come up with a simple patch. > I'm still testing and it seems it's not the ultimate solution yet > (there are still bluescreens), but it already gets you much further > while booting (using either the install CD or an actual image). > > This diffs against the current stable-1.1. As you can see, one of the > feature bits of the CPUID are removed due to TCG not supporting them > (or the TCG bitmask is just missing them). Since Qemu uses CPUID_DE in > > > QEMU :-) > > > other locations, I'm assuming the bitmask is just wrong. > > Can someone confirm that TCG supports CPUID_DE ? If not, I'll need to > work on this, otherwise I'll investigate why Win7 still crashes with a > BSOD. > > Thanks! > Clemens > > > qemu$ git diff > diff --git a/target-i386/cpu.c b/target-i386/cpu.c > index 388bc5c..f2af36d 100644 > --- a/target-i386/cpu.c > +++ b/target-i386/cpu.c > @@ -259,7 +259,8 @@ typedef struct x86_def_t { > CPUID_PAE | CPUID_MCE | CPUID_CX8 | CPUID_APIC | CPUID_SEP | \ > CPUID_MTRR | CPUID_PGE | CPUID_MCA | CPUID_CMOV | CPUID_PAT | \ > CPUID_PSE36 | CPUID_CLFLUSH | CPUID_ACPI | CPUID_MMX | \ > - CPUID_FXSR | CPUID_SSE | CPUID_SSE2 | CPUID_SS) > + CPUID_FXSR | CPUID_SSE | CPUID_SSE2 | CPUID_SS | \ > + CPUID_DE) /* needed by Win7 64bit */ > /* partly implemented: > CPUID_MTRR, CPUID_MCA, CPUID_CLFLUSH (needed for Win64) > CPUID_PSE36 (needed for Solaris) */ > > > Hi Clemens, > > indeed, it looks like CPUID_DE fixes that BSOD with "STOP 0x0000005D ...". > In my test scenario Windows now reboots instead of showing the BSOD. > > This commit added the TCG feature bit trimming which broke Windows: > > commit 551a2dec8fa55006a68393b9d6fb63577d2b3f1c > Autor: Andre Przywara <andre.przyw...@amd.com> Do Mär 11 14:39:03 2010 > Eintragender: Aurelien Jarno <aurel...@aurel32.net> Sa Mär 13 16:50:54 > 2010 > > x86/cpuid: add TCG feature bit trimming > > In KVM we trim the user provided CPUID bits to match the host CPU's > one. Introduce a similar feature to QEMU/TCG. Create a mask of TCG's > capabilities and apply it to the user bits. > This allows to let the CPU models reflect their native archetypes. > > Signed-off-by: Andre Przywara <andre.przyw...@amd.com> > Signed-off-by: Aurelien Jarno <aurel...@aurel32.net> > > > Andre, why don't we set the requested feature bits - no matter what TCG > provides?
Stefan, could you tell me what QEMU ( ;-) ) HW configuration you use for your testing? I'm able to boot, but it still is very unstable - after a few seconds of running, I still run into BSODs. I think it's independent of the bug I was working on, but I'd like to test some more. BTW, I'm actually quite confident that the missing CPU-ID bit caused the 0x5D booting BSOD, since I took two kernel boot traces (one of QEMU stable crashing and a working VM) and the location the traces branched off from each other was where the CPU-ID bits were checked (and this one feature bit was the only thing that was not set properly for the check to succeed). -Clemens