Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the board
Thread view  Mix view  Order
rr

Homepage E-mail

Berlin, Germany,
08.04.2009, 22:43
 

QEMU 0.10.2 available (Announce)

The QEMU team has released version 0.10.2 on 06 April 2009.

Home page: http://www.qemu.org/
Download (sources): qemu-0.10.2.tar.gz
Announcement: ANNOUNCE: Release 0.10.2 of QEMU

Changes:
- fix savevm/loadvm (Anthony Liguori)
- live migration: fix dirty tracking windows (Glauber Costa)
- live migration: improve error propogation (Glauber Costa)
- qcow2: fix image creation for > ~2TB images (Chris Wright)
- hotplug: fix error handling for if= parameter (Eduardo Habkost)
- qcow2: fix data corruption (Nolan Leake)
- virtio: fix guest oops with 2.6.25 kernels (Rusty Russell)
- SH4: add support for -kernel (Takashi Yoshii, Aurelien Jarno)
- hotplug: fix closing of char devices (Jan Kiszka)
- hotplug: remove incorrect check for device name (Eduardo Habkost)
- enable -k on win32 (Herve Poussineau)
- configure: use LANG=C for grep (Andreas Faerber)
- fix VGA regression (malc)

---
Forum admin

rr

Homepage E-mail

Berlin, Germany,
08.04.2009, 22:47

@ rr

QEMU 0.10.2 available

I've uploaded "qemu-0.10.2-win32.7z" to http://www.bttr-software.de/qemu/.

You also need fmod.dll, SDL.dll, and zlib1.dll, which are available as separate downloads.

There are no new mods. Just see README-win32.txt for details.

---
Forum admin

rr

Homepage E-mail

Berlin, Germany,
09.04.2009, 23:07

@ rr

QEMU 0.10.2 available

> I've uploaded "qemu-0.10.2-win32.7z" to
> http://www.bttr-software.de/qemu/.

Question to Japheth and cm: Does the "repeating keys" issue still occur in this build? If so, I'll try merging Japheth's mod in.

---
Forum admin

ecm

Homepage E-mail

Düsseldorf, Germany,
10.04.2009, 03:22

@ rr

QEMU 0.10.2 available

> > I've uploaded "qemu-0.10.2-win32.7z" to
> > http://www.bttr-software.de/qemu/.
>
> Question to Japheth and cm: Does the "repeating keys" issue still occur in
> this build? If so, I'll try merging Japheth's mod in.

Yes, it still occurs. It however seems to occur only when a (German) keyboard driver is installed. I'm using Horst Schaeffer's KEYBW. It apparently hooks Int09. The bug causes one of a few fast typed keystrokes to appear two times on the screen, but interestingly the first time it's the untranslated character (i.e. "y" when pressing the key labeled "Z") while the second time it's the translated one (i.e. "z").

---
l

rr

Homepage E-mail

Berlin, Germany,
10.04.2009, 09:52

@ ecm

QEMU 0.10.2 available

> > Question to Japheth and cm: Does the "repeating keys" issue still occur
> in
> > this build? If so, I'll try merging Japheth's mod in.
>
> Yes, it still occurs. It however seems to occur only when a (German)
> keyboard driver is installed.

I will look into this. Und Frohe Ostern! :flower:

Unfortunately I can't apply Japheth's mod for QEMU 0.9.1 to QEMU 0.10.x "automatically" due to QEMU source code changes. So I have to ask Japheth for some help. :-)

---
Forum admin

Japheth

Homepage

Germany (South),
10.04.2009, 18:22

@ rr

QEMU 0.10.2 available

> Unfortunately I can't apply Japheth's mod for QEMU 0.9.1 to QEMU 0.10.x
> "automatically" due to QEMU source code changes. So I have to ask Japheth
> for some help. :-)

I added the changes to 0.10.2 and created a patch.

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> qemukbd.dif

--- pckbd.co    Tue Apr  7 02:05:00 2009
+++ pckbd.c     Fri Apr 10 16:09:30 2009
@@ -26,6 +26,7 @@
 #include "pc.h"
 #include "ps2.h"
 #include "sysemu.h"
+#include "qemu-timer.h"
 
 /* debug PC keyboard */
 //#define DEBUG_KBD
@@ -126,6 +127,8 @@
     qemu_irq irq_kbd;
     qemu_irq irq_mouse;
     target_phys_addr_t mask;
+    QEMUTimer *kbd_timer;
+    uint32_t last_kbd;
 } KBDState;
 
 static KBDState kbd_state;
@@ -148,9 +151,13 @@
             if (s->mode & KBD_MODE_MOUSE_INT)
                 irq_mouse_level = 1;
         } else {
+            if (qemu_timer_pending(s->kbd_timer)) {
+                s->status &= ~KBD_STAT_OBF;
+            } else {
             if ((s->mode & KBD_MODE_KBD_INT) &&
                 !(s->mode & KBD_MODE_DISABLE_KBD))
                 irq_kbd_level = 1;
+            }
         }
     }
     qemu_set_irq(s->irq_kbd, irq_kbd_level);
@@ -168,6 +175,16 @@
     kbd_update_irq(s);
 }
 
+static void kbd_timer_proc(void *opaque)
+{
+    KBDState *s = opaque;
+    if (ps2_getcount(s->kbd))
+        kbd_update_kbd_irq( s, 1 );
+    else
+        kbd_update_kbd_irq( s, 0 );
+    return;
+}
+
 static void kbd_update_aux_irq(void *opaque, int level)
 {
     KBDState *s = (KBDState *)opaque;
@@ -279,17 +296,21 @@
 static uint32_t kbd_read_data(void *opaque, uint32_t addr)
 {
     KBDState *s = opaque;
-    uint32_t val;
 
     if (s->pending == KBD_PENDING_AUX)
-        val = ps2_read_data(s->mouse);
-    else
-        val = ps2_read_data(s->kbd);
+        return ps2_read_data(s->mouse);
+
+    if ( !qemu_timer_pending( s->kbd_timer )) {
+        if ( ps2_getcount( s->kbd ) > 1)
+            qemu_mod_timer( s->kbd_timer, qemu_get_clock(vm_clock) + ticks_per_sec / 50 );
+        s->last_kbd = ps2_read_data(s->kbd);
+    }
+
 
 #if defined(DEBUG_KBD)
-    printf("kbd: read data=0x%02x\n", val);
+    printf("kbd: read data=0x%02x\n", s->last_kbd);
 #endif
-    return val;
+    return s->last_kbd;
 }
 
 static void kbd_write_data(void *opaque, uint32_t addr, uint32_t val)
@@ -380,6 +401,8 @@
 
     s->kbd = ps2_kbd_init(kbd_update_kbd_irq, s);
     s->mouse = ps2_mouse_init(kbd_update_aux_irq, s);
+    s->kbd_timer = qemu_new_timer(vm_clock, kbd_timer_proc, s);
+    s->last_kbd = 0;
 #ifdef TARGET_I386
     vmmouse_init(s->mouse);
 #endif
@@ -437,6 +460,8 @@
 
     s->kbd = ps2_kbd_init(kbd_update_kbd_irq, s);
     s->mouse = ps2_mouse_init(kbd_update_aux_irq, s);
+    s->kbd_timer = qemu_new_timer(vm_clock, kbd_timer_proc, s);
+    s->last_kbd = 0;
 #ifdef TARGET_I386
     vmmouse_init(s->mouse);
 #endif
--- ps2.co      Tue Apr  7 02:05:00 2009
+++ ps2.c       Fri Apr 10 16:02:04 2009
@@ -134,6 +134,12 @@
     s->update_irq(s->update_arg, 1);
 }
 
+int ps2_getcount(void *opaque)
+{
+    PS2Queue *q = opaque;
+    return( q->count );
+}
+
 /*
    keycode is expressed as follow:
    bit 7    - 0 key pressed, 1 = key released
--- ps2.ho      Tue Apr  7 02:05:00 2009
+++ ps2.h       Fri Apr 10 16:02:30 2009
@@ -7,3 +7,4 @@
 void ps2_queue(void *, int b);
 void ps2_keyboard_set_translation(void *opaque, int mode);
 void ps2_mouse_fake_event(void *opaque);
+int ps2_getcount(void *);

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> qemukbd.dif

---
MS-DOS forever!

rr

Homepage E-mail

Berlin, Germany,
26.05.2009, 22:52

@ Japheth

QEMU 0.10.2 available

> > Unfortunately I can't apply Japheth's mod for QEMU 0.9.1 to QEMU 0.10.x
> > "automatically" due to QEMU source code changes. So I have to ask
> Japheth
> > for some help. :-)
>
> I added the changes to 0.10.2 and created a patch.

[snip]

This patch is still valid for QEMU 0.10.5. Although I'd like to beautify it a little. ;-) Is anyone interested in a new binary?

---
Forum admin

Japheth

Homepage

Germany (South),
27.05.2009, 10:47

@ rr

QEMU 0.10.2 available

> Although I'd like to beautify it a little. ;-)

Good ... but remember: true beauty comes from within!

> Is anyone interested in a new binary?

I'm still happy with 0.9.1 :-P

---
MS-DOS forever!

Rugxulo

Homepage

Usono,
28.05.2009, 22:03

@ Japheth

QEMU 0.10.2 available

> > Is anyone interested in a new binary?
>
> I'm still happy with 0.9.1 :-P

I briefly tried one of his 0.10.0 builds, but it kept getting updated so fast that I deleted it, and I haven't gotten around to getting a newer one. (Of course, same issue with BOCHS, haven't upgraded yet, but I've been using VirtualBox a lot lately.)

Back to the board
Thread view  Mix view  Order
22632 Postings in 2109 Threads, 402 registered users, 398 users online (0 registered, 398 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum