Emulating the XO: Difference between revisions

From OLPC
Jump to navigation Jump to search
(→‎Context: Added higher profile link to Help_and_tips.)
No edit summary
 
(207 intermediate revisions by 59 users not shown)
Line 1: Line 1:
{{translations}}
{{translations}}
{{emulation-nav}}
<div style="float:right; clear:right; font-size:80%; max-width:60%; padding:0.3em; background:#c1fea1; color:#0a6c00; border:2px solid #8ad962; "><big>'''Latest Release:'''</big><br>Stable: [http://olpc.download.redhat.com/olpc/streams/development/build406/ '''Build 406'''] (May 7)<br>[[LiveCD]]: [http://olpc.download.redhat.com/olpc/streams/sdk/latest/livecd/olpc-redhat-stream-sdk-livecd.iso '''ISO-Build 385'''] (Apr 7)
</div>
[[Image:AP1_39.jpg|thumb|laptop-in-laptop]]


In the past, OLPC produced alternative software images which could be run in emulators such as QEMU and VMware. This meant that development and testing could happen to a limited extent without requiring an XO laptop.
== [[Emulating the XO/Quick Start|Quick Start]] ==


'''In 2013, please see Tom Gilliard's many [http://wiki.sugarlabs.org/go/Sugar_Creation_Kit virtual machine images ready-to-go].'''
To set up a "virtual XO", and get a taste of the XO software, see [[Emulating the XO/Quick Start|Quick Start]].


Note, XOs are readily available to genuine volunteer contributors through the [[Contributors program]].
== Context ==


[http://sugarlabs.org Sugar], the unique user interface of the XO laptops, is also distributed as a generic software project and can be developed and tested on "regular" computers as well as XOs. See [http://wiki.sugarlabs.org/go/Downloads Sugar Labs Downloads] for the full range of options, such as [http://wiki.sugarlabs.org/go/Sugar_on_a_Stick Sugar on a Stick].
One way to run oplc software is using an emulator on your pc. See [[Software]] and [[Getting started programming]] for other options.

Compared to using a [[Developer Images|developer image LiveCD]], running XO disk images might be harder to set up, but easier to develop on. And compared to [[:Category:Installing_Sugar|installing sugar]], easier, but harder.

See [[:Category:Emulation]] for related pages. Including [[Emulating the XO/Help and tips]].

== 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 !! note !! updated !! hardware? !! library? !! writable? !! development software? !! network? !! comments
|-
| [[LiveCd]]
|
| April || yes || no || no || toolchain, Gnome || yes
| Alternative Quick Start. Good for new developers. Problems: A.
|-
| XO disk images:
|
| || no || || yes
|-
| LATEST-STABLE-BUILD
|-
| ...development.ext3.img
|
| ~monthly || no || yes || yes || no || extra step
| Quick Start for getting a look at Sugar.
|-
| ...development-devel.ext3.img
|
| ~monthly || no || no || yes || a little || extra step
|-
| LATEST
|-
| ...development.ext3.img
|
| ~daily || no || yes || yes || no || extra step
|-
| ...development-devel.ext3.img
|
| ~daily || no || no || yes || a little || extra step
| Good for new developers (requires some command-line comfort).
|-
| [[Developer Images#Big Fedora Core 6 Build|FC6+Sugar]]
|
| April || yes || yes? || yes || Full Fedora Softare Dev. || yes
| 6GB (April version: no etoys)
|-
| [[:Category:Installing Sugar|Installing Sugar]]
|
| continuous
| yes || yes || yes || your own || yes
| Quite hard to do.
|}
Notes:
:hardware: Might your camera/video work. Is there even sound in the xo disk images?
:library: The olpc default library is included (english version). Ie, pretty text to web browse without having to get network.
: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?
:network: does the network "just work"?

Problems:
:A: LiveCd (April) on fc6 x86_64, kernel panics under kqemu.

Todo:
*Maybe add columns: etoys?

=== Future possibilities ===

It would be nice to have:
*a small (like LiveCd) 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).
*a small (like LiveCd) qemu image with full fedora host detection/configuration (like Big FC6 Build). To be an "intro" qemu image for non-developers, and a sound&video-works (hopefully) image for developers.
*: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?

== Emulation for Development ==

The most common approach is to use [[QEMU]] with kqemu acceleration. See [[Emulating the XO/Quick Start|Quick Start]] for the basics.
But we will use a different .img, one with a few extra utility programs. See [[OS images]]. Including the '''[[OS_images#Latest_Stable_Build |latest stable build]]'''.

Instead of qemu, you can run [[Emulating the XO/UsingVMware|VMware]], and there are addition options on a [[Emulating the XO/Mac|Mac]].

[[Emulating the XO/Help and tips]] may help. Please report your experiences in [[User Feedback on Images]]. There is a [[Virtualization Common Room]].

There are [[Emulating the XO/Limitations of XO disk images|limitations with XO disk images]].

=== 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 "<tt>*-devel*.img</tt>" image, rather than a standard (non-devel) one. The <tt>-devel</tt> image has extra software like <tt>sshd</tt> and <tt>wget</tt>.

Get network working on the laptop. See [[Using QEMU for Troubleshooting#Network]]. A simple <tt>echo ifup eth0 >> /etc/rc.local</tt> , 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)
*# First-time setup
*## Get the image's network working.
*## Change the image's root password.
*##: Log into the image as root (no password needed yet!), type <tt>passwd</tt> , 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)''
*# Whenever you run qemu, add the argument <tt>-redir tcp:2222::22</tt>
*# 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? [[User:MitchellNCharity|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 laptops's web browser.


For emulation of extremely old builds, you may be able to come across "ext3 images" on some corners of http://download.laptop.org and http://xs-dev.laptop.org/~cscott/olpc/streams/ which can be loaded into emulators. You are unlikely to find support for them!


[[Category:OS]]
[[Category:OS]]

Latest revision as of 16:26, 30 July 2013

  english | español日本語한국어portuguêsрусский HowTo [ID# 290021]  +/-  
modify 

In the past, OLPC produced alternative software images which could be run in emulators such as QEMU and VMware. This meant that development and testing could happen to a limited extent without requiring an XO laptop.

In 2013, please see Tom Gilliard's many virtual machine images ready-to-go.

Note, XOs are readily available to genuine volunteer contributors through the Contributors program.

Sugar, the unique user interface of the XO laptops, is also distributed as a generic software project and can be developed and tested on "regular" computers as well as XOs. See Sugar Labs Downloads for the full range of options, such as Sugar on a Stick.

For emulation of extremely old builds, you may be able to come across "ext3 images" on some corners of http://download.laptop.org and http://xs-dev.laptop.org/~cscott/olpc/streams/ which can be loaded into emulators. You are unlikely to find support for them!