qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] Qemu Guest Tools
@ 2005-03-01 23:07 olig9
  2005-03-01 23:15 ` Joshua Kugler
  2005-03-02  1:32 ` Jim C. Brown
  0 siblings, 2 replies; 14+ messages in thread
From: olig9 @ 2005-03-01 23:07 UTC (permalink / raw)
  To: qemu-devel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="us-ascii", Size: 411 bytes --]

Hello,
to enable copying of text between Qemu host and guest, I've started to write
some small apps called QGT (Qemu Guest Tools). A very early version is
available at http://www.oliver-gerlich.de/qemu/ . Please have a look at it
and tell me your opinion.

Oliver Gerlich

-- 
DSL Komplett von GMX +++ Supergünstig und stressfrei einsteigen!
AKTION "Kein Einrichtungspreis" nutzen: http://www.gmx.net/de/go/dsl

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Qemu-devel] Qemu Guest Tools
  2005-03-01 23:07 olig9
@ 2005-03-01 23:15 ` Joshua Kugler
  2005-03-02  1:32 ` Jim C. Brown
  1 sibling, 0 replies; 14+ messages in thread
From: Joshua Kugler @ 2005-03-01 23:15 UTC (permalink / raw)
  To: qemu-devel

There is a program out there under the GPL called "multi platform clipboard," 
although it's not fully transparent.

http://www.idata.sk/~robo/mpcb/

I've used this, and it works nicely.  The site seems down at the moment, but 
there is more info here:

http://www.icewalkers.com/Linux/Software/511140/mpcb.html

Might help you along in your project.

On Tuesday 01 March 2005 14:07, olig9@gmx.de wrote:
> Hello,
> to enable copying of text between Qemu host and guest, I've started to
> write some small apps called QGT (Qemu Guest Tools). A very early version
> is available at http://www.oliver-gerlich.de/qemu/ . Please have a look at
> it and tell me your opinion.
>
> Oliver Gerlich

-- 
Joshua Kugler
CDE System Administrator
http://distance.uaf.edu/

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Qemu-devel] Qemu Guest Tools
  2005-03-01 23:07 olig9
  2005-03-01 23:15 ` Joshua Kugler
@ 2005-03-02  1:32 ` Jim C. Brown
  2005-03-02  2:49   ` Mark Williamson
  2005-03-02 12:44   ` Oliver Gerlich
  1 sibling, 2 replies; 14+ messages in thread
From: Jim C. Brown @ 2005-03-02  1:32 UTC (permalink / raw)
  To: qemu-devel

On Wed, Mar 02, 2005 at 12:07:44AM +0100, olig9@gmx.de wrote:
> Hello,
> to enable copying of text between Qemu host and guest, I've started to write
> some small apps called QGT (Qemu Guest Tools). A very early version is
> available at http://www.oliver-gerlich.de/qemu/ . Please have a look at it
> and tell me your opinion.
> 
> Oliver Gerlich
> 
> -- 
> DSL Komplett von GMX +++ Superg?nstig und stressfrei einsteigen!
> AKTION "Kein Einrichtungspreis" nutzen: http://www.gmx.net/de/go/dsl
> 

This is promising, but I think it is badly named. This looks likes that it could,
in theory, work across actual networks. There is another program which can be
used to share clipboards across networks, and it can be used from within qemu.
It can support multple workstations at once and it supports more OSes.

Looks good for a first version though. What other features are you planning
to add?

The project shouldn't be called Qemu Guest Tools unless it requires qemu, IMHO.
(Guest tools have been discussed before, some ideas for communication to qemu
itself would be via 'special' qemu specific instructions or alloting an io port
to give commands to qemu (this is what VMware does). Some ideas that have been
proposed to use this communication for: host-guest clipboard, accelerated
graphics support (such as 3d), a sort of two-way user-net (allow the host and
other workstations to see the guest w/o going thru tuntap ... not sure how
this would work). The list can get quite fancy.)

-- 
Infinite complexity begets infinite beauty.
Infinite precision begets infinite perfection.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Qemu-devel] Qemu Guest Tools
  2005-03-02  1:32 ` Jim C. Brown
@ 2005-03-02  2:49   ` Mark Williamson
  2005-03-02 12:44   ` Oliver Gerlich
  1 sibling, 0 replies; 14+ messages in thread
From: Mark Williamson @ 2005-03-02  2:49 UTC (permalink / raw)
  To: qemu-devel; +Cc: Jim C. Brown

> Some ideas that have been proposed to use this communication for:
> host-guest clipboard, accelerated graphics support (such as 3d), a sort of
> two-way user-net (allow the host and other workstations to see the guest
> w/o going thru tuntap ... not sure how this would work). The list can get
> quite fancy.)

MS Virtual PC can do drag 'n' drop between the guest and the host.  Whilst 
this is obviously just a "nice to have" feature, it's still pretty cool and 
is actually useful into the bargain ;-)

Cheers,
Mark

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Qemu-devel] Qemu Guest Tools
  2005-03-02  1:32 ` Jim C. Brown
  2005-03-02  2:49   ` Mark Williamson
@ 2005-03-02 12:44   ` Oliver Gerlich
  2005-03-02 13:23     ` Mark Williamson
  2005-03-02 14:38     ` Jim C. Brown
  1 sibling, 2 replies; 14+ messages in thread
From: Oliver Gerlich @ 2005-03-02 12:44 UTC (permalink / raw)
  To: qemu-devel

Jim C. Brown wrote:
> On Wed, Mar 02, 2005 at 12:07:44AM +0100, olig9@gmx.de wrote:
> 
>>Hello,
>>to enable copying of text between Qemu host and guest, I've started to write
>>some small apps called QGT (Qemu Guest Tools). A very early version is
>>available at http://www.oliver-gerlich.de/qemu/ . Please have a look at it
>>and tell me your opinion.
>>
>>Oliver Gerlich
>>
>>-- 
>>DSL Komplett von GMX +++ Superg?nstig und stressfrei einsteigen!
>>AKTION "Kein Einrichtungspreis" nutzen: http://www.gmx.net/de/go/dsl
>>
> 
> 
> This is promising, but I think it is badly named. This looks likes that it could,
> in theory, work across actual networks. There is another program which can be
> used to share clipboards across networks, and it can be used from within qemu.
> It can support multple workstations at once and it supports more OSes.
> 
> Looks good for a first version though. What other features are you planning
> to add?

Planned features are:
-Notification of guest when it is loaded with loadvm
-Time synchronisation between host and guest (currently guest time is 
wrong when loadvm is used)
-drag and drop (Mark mentioned it, and it was also posted on the forum 
some days ago)
-make mouse grabbing more comfortable

Copy/paste and time sync could be done by external programs (Joshua 
mentioned mpcb; ntp, ...). But drag and drop requires access to the Qemu 
window, and loadvm notification requires some kind of integration with Qemu.
Currently it's indeed only a bad version of mpcb :) but I hope it will 
evolve in another direction (copy and paste being just a small part of 
its features).

> 
> The project shouldn't be called Qemu Guest Tools unless it requires qemu, IMHO.
> (Guest tools have been discussed before, some ideas for communication to qemu
> itself would be via 'special' qemu specific instructions or alloting an io port
> to give commands to qemu (this is what VMware does). Some ideas that have been
> proposed to use this communication for: host-guest clipboard, accelerated
> graphics support (such as 3d), a sort of two-way user-net (allow the host and
> other workstations to see the guest w/o going thru tuntap ... not sure how
> this would work). The list can get quite fancy.)
> 

I've decided against some special i/o port or such because I don't know 
anything about these things :) and because it would require a driver on 
the guest side (is that correct?). TCP/IP drivers are available for many 
platforms, and I think if an OS doesn't support TCP/IP it doesn't really 
matter if copy/paste doesn't work.

Accelerated graphics would be nice indeed, but shouldn't that be done in 
a separate driver? Not sure if such an optional user-space application 
is the right place for this.

After all, QGT should just be a collection of those features that cannot 
be integrated into a hardware+driver (which is generally a cleaner way).


Thanks for your input,
Oliver Gerlich

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Qemu-devel] Qemu Guest Tools
  2005-03-02 12:44   ` Oliver Gerlich
@ 2005-03-02 13:23     ` Mark Williamson
  2005-03-02 14:38     ` Jim C. Brown
  1 sibling, 0 replies; 14+ messages in thread
From: Mark Williamson @ 2005-03-02 13:23 UTC (permalink / raw)
  To: qemu-devel

> I've decided against some special i/o port or such because I don't know
> anything about these things :) and because it would require a driver on
> the guest side (is that correct?). TCP/IP drivers are available for many
> platforms, and I think if an OS doesn't support TCP/IP it doesn't really
> matter if copy/paste doesn't work.

The code could always be hacked later to (optionally) use a magic IO port, as 
long as the base functionality is there, if anyone has an interest in doing 
so.

Cheers,
Mark

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Qemu-devel] Qemu Guest Tools
  2005-03-02 12:44   ` Oliver Gerlich
  2005-03-02 13:23     ` Mark Williamson
@ 2005-03-02 14:38     ` Jim C. Brown
  2005-03-02 21:08       ` olig9
  2005-03-03  4:24       ` Brad Campbell
  1 sibling, 2 replies; 14+ messages in thread
From: Jim C. Brown @ 2005-03-02 14:38 UTC (permalink / raw)
  To: qemu-devel

On Wed, Mar 02, 2005 at 01:44:35PM +0100, Oliver Gerlich wrote:
> Planned features are:
> -Notification of guest when it is loaded with loadvm

Why?

> -Time synchronisation between host and guest (currently guest time is 
> wrong when loadvm is used)

Technically this is a qemu bug and should be fixed in qemu.

Of course, any way to set the time in qemu guest w/o having to patch qemu
source is welcome.

> -drag and drop (Mark mentioned it, and it was also posted on the forum 
> some days ago)

> -make mouse grabbing more comfortable

I am against mouse grabbing myself. I just use the no-sdl-grab patch and deal
with a desyncing guest mouse pointer (sometimes I can work around it by
turning mouse acceleration off in the guest).

> 
> Copy/paste and time sync could be done by external programs (Joshua 
> mentioned mpcb; ntp, ...).

I'm not sure if ntp would work for qemu guest. The way qemu works, guest changes
to the RTC are overridden by qemu. Of course if the guest kept its own time
independent of the hardware clock, that wouldn't be a problem.

> But drag and drop requires access to the Qemu 
> window, and loadvm notification requires some kind of integration with Qemu.

Both of which can not be done reliably through TCP/IP. (What if the guest
has no network support? Or you are running Windows 98 in safe mode?)

Futhermore, how will the guest tools know that they are really running under
qemu?

> Currently it's indeed only a bad version of mpcb :) but I hope it will 
> evolve in another direction (copy and paste being just a small part of 
> its features).
> 

Agreed. That would benefit everyone.

> 
> I've decided against some special i/o port or such because I don't know 
> anything about these things :) and because it would require a driver on 
> the guest side (is that correct?).

Unfortuantly, yes. However, the magic instruction set would not. (You would
probably need to reimplement a new one for each arch qemu supports/will be
ported to though.)

> TCP/IP drivers are available for many 
> platforms, and I think if an OS doesn't support TCP/IP it doesn't really 
> matter if copy/paste doesn't work.
> 

I disagree here (not about the copy/paste specificly, but for guest tools
in general). Drag&drop would have no meaning for an OS that doesn't support
a mouse, let alone a GUI, but certain things such as time sync and loadvm
notification could be accessed and used universally.

> Accelerated graphics would be nice indeed, but shouldn't that be done in 
> a separate driver? Not sure if such an optional user-space application 
> is the right place for this.

You are probably right about that. I was simply saying that an accelerated
graphics driver for a qemu guest would need to talk to qemu directly in the
same way the qemu guest tools would (send qemu little messages telling it to
open an opengl window and draw this guy here, this other guy there, this gun
up there, etc). On the other hand, they probably should not share the same
channel, as that would be too slow.

> 
> After all, QGT should just be a collection of those features that cannot 
> be integrated into a hardware+driver (which is generally a cleaner way).
> 

Agreed.

> 
> Thanks for your input,
> Oliver Gerlich
> 
> 
> 
> _______________________________________________
> Qemu-devel mailing list
> Qemu-devel@nongnu.org
> http://lists.nongnu.org/mailman/listinfo/qemu-devel
> 

-- 
Infinite complexity begets infinite beauty.
Infinite precision begets infinite perfection.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Qemu-devel] Qemu Guest Tools
  2005-03-02 14:38     ` Jim C. Brown
@ 2005-03-02 21:08       ` olig9
  2005-03-02 23:07         ` Jim C. Brown
  2005-03-03  4:24       ` Brad Campbell
  1 sibling, 1 reply; 14+ messages in thread
From: olig9 @ 2005-03-02 21:08 UTC (permalink / raw)
  To: qemu-devel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="us-ascii", Size: 6626 bytes --]

> On Wed, Mar 02, 2005 at 01:44:35PM +0100, Oliver Gerlich wrote:
> > Planned features are:
> > -Notification of guest when it is loaded with loadvm
> 
> Why?

Mainly for time synchronisation, I must admit.

> 
> > -Time synchronisation between host and guest (currently guest time is 
> > wrong when loadvm is used)
> 
> Technically this is a qemu bug and should be fixed in qemu.

Is it? I thought the problem was that most OSes query RTC time on startup
and then keep time internally, so if they are loaded, they don't know that
RTC time changed.

> 
> Of course, any way to set the time in qemu guest w/o having to patch qemu
> source is welcome.
> 
> > -drag and drop (Mark mentioned it, and it was also posted on the forum 
> > some days ago)
> 
> > -make mouse grabbing more comfortable
> 
> I am against mouse grabbing myself. I just use the no-sdl-grab patch and
> deal
> with a desyncing guest mouse pointer (sometimes I can work around it by
> turning mouse acceleration off in the guest).
> 
> > 
> > Copy/paste and time sync could be done by external programs (Joshua 
> > mentioned mpcb; ntp, ...).
> 
> I'm not sure if ntp would work for qemu guest. The way qemu works, guest
> changes
> to the RTC are overridden by qemu. Of course if the guest kept its own
> time
> independent of the hardware clock, that wouldn't be a problem.

Admittedly I don't know how different OSes handle this; I only know from
Linux that it keeps time internally (sync between RTC and internal time can
be done with hwclock), and I thought other OSes use the same technique.
Of course, I silently assumed that Qemu's RTC is working correctly :) only
that it doesn't help with today's OSes.

> 
> > But drag and drop requires access to the Qemu 
> > window, and loadvm notification requires some kind of integration with
> Qemu.
> 
> Both of which can not be done reliably through TCP/IP. (What if the guest
> has no network support? Or you are running Windows 98 in safe mode?)
> 

It can be done reliably only in the meaning that you have QGT loaded and
then QGT detects that the host closed the connection and tries to reconnect
five seconds later (this is already partially implemented, only the host
part of course doesn't know about loadvm commands yet :)
It doesn't work out-of-the-box for all systems, that's right.

> Futhermore, how will the guest tools know that they are really running
> under
> qemu?

They know if they can connect to a specific port on the host. I'm more
concerned about hostile (redmondian) OSes which don't like being started in
Qemu and which can detect this by connecting to the host...

> 
> > Currently it's indeed only a bad version of mpcb :) but I hope it will 
> > evolve in another direction (copy and paste being just a small part of 
> > its features).
> > 
> 
> Agreed. That would benefit everyone.
> 
> > 
> > I've decided against some special i/o port or such because I don't know 
> > anything about these things :) and because it would require a driver on 
> > the guest side (is that correct?).
> 
> Unfortuantly, yes. However, the magic instruction set would not. (You
> would
> probably need to reimplement a new one for each arch qemu supports/will be
> ported to though.)

Yes, the issue of writing a driver for each new OS made me see TCP/IP as a
quite good solution; the communication part should run on every OS which
supports BSD sockets (in worked nearly unmodified in Windows), so porting is
reduced to a simple userland application, without connection to external
protocols etc.

> 
> > TCP/IP drivers are available for many 
> > platforms, and I think if an OS doesn't support TCP/IP it doesn't really
> > matter if copy/paste doesn't work.
> > 
> 
> I disagree here (not about the copy/paste specificly, but for guest tools
> in general). Drag&drop would have no meaning for an OS that doesn't
> support
> a mouse, let alone a GUI, but certain things such as time sync and loadvm
> notification could be accessed and used universally.

Yes, you're right here. I mainly concentrated on copy/paste during QGT
development (which I thought would be useful for copying URLs from Linux to
IE and such things), but time sync etc. could be useful also on simpler OSes
like DOS.
I'll have a look at the current QGT networking API and see if it can be
generalized a bit more, so that it can be replaced with another way of
communication later.

> 
> > Accelerated graphics would be nice indeed, but shouldn't that be done in
> > a separate driver? Not sure if such an optional user-space application 
> > is the right place for this.
> 
> You are probably right about that. I was simply saying that an accelerated
> graphics driver for a qemu guest would need to talk to qemu directly in
> the
> same way the qemu guest tools would (send qemu little messages telling it
> to
> open an opengl window and draw this guy here, this other guy there, this
> gun
> up there, etc). On the other hand, they probably should not share the same
> channel, as that would be too slow.

I agree, hardware accelerated games in Qemu would be really nice :)
But using TCP/IP for that will probably really be too slow... Maybe if one
could write a graphics driver which (as a first start) would tell the guest
it supports OpenGL, and which then simply passes all OpenGL calls to the
host (and the guest OpenGL window is then just some other window on top of
Qemu's SDL window)... But I'll better leave working wonders to Fabrice and
concentrate on the tasks I've already started :)

> 
> > 
> > After all, QGT should just be a collection of those features that cannot
> > be integrated into a hardware+driver (which is generally a cleaner way).
> > 
> 
> Agreed.
> 
> > 
> > Thanks for your input,
> > Oliver Gerlich
> > 
> > 
> > 
> > _______________________________________________
> > Qemu-devel mailing list
> > Qemu-devel@nongnu.org
> > http://lists.nongnu.org/mailman/listinfo/qemu-devel
> > 
> 
> -- 
> Infinite complexity begets infinite beauty.
> Infinite precision begets infinite perfection.
> 
> 
> _______________________________________________
> Qemu-devel mailing list
> Qemu-devel@nongnu.org
> http://lists.nongnu.org/mailman/listinfo/qemu-devel
> 

It's good to hear some other ideas and opinions about what's important.

Oliver Gerlich

PS: nearly forgot to mention that there were "technical problems" with my
webspace... I've moved QGT to http://wolfpackally.wo.funpic.de/qemu/qgt/ ,
if you couldn't download it before, it should work now.

-- 
DSL Komplett von GMX +++ Supergünstig und stressfrei einsteigen!
AKTION "Kein Einrichtungspreis" nutzen: http://www.gmx.net/de/go/dsl

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Qemu-devel] Qemu Guest Tools
  2005-03-02 21:08       ` olig9
@ 2005-03-02 23:07         ` Jim C. Brown
  0 siblings, 0 replies; 14+ messages in thread
From: Jim C. Brown @ 2005-03-02 23:07 UTC (permalink / raw)
  To: qemu-devel

On Wed, Mar 02, 2005 at 10:08:54PM +0100, olig9@gmx.de wrote:
> > I'm not sure if ntp would work for qemu guest. The way qemu works, guest
> > changes
> > to the RTC are overridden by qemu. Of course if the guest kept its own
> > time
> > independent of the hardware clock, that wouldn't be a problem.
> 
> Admittedly I don't know how different OSes handle this; I only know from
> Linux that it keeps time internally (sync between RTC and internal time can
> be done with hwclock), and I thought other OSes use the same technique.
> Of course, I silently assumed that Qemu's RTC is working correctly :) only
> that it doesn't help with today's OSes.

I must eat my own words.

Last I checked, it was not possible to set the time in the guest (this was with
Windows 98SE). The clock would switch back immediately. Testing with linux guest
and modern qemu, this seems to have changed. Using hwclock, one can change the
time of the RTC.

So you can use ntp as a time keeper for the guest after all.

> > 
> > > -Time synchronisation between host and guest (currently guest time is 
> > > wrong when loadvm is used)
> > 
> > Technically this is a qemu bug and should be fixed in qemu.
> 
> Is it? I thought the problem was that most OSes query RTC time on startup
> and then keep time internally, so if they are loaded, they don't know that
> RTC time changed.
> 

The bug being that qemu didn't update the RTC properly on a loadvm. Since there
was no way for the guest OS to change the time, qemu had to get it right
unconditionally.

However, if you can set it directly, then this would be a good use. You'd
want this as a continuous background process (daemon in Unix/Linux, TSR in DOS)
to make this update automatic.

> > Futhermore, how will the guest tools know that they are really running
> > under
> > qemu?
> 
> They know if they can connect to a specific port on the host. I'm more
> concerned about hostile (redmondian) OSes which don't like being started in
> Qemu and which can detect this by connecting to the host...
> 

How do you know that port is being used by qemu, and not by e.g. some custom
http server?

One interesting side effect is that one could install the guest tools on a
real workstation and set up a fake server that responds to qemu guest commands.
I'm not sure if you want to allow this to be possible. (I also don't see why
anyone would bother with it ... but since the guest tools interact with the
guest on such a low level, who knows what they could be used for?)

> > > 
> > > I've decided against some special i/o port or such because I don't know 
> > > anything about these things :) and because it would require a driver on 
> > > the guest side (is that correct?).
> > 
> > Unfortuantly, yes. However, the magic instruction set would not. (You
> > would
> > probably need to reimplement a new one for each arch qemu supports/will be
> > ported to though.)
> 
> Yes, the issue of writing a driver for each new OS made me see TCP/IP as a
> quite good solution; the communication part should run on every OS which
> supports BSD sockets (in worked nearly unmodified in Windows), so porting is
> reduced to a simple userland application, without connection to external
> protocols etc.

The magic instruction set has the same advantages, plus it doesn't require
TCP/IP. Of course it can always be added later.

The real issue I have with using TCP/IP is that one can trick a qemu guest into
thinking its host is this other computer, or even trick the guest tools when
they are running on actual hardware.

> > I disagree here (not about the copy/paste specificly, but for guest tools
> > in general). Drag&drop would have no meaning for an OS that doesn't
> > support
> > a mouse, let alone a GUI, but certain things such as time sync and loadvm
> > notification could be accessed and used universally.
> 
> Yes, you're right here. I mainly concentrated on copy/paste during QGT
> development (which I thought would be useful for copying URLs from Linux to
> IE and such things), but time sync etc. could be useful also on simpler OSes
> like DOS.
> I'll have a look at the current QGT networking API and see if it can be
> generalized a bit more, so that it can be replaced with another way of
> communication later.
> 

Now that I think of it, using TCP/IP to flesh out a suitable API/list of
guest commands (i.e. the qemu<->guest communication protocol semantics)
and then moving it over to use a more precise/reliable method of communication
(such as a qemu-specific io port) is probably a good idea. Might make development
go significantly faster.

A combination of methods may be best.

> I agree, hardware accelerated games in Qemu would be really nice :)
> But using TCP/IP for that will probably really be too slow...

I didn't suggest that! Honest!

-- 
Infinite complexity begets infinite beauty.
Infinite precision begets infinite perfection.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Qemu-devel] Qemu Guest Tools
  2005-03-02 14:38     ` Jim C. Brown
  2005-03-02 21:08       ` olig9
@ 2005-03-03  4:24       ` Brad Campbell
  2005-03-03  5:09         ` Jim C. Brown
  1 sibling, 1 reply; 14+ messages in thread
From: Brad Campbell @ 2005-03-03  4:24 UTC (permalink / raw)
  To: qemu-devel

Jim C. Brown wrote:
> On Wed, Mar 02, 2005 at 01:44:35PM +0100, Oliver Gerlich wrote:
> 
>>Planned features are:
>>-Notification of guest when it is loaded with loadvm
> 
> 
> Why?
> 
> 
>>-Time synchronisation between host and guest (currently guest time is 
>>wrong when loadvm is used)
> 
> 
> Technically this is a qemu bug and should be fixed in qemu.
> 
> Of course, any way to set the time in qemu guest w/o having to patch qemu
> source is welcome.

I run an ntp client inside windows.

> 
> I am against mouse grabbing myself. I just use the no-sdl-grab patch and deal
> with a desyncing guest mouse pointer (sometimes I can work around it by
> turning mouse acceleration off in the guest).

I was thinking about a little guest app to keep them in sync. This is how win4lin does it and it 
works very well. It is dead easy to do under windows as mouse manipulation from userspace is a 
doddle, don't know about linux though.

>>Copy/paste and time sync could be done by external programs (Joshua 
>>mentioned mpcb; ntp, ...).
> 
> 
> I'm not sure if ntp would work for qemu guest. The way qemu works, guest changes
> to the RTC are overridden by qemu. Of course if the guest kept its own time
> independent of the hardware clock, that wouldn't be a problem.

It does. I use anachron for windows.

> 
>>I've decided against some special i/o port or such because I don't know 
>>anything about these things :) and because it would require a driver on 
>>the guest side (is that correct?).
> 
> 
> Unfortuantly, yes. However, the magic instruction set would not. (You would
> probably need to reimplement a new one for each arch qemu supports/will be
> ported to though.)
> 

This was my thought. Networking is not always available. A couple of IO ports would always be there.

Regards,
Brad
-- 
"Human beings, who are almost unique in having the ability
to learn from the experience of others, are also remarkable
for their apparent disinclination to do so." -- Douglas Adams

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Qemu-devel] Qemu Guest Tools
  2005-03-03  4:24       ` Brad Campbell
@ 2005-03-03  5:09         ` Jim C. Brown
  0 siblings, 0 replies; 14+ messages in thread
From: Jim C. Brown @ 2005-03-03  5:09 UTC (permalink / raw)
  To: qemu-devel

On Thu, Mar 03, 2005 at 08:24:12AM +0400, Brad Campbell wrote:
> Jim C. Brown wrote:
> >
> >I am against mouse grabbing myself. I just use the no-sdl-grab patch and 
> >deal
> >with a desyncing guest mouse pointer (sometimes I can work around it by
> >turning mouse acceleration off in the guest).
> 
> I was thinking about a little guest app to keep them in sync. This is how 
> win4lin does it and it works very well. It is dead easy to do under windows 
> as mouse manipulation from userspace is a doddle, don't know about linux 
> though.
> 

Does it move the guest pointer back to the spot where the host pointer is (in
which case disabling mouse accerleration would be better) or does it let win4lin
know where the guest pointer is so the host pointer can be moved to that position?

The latter would be ideal, but short of guest-to-host communication there is no
way to be completely sure where the mouse pointer is (tho you can be pretty sure
most of the time).

> >
> >>I've decided against some special i/o port or such because I don't know 
> >>anything about these things :) and because it would require a driver on 
> >>the guest side (is that correct?).
> >
> >
> >Unfortuantly, yes. However, the magic instruction set would not. (You would
> >probably need to reimplement a new one for each arch qemu supports/will be
> >ported to though.)
> >
> 
> This was my thought. Networking is not always available. A couple of IO 
> ports would always be there.

Actually, I think that magic instructions might be better. It doesn't require
a special guest driver and thus it would be easier to develop the tools. IO
ports would be easier to standardize however.

Detecting whether or not they're running in qemu is also a cinch: if they aren't
they get an "illegal instruction" error.

> 
> Regards,
> Brad
> -- 
> "Human beings, who are almost unique in having the ability
> to learn from the experience of others, are also remarkable
> for their apparent disinclination to do so." -- Douglas Adams
> 
> 
> _______________________________________________
> Qemu-devel mailing list
> Qemu-devel@nongnu.org
> http://lists.nongnu.org/mailman/listinfo/qemu-devel
> 

-- 
Infinite complexity begets infinite beauty.
Infinite precision begets infinite perfection.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* RE: [Qemu-devel] Qemu Guest Tools
       [not found] <MC3-F26ZAIxpmV2kER60005c293@mc3-f26.hotmail.com>
@ 2005-03-05  3:50 ` Nathan Kunkee
  2005-03-05  4:22   ` Herbert Poetzl
  2005-03-05 10:44   ` Oliver Gerlich
  0 siblings, 2 replies; 14+ messages in thread
From: Nathan Kunkee @ 2005-03-05  3:50 UTC (permalink / raw)
  To: qemu-devel

&gt;Message: 3
&gt;Date: Thu, 03 Mar 2005 08:24:12 +0400
&gt;From: Brad Campbell &lt;brad@wasp.net.au&gt;
&gt;Subject: Re: [Qemu-devel] Qemu Guest Tools
&gt;To: qemu-devel@nongnu.org
&gt;Message-ID: &lt;4226916C.8050706@wasp.net.au&gt;
&gt;Content-Type: text/plain; charset=ISO-8859-1; format=flowed
&gt;
&gt;Jim C. Brown wrote:
&gt; &gt; On Wed, Mar 02, 2005 at 01:44:35PM +0100, Oliver Gerlich wrote:
&gt; &gt;
&gt; &gt;&gt;Planned features are:
&gt; &gt;&gt;-Notification of guest when it is loaded with loadvm
&gt; &gt;
&gt; &gt;
&gt; &gt; Why?
&gt; &gt;
&gt; &gt;
&gt; &gt;&gt;-Time synchronisation between host and guest (currently guest 
time is
&gt; &gt;&gt;wrong when loadvm is used)
&gt; &gt;
&gt; &gt;
&gt; &gt; Technically this is a qemu bug and should be fixed in qemu.
&gt; &gt;
&gt; &gt; Of course, any way to set the time in qemu guest w/o having to 
patch qemu
&gt; &gt; source is welcome.
&gt;
&gt;I run an ntp client inside windows.
Another way to fix this, and the next concern on vm save/load, is to develop 
an APM or ACPI device. There is a standard interface between the hardware 
and the OS, almost all OS's now support a version of APM or ACPI, and the OS 
knows to reinitialize various parts of the hardware after certain events. 
This would simplify the question of special instructions or unused IO port. 
In a way, it would allow the emulator to be treated like a laptop, where the 
user can tell it to suspend or sleep, and when to wake up again. Since the 
OS has a driver for APM, it would be aware of these events, reinitialize 
devices (RTC, NIC), and Qemu would not be responsible for as many internal 
details.

My humble $0.02 on the issue....
Nathan


[snip]
&gt; &gt;&gt;I've decided against some special i/o port or such because I 
don't know
&gt; &gt;&gt;anything about these things :) and because it would require a 
driver on
&gt; &gt;&gt;the guest side (is that correct?).
&gt; &gt;
&gt; &gt;
&gt; &gt; Unfortuantly, yes. However, the magic instruction set would not. 
(You would
&gt; &gt; probably need to reimplement a new one for each arch qemu 
supports/will be
&gt; &gt; ported to though.)
&gt; &gt;
&gt;
&gt;This was my thought. Networking is not always available. A couple of IO 
ports would always be there.
&gt;
&gt;Regards,
&gt;Brad
&gt;--
&gt;&quot;Human beings, who are almost unique in having the ability
&gt;to learn from the experience of others, are also remarkable
&gt;for their apparent disinclination to do so.&quot; -- Douglas Adams

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Qemu-devel] Qemu Guest Tools
  2005-03-05  3:50 ` [Qemu-devel] Qemu Guest Tools Nathan Kunkee
@ 2005-03-05  4:22   ` Herbert Poetzl
  2005-03-05 10:44   ` Oliver Gerlich
  1 sibling, 0 replies; 14+ messages in thread
From: Herbert Poetzl @ 2005-03-05  4:22 UTC (permalink / raw)
  To: Nathan Kunkee; +Cc: qemu-devel

On Fri, Mar 04, 2005 at 09:50:29PM -0600, Nathan Kunkee wrote:
> &gt;Message: 3
> &gt;Date: Thu, 03 Mar 2005 08:24:12 +0400
> &gt;From: Brad Campbell &lt;brad@wasp.net.au&gt;
> &gt;Subject: Re: [Qemu-devel] Qemu Guest Tools
> &gt;To: qemu-devel@nongnu.org
> &gt;Message-ID: &lt;4226916C.8050706@wasp.net.au&gt;
> &gt;Content-Type: text/plain; charset=ISO-8859-1; format=flowed
> &gt;
> &gt;Jim C. Brown wrote:
> &gt; &gt; On Wed, Mar 02, 2005 at 01:44:35PM +0100, Oliver Gerlich wrote:
> &gt; &gt;
> &gt; &gt;&gt;Planned features are:
> &gt; &gt;&gt;-Notification of guest when it is loaded with loadvm
> &gt; &gt;
> &gt; &gt;
> &gt; &gt; Why?
> &gt; &gt;
> &gt; &gt;
> &gt; &gt;&gt;-Time synchronisation between host and guest (currently guest 
> time is
> &gt; &gt;&gt;wrong when loadvm is used)
> &gt; &gt;
> &gt; &gt;
> &gt; &gt; Technically this is a qemu bug and should be fixed in qemu.
> &gt; &gt;
> &gt; &gt; Of course, any way to set the time in qemu guest w/o having to 
> patch qemu
> &gt; &gt; source is welcome.
> &gt;
> &gt;I run an ntp client inside windows.
> Another way to fix this, and the next concern on vm save/load, is to 
> develop an APM or ACPI device. There is a standard interface between the 
> hardware and the OS, almost all OS's now support a version of APM or ACPI, 
> and the OS knows to reinitialize various parts of the hardware after 
> certain events. This would simplify the question of special instructions or 
> unused IO port. In a way, it would allow the emulator to be treated like a 
> laptop, where the user can tell it to suspend or sleep, and when to wake up 
> again. Since the OS has a driver for APM, it would be aware of these 
> events, reinitialize devices (RTC, NIC), and Qemu would not be responsible 
> for as many internal details.
> 
> My humble $0.02 on the issue....
> Nathan

cool, never saw such a messed up email before ...

is this a new Microsoft(TM,R)/Hotmail feature?

best,
Herbert

> 
> 
> [snip]
> &gt; &gt;&gt;I've decided against some special i/o port or such because I 
> don't know
> &gt; &gt;&gt;anything about these things :) and because it would require a 
> driver on
> &gt; &gt;&gt;the guest side (is that correct?).
> &gt; &gt;
> &gt; &gt;
> &gt; &gt; Unfortuantly, yes. However, the magic instruction set would not. 
> (You would
> &gt; &gt; probably need to reimplement a new one for each arch qemu 
> supports/will be
> &gt; &gt; ported to though.)
> &gt; &gt;
> &gt;
> &gt;This was my thought. Networking is not always available. A couple of IO 
> ports would always be there.
> &gt;
> &gt;Regards,
> &gt;Brad
> &gt;--
> &gt;&quot;Human beings, who are almost unique in having the ability
> &gt;to learn from the experience of others, are also remarkable
> &gt;for their apparent disinclination to do so.&quot; -- Douglas Adams
> 
> 
> 
> 
> _______________________________________________
> Qemu-devel mailing list
> Qemu-devel@nongnu.org
> http://lists.nongnu.org/mailman/listinfo/qemu-devel

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Qemu-devel] Qemu Guest Tools
  2005-03-05  3:50 ` [Qemu-devel] Qemu Guest Tools Nathan Kunkee
  2005-03-05  4:22   ` Herbert Poetzl
@ 2005-03-05 10:44   ` Oliver Gerlich
  1 sibling, 0 replies; 14+ messages in thread
From: Oliver Gerlich @ 2005-03-05 10:44 UTC (permalink / raw)
  To: qemu-devel

Nathan Kunkee schrieb:

> Another way to fix this, and the next concern on vm save/load, is to 
> develop an APM or ACPI device. There is a standard interface between 
> the hardware and the OS, almost all OS's now support a version of APM 
> or ACPI, and the OS knows to reinitialize various parts of the 
> hardware after certain events. This would simplify the question of 
> special instructions or unused IO port. In a way, it would allow the 
> emulator to be treated like a laptop, where the user can tell it to 
> suspend or sleep, and when to wake up again. Since the OS has a driver 
> for APM, it would be aware of these events, reinitialize devices (RTC, 
> NIC), and Qemu would not be responsible for as many internal details.
>
> My humble $0.02 on the issue....
> Nathan

ACPI support in Qemu would be nice; but loadvm is useful for those guest 
OSes that don't support ACPI or sleep states. So in my opinion loadvm 
should not be replaced by ACPI, but it should be usable in those cases 
where ACPI or sleep states are not available (eg. Win9x, DOS).

Oliver

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2005-03-05 11:24 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <MC3-F26ZAIxpmV2kER60005c293@mc3-f26.hotmail.com>
2005-03-05  3:50 ` [Qemu-devel] Qemu Guest Tools Nathan Kunkee
2005-03-05  4:22   ` Herbert Poetzl
2005-03-05 10:44   ` Oliver Gerlich
2005-03-01 23:07 olig9
2005-03-01 23:15 ` Joshua Kugler
2005-03-02  1:32 ` Jim C. Brown
2005-03-02  2:49   ` Mark Williamson
2005-03-02 12:44   ` Oliver Gerlich
2005-03-02 13:23     ` Mark Williamson
2005-03-02 14:38     ` Jim C. Brown
2005-03-02 21:08       ` olig9
2005-03-02 23:07         ` Jim C. Brown
2005-03-03  4:24       ` Brad Campbell
2005-03-03  5:09         ` Jim C. Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).