Emulating the XO

From OLPC
Revision as of 13:27, 3 June 2007 by 66.92.74.189 (talk) (Development using QEMU)
Jump to: navigation, search
  english | español日本語한국어portuguêsрусский HowTo [ID# 40942]  +/-  



laptop-in-laptop

Quick Start

To set up a "virtual XO", and get a taste of the XO software, see Quick Start.

Overview

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.

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.

option updated sound? camera? library? etoys? R/W? development software? net? comments
LiveCd April yes(boot) yes?(qemu) yes?(boot) no(qemu) no yes no toolchain, Gnome yes? Alternative Quick Start. Good for new developers. Can both be booted from, and used in qemu. Problems: A.
XO disk images:
LATEST-STABLE-BUILD http://olpc.download.redhat.com/olpc/streams/development/LATEST-STABLE-BUILD/
development-ext3.img ~monthly yes/B no yes yes yes no after config Quick Start for getting a look at Sugar.
development-devel_ext3.img ~monthly yes/B no no yes yes a little after config
LATEST http://olpc.download.redhat.com/olpc/streams/development/LATEST/
development-ext3.img ~daily yes/B no yes yes yes no after config
development-devel_ext3.img ~daily yes/B no no yes yes a little after config Good for new developers (requires some command-line comfort).
OTHER
FC6+Sugar April yes? ? ? no yes Full Fedora Softare Dev. yes 6GB (April version: no etoys)
Installing Sugar continuous yes yes? yes? yes yes your own yes Quite hard to do.

Key:

library: A library of sample content is included (english version). Ie, pretty text to web browse without having to get network.
R/W (writable): With an .img, you can save things between sessions. With a .iso, your environment is the same each time you start.
development software: are development tools included?
Net (network): does the network "just work" or "manual" steps are required?

Problems:

A: LiveCd (April) on fc6 x86_64, kernel panics under kqemu. A squashfs problem.
B: Tam Tam is silent (though EToys makes noise). Cause unknown.

Notes:

  • re "does sugar-jhbuild support camera/mic?": "yes, if the camera uses v4l2 and 640x480, I'd suspect so." Can someone confirm this? (#olpc, now) MitchellNCharity 00:16, 2 June 2007 (EDT)

Doables:

  • Remove LiveCd's "?" above.
  • Find out what's going on with Tam Tam sound. It would be nice for the xo disk images to all be sound-yes.
  • Add a microphone column? Reconsolidate sound/camera/mic into a H/W column?

Future possibilities

It would be nice to have:

  • LiveCd with Library. To be an "intro" livecd for non-developers to try sugar.
    • Perhaps create a mutant LiveCd. Take LiveCd, unsquash its squashfs, add library, resquash, and mkisofs. Downsides: LiveCd isn't updated very frequently (but since an update is coming rsn, perhaps we don't care just now). See Talk:Emulating_the_XO.
  • a small(?) qemu image with full fedora host detection/configuration (like Big FC6 Build). To be an "intro" qemu image for non-developers. A "virtual XO".
    • Perhaps derive from LiveCd? The bottleneck is getting a clean sugar-jhbuild. LiveCd is the only production source of this human intensive process, other than the latest-stable-builds, which are xo-specific. It's not clear that one could get from any xo disk image to a hardware-independent build. Perhaps one might find out what versions of things went into a latest-stable-build? Perhaps sugar-jhbuild works not-infrequently for some particular environment, eg fc7 x86? Perhaps take someone's fc6+sugar image (Big FC6 Build lacks etoys), attempt updating it, and strip it down?
    • Re derive from LiveCd, one might be able to unsquash the fs, customize for this role, make a qemu image with it, and add boot stuff?
    • The LiveCd image, once unsquashed, is not small (4GB). Is this Gnome and such? Does the xo have some non-readonly compression which we can shrink that with? Is it worth a performance hit? MitchellNCharity 23:38, 1 June 2007 (EDT)
    • If sound starts fully working on xo disk images, given that qemu doesn't support usb cameras, is this option needed? Isn't the non-devel image equivalent? MitchellNCharity 23:38, 1 June 2007 (EDT)

Notes:

  • qemu appears to currently lack usb camera support.

Emulation for Development

Development using QEMU

If you wish to develop software on an emulated image, you will usually want a connection between your host and the laptop image.

You need a "*-devel*.img" image, rather than a standard (non-devel) one. The -devel image has extra software like sshd and wget.

Get network working on the laptop. See Using QEMU for Troubleshooting#Network. A simple echo ifup eth0 >> /etc/rc.local , run as root on the laptop, should do it. You should now be able to surf with the laptop's web activity. Under QEMU the Laptop image can see the host as IP address 10.0.2.2 .

Next, you have several alternatives:

  • SSH using qemu -redir tcp:2222::22. (a good first approach)
    1. First-time setup
      1. Get the image's network working.
      2. Change the image's root password.
        Log into the image as root (no password needed yet!), type passwd , and then give it one. Complaints about "BAD" passwords won't stop things from working.
        Logging in as root is easy in qemu - you have a console window. Elsewhere...(? someone else will need to fill this in)
    2. Whenever you run qemu, add the argument -redir tcp:2222::22
    3. You can now log into the laptop image, from your real machine, using ssh. And you can use scp, etc.
ssh -p 2222 root@localhost     # simple
ssh -o NoHostAuthenticationForLocalhost=yes -p 2222 root@localhost  #avoids annoying warning
  • SSH using a key. (if ssh passwords get annoying, you can try this)
    If you create an SSH server on your host and install a key on your Laptop image that has logon rights for that server, you can ssh from the OLPC to your host. This avoids password typing.
    Adding platform-specific instructions might be useful? MitchellNCharity 15:59, 21 May 2007 (EDT)
  • Using a web server. (if you don't want to deal with ssh, and have a webserver)
    If you have a web server, you might simply download stuff onto the laptop using the laptop's web browser.