Improving emulation
Jump to navigation
Jump to search
This article is a stub. You can help the OLPC project by expanding it.
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:
- "Build watch": User:MitchellNCharity intermittently maintains the "build watch" on Emulating the XO, reporting which builds are working in emulation. Historically the emphasis has been on qemu, but the other emulators are often hit by the same issues.
- User:Mcfletch is working to create and documenting a VirtualBox/VMWare alternative to qemu.
- User:Mchua is working on Puppy Dog linux (a tiny linux) + emulation to create a live usb and/or live CD.
- User:CScott is working on making emulation images capable of being updated when new builds come out.
- Someone(?) is working on getting sugar-jhbuild to work on 64-bit machines.
Less active:
- There have been collective efforts to debug and document emulation on qemu, vmware, parallels, virtual pc, virtual box, and other emulators.
- J5 has updating LiveCD somewhere far down on his large todo list. It used pilgrim (link?), which could also be used to convert it to a live usb.
- There have been various efforts by ... to create F7 and Ubuntu builds which work in emulation, to run sugar-jhbuild.
- ...
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.
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.