Emulating the XO
modify |
Simulating an XO
Emulating the XO is important not only to test software for the system, but also for people to be able to provide day-0 support on all the technical issues that will arise on the XO in countries having access to the device and system for the first time. To fulfill these needs, it will be important to make emulating the XO laptop easy, accessible, and available to many people all over the world.
Emulators allow you to run a "virtual machine" on a (reasonably powerful) host machine. There are a number of emulator systems available which can be used to run a simulated OLPC-XO.
The best one depends on your platform and purpose -see #Comparison of alternatives. There is currently some disagreement on which to recommend.
- VMWare
- Qemu, see Quick Start
- VirtualBox
The *img.bz2 disk image files work out of the box with Qemu. If you wish to use VirtualBox or VMWare, you can convert the downloaded files into the vmdk (virtual machine disk format), understood by both VirtualBox and VMWare with the commands
bunzip2 <filename>.img.bz2 qemu-img convert <filename>.img -O vmdk <filename>.vmdk
Note that you will need to have Qemu tools installed to perform the above step.
Simulating the XO's 1200x900 display
The emulators listed have varying success at emulating the high-res display of the XOs. VMware comes close, but does not get the resolution quite right; particularly when emulating what the browser looks like (the browser does its own image scaling). Be sure to calibrate any image work you are doing with someone who has an actual XO before trusting the emulator to guide your further work.
- To get 1200x900, use a remote X display. See /Help and tips#Run a Xephyr remote X display and How to set up for development on linux emulation#getting 1200x900. MitchellNCharity 11:06, 9 October 2007 (EDT)
Simulating a Developer's Desktop
Most core developers use Fedora 7 or Ubuntu Feisty desktops which are running sugar-jhbuild to track the latest developments in the code-base. This allows you to integrate into the core development process, but can be a considerable maintenance headache due to the fragile nature of the build process.
You can readily run a simulated Fedora/Ubuntu desktop in emulation. This setup is not substantially different from running a regular Linux desktop using sugar-jhbuild.
Note: This approach is really only recommended for those who want to work on core components of the environment, activity developers are probably better off using an official image.
Note: Previously we have attempted to provide LiveCD and Developer Images for download. Manpower issues have meant that these images have fallen far behind the official images, thus they are no longer a recommended approach for developers. If you are interested in volunteering to maintain the LiveCD or Developer Images, please contact Mike Fletcher.
Comparison of alternatives
An OLPC laptop is custom hardware, running a stripped-down Red Hat linux, running Sugar. But what if you don't have a real olpc laptop? There are a several options, which can each be used in a couple of ways.
platform | purpose | recommendation |
---|---|---|
Ubuntu | play & development | xo disk images on qemu. See Emulating the XO/Quick Start. |
Ubuntu 32-bit | core development | Sugar with sugar-jhbuild and Sugar on Ubuntu Linux |
Fedora | play & development | xo disk images on qemu. See Emulating the XO/Quick Start. Perhaps also on VirtualBox? |
Fedora 32-bit | core development | Sugar with sugar-jhbuild and Category:Installing_Sugar |
Gentoo 32-bit | core development | Sugar with sugar-jhbuild in F7 on qemu. Or Sugar on Gentoo Linux (more invasive, less stable). |
Other linux & FreeBSD | play & development | xo disk images on qemu. See Emulating the XO/Quick Start. Perhaps also on VirtualBox? |
Windows | play & development | emulated xo disk image, on VirtualBox, VMWare, or QEMU on Windows. |
Mac | play & development | emulated xo disk image, on qemu or VMWare. See Emulating the XO/Quick Start/Mac. Perhaps also VirtualBox? See also /Mac. |
Mac with VMWare fusion | core development | Fedora 7 in VMWare and Sugar with sugar-jhbuild, sound and networking work. See /Mac |
Mac with Parallels | play | emulated xo disk image, networking works after manually "dhclient eth0", sound does not work (Build 593). |
Mac with Parallels | core development | run Ubuntu 32-bit, and Sugar on Ubuntu Linux. See /Mac. F7 may be better - see below |
Discussion:
- Is F7 better than Ubuntu for sugar-jhbuild? If so, should the Mac Parallels recommendation for core development be F7 rather than Ubuntu, despite the latter having a track record in /Mac? MitchellNCharity 10:33, 20 September 2007 (EDT)
- Yes, you will have less problems with Fedora 7, once you get it working in Parallels (which is harder than Ubuntu I think). I am running F7 because I need to be able to build RPMs. Bert 08:33, 25 September 2007 (EDT)
- QEMU or VirtualBox or VMWare?
Build recommendations
For running XO disk images on an emulator, some builds are better than others, and the most recent one will not always work. Here is a summary of current status. Please add your own experiences here, and in User Feedback on Images.
LATEST has been working on qemu lately. TamTam sound doesn't work #1978.
611 has been run on qemu, but has not been extensively tested. MitchellNCharity 12:16, 3 October 2007 (EDT)
Build 593 is reported[1] to boot on VMWare.
Build 557 is reported to work on VirtualBox and VMWare. TamTam sound comes through but with loud buzzing.
Overview
- This is the old introduction section. It needs to be updated. Eg, the LiveCd is currently not a useful alternative. And "just use the latest build" isn't good advice, as a more selective approach has been needed. MitchellNCharity 23:36, 19 September 2007 (EDT)
One way to run oplc software is using an emulator on your pc. See Getting started programming for other options.
Note Category:Emulation and Help and tips.
For play, you can use LiveCd or Quick Start.
For development, you can use LiveCd, or qemu (as in quick start, but with a different image), or perhaps one of the Developer Images other than the LiveCd. An alternate approach is to attempt installing sugar. See Getting started programming for a comparison.
A common development approach is to use QEMU with kqemu acceleration. See Quick Start for the basics. Though for development, we will use a different .img, one with a few extra utility programs. See OS images, including latest stable build.
Instead of qemu, you can run VMware, and there are additional options on a Mac.
Please report your experiences in User Feedback on Images. There is a Virtualization Common Room.
There are limitations with XO disk images.
The LATEST-STABLE-BUILD versus LATEST build distinction is mostly of interest to people running on actual XO's. In emulation, developers should usually use LATEST. And when STABLE is old, non-developers probably should too.
See also
- How to set up for development on linux emulation. Also helpful for non-developers, and for other platforms.
- Tutorial Written by IBM on how to get this working.
- Improving emulation
- Category:Emulation