OSDev.org

The Place to Start for Operating System Developers
It is currently Thu Mar 28, 2024 3:14 am

All times are UTC - 6 hours




Post new topic Reply to topic  [ 1 post ] 
Author Message
 Post subject: Having keyboard+mouse problems in QEMU? It's finally fixed!
PostPosted: Thu May 27, 2021 6:04 pm 
Offline
Member
Member

Joined: Wed Mar 30, 2011 12:31 am
Posts: 676
QEMU has had a bug for quite some time now that caused reliable stream corruption for PS/2 devices due to a race in setting flags and delivering interrupts. It's finally been fixed in git. Coincidentally, the day I posted a bug report detailing it, but not in response to that bug report.

For us hobby OS devs, this was an easy one to suffer from as the combination of a scancode set 1 keyboard driver and the regular PS/2 mouse resulted in all sorts of horrible corruption - move the mouse while typing and the both will suffer in painfully obvious ways; but for OSes with more advanced drivers it was more difficult to observe - especially the combination of the "vmmouse" and scancode set 2 completely masked the issue.

Finally, I can play Quake in QEMU again!

As an aside, just before filing the report - and before the fix was committed - I found a viable guest-side workaround, so if you want a functioning driver even with QEMU's former broken implementation, take a look at misaka's shared ps2 interrupt handler (but do note it relies on functionality you may not find on real devices or other VMs, so best to make it optional or detect QEMU before using it).

_________________
toaruos on github | toaruos.org | gitlab | twitter | bim - a text editor


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 1 post ] 

All times are UTC - 6 hours


Who is online

Users browsing this forum: SemrushBot [Bot] and 69 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group