Emulating the XO/Limitations of XO disk images

From OLPC
Jump to: navigation, search

This page needs some terms defined:

A) the hardware (I think XO)
B) the software 
C) the whole thing (OLPC?)

The OLPC system is designed specifically to run on a piece of hardware called the XO. Some of the components are unlike any off the shelf product (example, the camera) so you won't be able to get 100% emulation of the OLPC.

To put things in perspective: most VMs (qemu, vmware, VPC) emulate specific but common video, network, ide and such hardware. It then maps the virtual hardware to the hosts real hardware via the drivers on the host. This means as long as the guest OS can work with the common hardware, it can work with the virtual hardware. The OS's we typically use are designed to run on a verity of hardware, but the XO software is only designed to run on XO hardware, and the XO hardware was not designed to be used for anything other than running XO software. This is fine for the XO, but puts a kink in the ability to run 100% of the XO software on anything but an XO's hardware.

You can run the OLPC 'distro' and get more of the OLPC experience by reconfiguring it to work with your native (or virtual) hardware. This is of course more hassle than grabbing an image and running it, which is what this page is about. (will someone add a link to the topic that talks about using non XO hardware)

This page will help define the line between what can and can't be emulated. (and perhaps what needs to be done to remove a limitation.)

XO Specifications [1]

Touch Pad

Mercury: The GS is a capacitive sensor, the PT is a resistive sensor.
CarlFK: is that anything that can be emulated if we are not running on an xo?
Mercury: Maybe.
Mercury: They are really just two absolute coordinate devices, we turn the absolute coordinate data of the GS into relative coordinate data, so it can be used as any laptop's touchpad.
Mercury: However given that qemu runs under X already, there's not a _lot_ to be gained by that over simply providing a mouse.

Camera

Mitch_Bradley: the image sensor is Omnivision OM7670.  I'm not sure if Omnivision has released the data sheet yet.  The DMA interface between the sensor and the system memory is custom.
CarlFK: so no chance in hell of it working with off the shelf web cam?
Mitch_Bradley: the XO drivers will not work directly with an off-the-shelf web cam.
Mitch_Bradley: off the shelf web cams are mostly USB-connected.  Ours isn't.  That in itself seals the deal.
bricode: Mitch_Bradley: Huh? I think I'd disagree. Since the Camera Activity uses the V4L2 interface, couldn't you just find V4L2 webcam?
Mitch_Bradley: bricode: he specifically asked if one could use the XO drivers on an ordinary laptop.   He did not ask about higher levels of abstraction.

Mesh Emulation

Jcfrench: I've been playing with XO images in emulators like QEMU. But my network management is always a bit touchy. I can manually restart the dhclient, but I only see myself on the mesh. Can the internet emulate some kind of neighborhood mesh?

Noen: Someone should try hamachi(www.hamachi.cc) with this. We could set up a olpc test network, which would be sweet(if it works).