|Subject:||[Qemu-devel] A custom idea for Google Summer of Code 2016|
|Date:||Tue, 22 Mar 2016 22:00:14 +0300|
I'm the computer science student of Brest State Technical University (Belarus), and have an idea for Google Summer of Code (I see it as an important feature and have already started working on it, but mentoring would be a great help).
The proposition is about implementing one more absolute coordinates device for QEMU – a serial tablet with behaviour like usb-tablet we use to get mouse integration.
The implementing serial tablet would allow to have mouse integration for vintage operating systems. This feature is absent in other virtualisation systems, as far a I know. Emulating additional character device with absolute coordinates – the one which was rather popular in 1990x– would allow us to use already existing drivers for old operating systems without USB support and so such device would bring mouse integration to them.
We also have a project suffering from this problem: a live history timeline of GUI-based mobile & desktop operating systems. This timeline also uses virtual machines, embedded into HTML instead of screenshots. Our goal is to virtualise about 40 desktop & 30 mobile OSes for this demo (more than 50% is already done). The architecture of our project involves QEMU as the container for historical operating systems (either straightforward or with an iternal emulator). The project is hosted at https://gitssh.com/fiowro/ostimeline/tree/master (dedicated web site with live demo demanded separate hardware server and finally should appear this spring…). And of course we also have the same problem with guest systems not supporting Wacom USB tablet.
So there are enough projects and users who would benefit from implementing such feature.
At first I was thinking to make a plugin subsystem which would allow to write separate loadable modules for different character backends (to re-vitalize also some abandoned QEMU patches for exotic relative coordinates mice). But later I decided to chose more simple goal and just to implement serial tablet.
So I've studied these abandoned patches (mainly one for serial mouse with PC mouse systems protocol) and started working to implement similar patch for serial Wacom tablet. RS-232 Wacom PenPartner tablet was chosen to match the newer USB one, and because it is enough old to have drivers for the larger share of antique systems, and also has described protocol.
At this moment I have got the real hardware PenPartner tablet (model CT-0405-R) and three virtual machines configured to use it:
- wacom wtest program under FreeDOS (it discovers the tablet and prints events from it),
- windows 3.11,
- windows 95.
Drivers for OS/2 and MacOS X (and perhaps some others we will find for our ostimeline project) are still waiting to be installed into virtualised systems, but of course it's not so urgent.
My initial efforts have resulted into some dirty patch to QEMU 1.7 which makes wtest to recognise emulated tablet and sends coordinates (a pair of constants) on mouse move. The following link provides pre-compiled qemu binary, its souce code, starting script and qcow image with wtest: https://www.dropbox.com/sh/q8ud6og8fxjzm60/AAAAtcStLohBP6PR-KLyIvxSa?dl=0
Of course the code is far from being finished, but at least it seems to be a good proof… And participating in GSoC program would help me a lot not to make something useful for other projects and not to finish with one more patch for an outdated QEMU version (like an abandoned genius backend, a vmware mouse, and a bus mouse patch used to run NextSTEP OS).
P.S. Sorry for such a long intro… Don't know how did it happened… :)
|[Prev in Thread]||Current Thread||[Next in Thread]|