Windows 98 doesn't detect mouse on qemu and SeaBIOS.

Bug #521994 reported by Kusanagi Kouichi on 2010-02-15
This bug affects 10 people
Affects Status Importance Assigned to Milestone
Nominated for Trunk by David Johnston
qemu-kvm (Debian)
Fix Released

Bug Description

A windows 98 guest doesn't detect mouse on recent qemu. I bisected and the result is

fd646122418ecefcde228d43821d07da79dd99bb is the first bad commit
commit fd646122418ecefcde228d43821d07da79dd99bb
Author: Anthony Liguori <email address hidden>
Date: Fri Oct 30 09:06:09 2009 -0500

    Switch pc bios from pc-bios to seabios

    SeaBIOS is a port of pc-bios to GCC. Besides using a more modern tool chain,
    SeaBIOS introduces a number of new features including PMM support, better
    BEV and BCV support, and better PnP support.

    Signed-off-by: Anthony Liguori <email address hidden>

I got following messages with DEBUG_BIOS

Start bios (version
Ram Size=0x08000000 (0x0000000000000000 high)
CPU Mhz=2271
Found 1 cpu(s) max supported 1 cpu(s)
PIIX3/PIIX4 init: elcr=00 0c
PCI: bus=0 devfn=0x00: vendor_id=0x8086 device_id=0x1237
PCI: bus=0 devfn=0x08: vendor_id=0x8086 device_id=0x7000
PCI: bus=0 devfn=0x09: vendor_id=0x8086 device_id=0x7010
region 4: 0x0000c000
PCI: bus=0 devfn=0x0b: vendor_id=0x8086 device_id=0x7113
PCI: bus=0 devfn=0x10: vendor_id=0x1013 device_id=0x00b8
region 0: 0xe0000000
region 1: 0xe2000000
region 6: 0xe2010000
MP table addr=0x000f89b0 MPC table addr=0x000f89c0 size=224
SMBIOS ptr=0x000f8990 table=0x07fffef0
ACPI tables: RSDP=0x000f8960 RSDT=0x07ffde30
Scan for VGA option rom
Running option rom at c000:0003
VGABios $Id$
Turning on vga console
Starting SeaBIOS (version

Found 0 lpt ports
Found 0 serial ports
ATA controller 0 at 1f0/3f4/c000 (irq 14 dev 9)
ATA controller 1 at 170/374/c008 (irq 15 dev 9)
ps2 irq but no data.
ata0-0: PCHS=812/16/63 translation=none LCHS=812/16/63
ata0-1: PCHS=1152/16/56 translation=none LCHS=1024/16/56
ps2_recvbyte timeout
keyboard initialized
Scan for option roms
Returned 53248 bytes of ZoneHigh
e820 map has 6 items:
  0: 0000000000000000 - 000000000009f400 = 1
  1: 000000000009f400 - 00000000000a0000 = 2
  2: 00000000000f0000 - 0000000000100000 = 2
  3: 0000000000100000 - 0000000007ffd000 = 1
  4: 0000000007ffd000 - 0000000008000000 = 2
  5: 00000000fffc0000 - 0000000100000000 = 2
enter handle_19:
Booting from Hard Disk...
Booting from 0000:7c00
pnp call arg1=5
pnp call arg1=0
ps2_recvbyte timeout
ps2_recvbyte timeout
ps2_recvbyte timeout
ps2_recvbyte timeout

Daniel Bair (danielbair) wrote :

Running 10.04 beta on three different machines and on all the Win95 guest ps2 mouse emulation does not work.

francesco bat (nerobat2004) wrote :

I also confirm from Lubuntu 10.04 beta2.
Win98 on qemu doesn't detect mouse.
The sound also doesn't works.
I used the same image on Ubuntu 9.04 and it worked.
Francesco bat

Etcheverria (j-etcheverria) wrote :

I confirm that mouse is no more detected from version QEMU-0.12 running a Windows 3.1 on XP-PRO
In fact mouse seems to be "detected" (arrow is present and there is no warning message about lack of mouse) but the arrow doesn't move. (I created a new install with QEMU-0.12.3)

francesco bat (nerobat2004) wrote :

I confirm another time on Ubuntu 10.04 stable.
Win98 doesn't detect mouse.
Also the audio doesn't work !
Francesco bat

Changed in qemu:
status: New → Confirmed
Natalia Portillo (claunia) wrote :

I confirm this same bug appears in Windows 95, Windows Me and several XFree86 and X.Org versions, as well as DOS based Microsoft Mouse drivers.

jopo (erkki-laasonen) wrote :

I confirm also that mouse is not detected on Kubuntu 10.04 running qemu and Windows 98.

Will Taff (wrtaff) wrote :

I did find a workaround - I removed the BOCH BIOS package and QEMU package from my Lucid Install, and instead used the respective QEMU packages from 8.04 - this worked for me. I don't know if the most recent updates to the BIOS and QEMU packages will fix this or not - I might not try until I get confirmation that the new 10.04 packages are working.

Will Taff (wrtaff) wrote :

Apologies if I'm spamming this venue - truly just trying to be of assistance. Just got done installing the new updates to packages
 qemu bochsbios qemu-kvm seabios vgabios - still did not fix the failure to recognize the mouse.

this is fix for other mouse-stuck problem, or maybe the same.

LightBit (lightbit8) wrote :

SeaBIOS 6.0 solved problem for me.

David Johnston (g478ba6) wrote :

Yes! Using SeaBIOS 6.0 worked for me as well. Thanks LightBit. I've been waiting for this for quite a while.

Changed in qemu-kvm (Debian):
status: Unknown → New
Changed in qemu-kvm (Debian):
status: New → Fix Committed
Kusanagi Kouichi (slash-ac) wrote :
Download full text (3.4 KiB)

Looks to be fixed by

commit 14ac15d3ac8e0ef1c91204e2ac772b6412a6b99e
Author: Anthony Liguori <email address hidden>
Date: Tue May 11 07:56:30 2010 -0500

    Update SeaBIOS

     - 7d09d0e Fix virtio compile errors on various gcc versions.
     - 89acfa3 Support for booting from virtio disks
     - 6d66316 smbios: avoid counting io hole as ram
     - e5cd945 Fix error causing USB HID "boot" protocol to not be enabled.
     - 0e88576 Add support for USB mice.
     - dd5a8a6 When USB keyboard active, don't send keyboard commands to ps2 port.
     - 5718d56 Document usb-hid.c functions.
     - e438b0c Further parallelize init when using CONFIG_THREAD_OPTIONROMS.
     - f59b5ac Handle unknown function addresses in tools/
     - 9ba1dea Simplify build by manually resolving external symbols in
     - 698d3f9 USB EHCI should yield() whil waiting for controller to ack reset.
     - f9a774c Add __attribute__((__malloc__)) declaration to internal malloc funcs.
     - b7045ce Minor - remove redundant check from ata_try_dma.
     - 67f6d37 Fix possible unitialized variable issue in usb msc.
     - a7eb8fc Some improvements to optionrom preemption support.
     - d28b0fe Refactor USB hub code.
     - ba28541 Prep version for next release.
     - 12bffd5 Update version to 0.6.0.
     - 87ab2fb Improve USB EHCI timing.
     - d705e5a Disable inlining on old compilers.
     - bca0736 Force use of indirect function calls in inline assembler.
     - d7eb27e Don't move EBDA while an optionrom is running (CONFIG_THREAD_OPTIONROMS).
     - 7415270 Call to int1552 (from int1346) should set regs->dl.
     - 9dc243e Adjust debug levels of device discovery.
     - d9c9361 Default CONFIG_COREBOOT_FLASH on; make depend on CONFIG_COREBOOT.
     - c35e1e5 Restore segment limits in handle_1589 code.
     - 11cc662 Extend time for rtc to be ready.
     - 4ed378a Backup and restore registers when calling out to user funcs.
     - 68c5139 Enable irqs in kbd/clock calls that caller might "spin" on.
     - f628244 Process event on ps2 keyboard irq even if event already read.
     - a5d8458 Revert "Unify ps2 port data processing."
     - b9ed5e2 Handle variable length return of ps2 port GETID command.
     - 67a9eec Prevent ps2 irqs from messing up ps2 init.
     - 6704cf9 Revert "Rework disabling of ps2 port irqs."
     - 808939c Fix smp cpu detect on gcc 4.5.
     - a979c1c Improvements to tools/
     - 190cc62 Add USB EHCI controller support.
     - 0770d67 Some USB UHCI and OHCI fixes and cleanups.
     - bfe7ca7 Minor - USB OHCI interrupt queue should be one larger.
     - 09e2f7c Reduce size of USB 'struct uhci_td'.
     - 406fad6 Dynamically allocate USB controller structures.
     - 4547eb9 Replace USB encoded 'u32 endp' scheme with explicit struct fields.
     - 8ebcac0 Further parallelize USB init by launching a thread per usb port.
     - e908665 Introduce simple "mutex" locking code.
     - 3b79f8b Only compile usb-hub.c and paravirt.c with 32bit code.
     - 357bdfa Prefer passing a USB "pipe" structure over a USB endp encoding.
     - 7fb8ba8 Add a generic "internal error" warning function.

    Signed-off-by: Anthony Li...


Brad Hards (bradh) wrote :

Looks like this is fixed in qemu.

Changed in qemu:
status: Confirmed → Fix Committed
Changed in qemu-kvm (Debian):
status: Fix Committed → Fix Released
Thomas Huth (th-huth) on 2016-06-15
Changed in qemu:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.