Emulating the XO

From OLPC
Revision as of 08:33, 25 September 2007 by Bert (talk | contribs) (Comparison of alternatives)
Jump to: navigation, search
  english | español日本語한국어portuguêsрусский HowTo [ID# 66430]  +/-  



laptop-in-laptop

Simulating an XO

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 three listed here provide either Open Source or Gratis players to run images:

As of official build 557, VirtualBox and VMWare are both able to load converted images with networking support. VirtualBox also provides sound support. At the moment, these converted images are the recommended practice for simulating an XO, both for testing out the environment and developing activities.

As of the same date, Qemu is able to run the official images, but networking must be restarted (/etc/init.d/network restart) from the developer's console to have any networking support. Sound doesn't yet appear to be working.

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 VMWare. 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 and Category:Installing_Sugar
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. See Emulating the XO/Quick Start/Mac. Perhaps also VirtualBox and VMWare? See also /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.

Uncertainties:

  • 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)

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.

505 is the most recent build known to work in qemu. Builds after 541 run, but collaboration is broken (you can't see other laptops).
Many builds between 541 and 505, including 531, 529, and 525, didn't boot. However, some of the later 50x may work.

Actually build 542, the Trial 2 build, introduced a "feature": the configuration is no longer hardcoded to use the server olpc.collabora.co.uk, and has no server prepopulated. You can set the server yourself by editing ~olpc/.sugar/default/config and setting server = olpc.collabora.co.uk and restarting. This should mean that 542 is the preferred image for developing with, since 505 and other 50x are quite old. --morgs 03:54, 21 August 2007 (EDT)
I've added seting the server to the instructions below. Thanks!  :) But for now, we're still stuck at 505, because the workaround for #1977 stopped working. MitchellNCharity 23:25, 22 August 2007 (EDT)
#1977 is now marked fixed. Hopefully once #2981 is fixed, emulation of current builds will again work. MitchellNCharity 10:33, 24 August 2007 (EDT)
#2981 is now marked fixed. If qemu is run with -net nic,model=rtl8139, then NetworkManager no longer needs to be disabled (build 564). Presence services still doesn't seem to work (neither jabber.laptop.org, nor olpc.collabora.co.uk (registered False or True)). Cause unknown. MitchellNCharity 00:39, 2 September 2007 (EDT)
Observations: 557 and 564 seem to behave similarly. wget http://SOME-IP-ADDRESS/ fails (Connecting to SOME-IP-ADDRESS... failed: Network is unreachable.). ifup eth0 fails (Determining IP information for eth0... failed.). nm-tool reports Gateway: 0.0.0.0 Primary DNS: 0.0.0.0 Secondary DNS: 0.0.0.0. Hmm, how does one /sbin/route add -net 0.0.0.0 gw 10.0.2.2 eth0[1] on an xo? MitchellNCharity 01:45, 2 September 2007 (EDT)

Build 557 is reported to work on VirtualBox and VMWare, but not qemu. MitchellNCharity 22:52, 19 September 2007 (EDT)

Builds 578, 579, 581 are known to not boot #3470 (578, 579 in VMWare, 581 in QEMU). MitchellNCharity 13:55, 15 September 2007 (EDT)


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