Improving emulation

From OLPC
Jump to: navigation, search
This article is a stub. You can help the OLPC project by expanding it.
Merge-arrows.gif
It has been suggested that this article or section be merged with Emulating_the_XO. (Discuss)

For a long time, people have wanted it to be easier to try out OLPC software, and easier to develop it. There have been a lot of efforts in various directions, by various people. But the efforts have been scattered, with little coordination, communication, or documentation. This page is created in the hope that it will become such a point of communication.

Efforts and opportunities

Active:

Less active:

  •  ???

What else? Please add any efforts you know about. And links to further information, to make it easier for folks to pick up currently inactive efforts. Please use the ~~~~ twiddles to date the information.

Problem space

Key sizes: CD (700MB); USB 1GB; USB 2GB; devel image 1GB; devel image modified for less free space (down to)~300MB; sugar-jhbuild ~3GB; F7 image (something like)~10GB.
Building blocks: xo images; converted xo images; sugar-jhbuild; emulators; Linuxes (F7, Ubuntu, tiny (eg, Puppy Dog)).

Some problem space characteristics:

  • Live usb sticks are much less universally supported than live CD's.
  • Non-free alternatives to qemu tend to be easier to install, and more featureful (vis USB, camera, and sharing with host), but have not yet been used for xo development by as many people, and are thus currently less mature. VirtualBox may be interesting in being more featureful/easy, while still permitting redistribution (eg, on live mumbles).

Random points in design space:

  • LiveCD with devel image-like stripped down F7. This was the approach used by the old 406 livecd. Pilgrim.
  • LiveCD with small Linux plus emulation of shrunk devel image. Probably simpler than the F7 approach. Bug space will be simpler. Support of user hardware will be poorer (emulation level rather than sugar-jhbuild level).
  • LiveCD + something else, eg usb stick, hybrids. Ie, combine CD's universal booting with usb's modifiablility.
    • LiveCD with generic OS (eg, Edubuntu) plus USB with emulator and image.
    • LiveCD with small OS (eg, PuppyDog) and emulator, plus USB with either image, or just ~olpc filesystem for overlaying.
  • LiveUSB versions of the LiveCD alternatives.
  • Provide images for:
    • qemu (current)
    • virtualbox/vmware (under development)
    • anything else?
  • Provide images with:
    • sets of .xol and .xo tuned for different users. Kids; teachers; trying it; developers.
    • turn-key use
  • Emulation supporting:
    • Camera. It's one of the two most popular demo apps, but emulation has never supported it. Most people don't have cameras, so it may not infact be very interesting. Qemu seems unlikely to supported it anytime soon. VirtualBox may, but it's not been tested.
    • Sound. I dropped the ball on this one (Mitchell). I hope to revisit it soon. I'm unsure whether TamTam works on VirtualBox or VMWare.
  • Provide working sugar-jhbuild snapshots. As the full set of host sites are not always available, and everything does not always build.

Priorities

  • The Using QEMU on Windows XP badly needs some attention and cleanup.
  • Now that the emulation pages are no longer linked from the navigation sidebar, it is not clear how anyone is supposed to find out about it. It seems linked only via a low profile link in Developers. Have we given up on people running emulation? MitchellNCharity 14:57, 22 October 2007 (EDT)
  • On Windows (Windows 98, NT, 2000, XP or Vista), it is possible to do a single step install of qemu, kqemu, and a launcher script. Existence proof, launching Ubuntu. All the persistence stuff is irrelevant. We should have one of these.