This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-devel] Re: Send A Fake PS/2 Packet to QEMU and Mouse Pointer on PV

To: Xen Devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] Re: Send A Fake PS/2 Packet to QEMU and Mouse Pointer on PV OS
From: "涂堂訓(Tang-Hsun Tu)" <iwantplay@xxxxxxxxx>
Date: Sun, 26 Sep 2010 15:26:02 +0800
Delivery-date: Sun, 26 Sep 2010 00:27:02 -0700
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from :user-agent:mime-version:to:subject:references:in-reply-to :content-type:content-transfer-encoding; bh=p53kDGGpyG6C2S6FWMC8qPm4xXnBR2vOGVO4BwY1zXg=; b=aSDD/mZhbDBfgBQEd+n7wxXB1/bygVuOC8WBRwCq2m/Mfy0m24BEKBIwIrzg6858y0 /qeXwUICeDORetOk0VnmpjuM5TANZObacEwIKKjf4Lhxr4iaLqQVVhDmQiEj82LdPfDF EZjkWXTZDiPdxHubMxgAyqQ+SU5plLlo9/olA=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type:content-transfer-encoding; b=F9iuPPzxXQbNOnPd8fNBfAVKN7M4lYWNEBb4mgj5eK+/+sGBFhs4m8aoh8QRJ1EHRW OJ2SYM0GGPShVkOGxtBMztFc5+FeilEipPHEeuRCnA1Icz2qOF/WKDZVfa2QpHTs8aDJ wdZirlzoBmoJjiNK+ThNZisnG6kWnRyFJ1vN0=
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <4C97434E.4000109@xxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <4C97434E.4000109@xxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv: Gecko/20100915 Thunderbird/3.1.4
 Dear all:

For the question1, I try to use the function ps2_queue() to send a PS/2 "keyboard" packet, and it works fine. But the PS/2 mouse still cannot work. Does QEMU use a USB mouse and not support a PS/2 mouse?

於 2010/9/20 下午 07:19, "涂堂訓(Tang-Hsun Tu)" 提到:
 Dear all:

      I am trying to send a fake event to input layer of QEMU,
i.e. keyboard and mouse.

      QEMU provides two API to send these input event,
that is, kbd_put_keycode() and kbd_mouse_event() for keyboard and mouse, respectively. And these functions will make a suitable packet for low-level hardware, e.g. PS/2 or USB.

For a PS/2 mouse, there is a call chain ps2_mouse_event() => ps2_mouse_send_packet() => ps2_queue()
when the function kbd_mouse_event() is called.
However, when I make a fake PS/2 mouse packet and directly call ps2_queue()
to put the packet to PS/2 queue.
I store the PS2MouseState "s" when 8042 initializes and call ps2_queue() to send a event,
for example,
          ps2_queue(&s->common, 0x1001);
          ps2_queue(&s->common, 0);
          ps2_queue(&s->common, 0);

And I also insert some debug  message in ps2_read_data() function,
it works well and reads data from queue correctly..
But the mouse pointer does not move (even right/left click).
I also set the default mouse to "Mouse $0: QEMU PS/2 Mouse" in QEMU consloe, but the result is the same. What else I forgot to signal? How could I fix it?

       The second question is when I create a PV Linux (Ubuntu),
the mouse pointer does not move correctly.
The screen (VNC) shows a black point and a mouse pointer,
and their speed does not the same.
In HVM XP, we can use usbdevice='tablet' to fix it,
but the same line does not work in PV Linux. How could I fix it?

The last question is that does the sound can be shared (mixed) between multiple DomainUs?
(The device will be busy when I create a domain.) If can, how could I do?


Best Regards,
Tang-Hsun Tu

Xen-devel mailing list

<Prev in Thread] Current Thread [Next in Thread>