|Subject:||A Fix Re: APM bug Re: [Qemu-devel] Re: Suggestion - trap window-close of VM|
|Date:||Mon, 04 Apr 2005 11:53:36 +0200|
|User-agent:||Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.3) Gecko/20041007 Debian/1.7.3-5|
For anyone running Windows 2000 on Qemu, I've developed a fix that makes APM - and therefore Windows 2000 shutdown - correctly 'power off' (i.e. close) Qemu.
I needed to patch the BIOS - which didn't implement the APM 1.2 16-bit protected mode interface that Windows 2000 apparently requires. Afterwards, as my Windows 2000 installation didn't have the APM driver installed, I simply needed to install it by going Control Panel => Add/Remove Hardware & Next => Add/Troubleshoot a device => Add a new device & Next => No, I want to select the hardware from a list & Next => NT Apm/Legacy Support & Next => Next (again) a few times. Afterwards, I did Control Panel => Power Options, chose the APM tab and made sure the Advanced Power Management support checkbox was ticked. I also chose the Hibernate tab and enabled Hibernate Support too. After rebooting, Windows 2000 now correctly instructs Qemu to shutdown at the appropriate moment. No patches to Qemu were required.
What doesn't work yet is Standby and Suspend, although I've generalised the APM Bios to support both of them. When attempting Standby (which doesn't always appear as an option - a problem I'm aware of), Windows tries to go into Standby but then reports that "the device driver for the device is preventing this machine from entering standby. Please close all applications and try again. If the problem persists, you may need to update this driver." I don't know why this should be. By contrast, Suspend doesn't ever appear as an option - but it would be nice to make this trigger the Qemu savevm/loadvm facility.
You can find the Bios source patch as well as a precompiled patched-binary bios (for those who don't want to download the Bochs source) at http://www.praguespringpeople.org/Struan/Software/BochsBIOS/. Simply copy bios.bin-patchedAPM1.2 over your /usr/local/share/qemu/bios.bin (or better over pc-bios/bios.bin in your Qemu source directory and then do 'make install').
|[Prev in Thread]||Current Thread||[Next in Thread]|