Emulating the XO/lang-es: Difference between revisions

From OLPC
Jump to navigation Jump to search
(sync'ed version = 45693 (really))
(semi-sync with 48033)
Line 1: Line 1:
{{Translation | lang = es | source = Emulating the XO | version = 45693}}
{{Translation | lang = es | source = Emulating the XO | version = 48033}}
{{Ongoing Translation}}
{{Ongoing Translation}}
{{ Latest Releases | livecd = inline | devel = inline | extra }}
{{ Latest Releases | livecd = inline | devel = inline | extra }}
Line 30: Line 30:
Descargue la [http://olpc.download.redhat.com/olpc/streams/development/LATEST/devel_ext3/olpc-redhat-stream-development-devel_ext3.img.bz2 última imagen] de [http://olpc.download.redhat.com/olpc/streams/development/LATEST/devel_ext3/ acá]. Instale [[QEMU/lang-es|QEMU]] y el acelerador como se indica en [[Emulating the XO/Quick Start/lang-es|Emulando la XO - Inicio Rápido]]. Vea [[Emulating the XO/Help and tips/lang-es|Ayuda y soluciones]].
Descargue la [http://olpc.download.redhat.com/olpc/streams/development/LATEST/devel_ext3/olpc-redhat-stream-development-devel_ext3.img.bz2 última imagen] de [http://olpc.download.redhat.com/olpc/streams/development/LATEST/devel_ext3/ acá]. Instale [[QEMU/lang-es|QEMU]] y el acelerador como se indica en [[Emulating the XO/Quick Start/lang-es|Emulando la XO - Inicio Rápido]]. Vea [[Emulating the XO/Help and tips/lang-es|Ayuda y soluciones]].


'''Vea [[#XO-QEMU boot broken - current workarounds|Booteo QEMU roto - soluciones temporales]]
Los ''builds'' 463, 461 y 451 tiene algunos problemas corriendo bajo [[QEMU/lang-es|qemu]], pero el '''445''' funciona bien.

{{ Translated text |
El ''build 486 puede que funcione [http://www.j5live.com/?p=388 j5live.com]. Si no, el 445 sería la mejor alternativa. Los ''builds'' 485 y 482 tienen problemas con red (y 482 requiere de pasos adicionales [[Emulating_the_XO/Help_and_tips/lang-es#Builds_between_445_and_485.2C_non-inclusive_--_Workaround_for_netfs_preventing_boot|Builds 445 al 485 no inclusive - soluciones para el netfs]].
{{ Translated text |1=
Developing on emulation is one alternative for developing software.
Developing on emulation is one alternative for developing software.


Get [http://olpc.download.redhat.com/olpc/streams/development/LATEST/devel_ext3/olpc-redhat-stream-development-devel_ext3.img.bz2 the latest image]
Get [http://olpc.download.redhat.com/olpc/streams/development/LATEST/devel_ext3/olpc-redhat-stream-development-devel_ext3.img.bz2 the latest image]
from [http://olpc.download.redhat.com/olpc/streams/development/LATEST/devel_ext3/ here]. ''(add link to tinderbox)''
from [http://olpc.download.redhat.com/olpc/streams/development/LATEST/devel_ext3/ here]. ''(add link to tinderbox)''
Install QEMU and kernel acceleration as described in [[Emulating the XO/Quick Start]]. See [[/Help_and_tips#Development]].
Install QEMU and kernel acceleration as described in [[Emulating the XO/Quick Start]]. See the [[/Help_and_tips]] "Development" section.

'''See [[#XO-QEMU boot broken - current workarounds]].'''


Build 486 may be working[http://www.j5live.com/?p=388]. Otherwise, 445 is still your best bet.
Builds 463,461,451 do not boot under qemu. 445 is known to work.
485 and 482 have network issues (and 482 requires an additional workaround
[http://wiki.laptop.org/go/Emulating_the_XO/Help_and_tips#Builds_between_445_and_485.2C_non-inclusive_--_Workaround_for_netfs_preventing_boot]).
| display = block }}
| display = block }}


Line 88: Line 94:
| display = block }}
| display = block }}


{{anchor|recomendations}}
{{anchor|recommendations}}
=== recomendaciones ===
=== recomendaciones ===


Line 273: Line 279:
| display = block }}
| display = block }}


= NEW XAVA =

{{anchor|XO-QEMU boot broken - current workarounds}}
== XO-QEMU boot broken - current workarounds ==

{{ Translated text |1=
Build 445 was the last version which booted cleanly under qemu ([http://dev.laptop.org/ticket/1809 ticket]).
More recent builds require workarounds. Build 485 resolved one problem.

*When booting on qemu, add root=/dev/hda to the grub kernel line. This needs to be done every time.
*#When you start your xo disk image on qemu, you should see a blue grub screen, doing a "Booting .. in N seconds" countdown. Press space to interrupt it.
*#Press '''e''' (edit). This will show you 3 lines.
*#Move to the second, which begins "kernel". Press '''e'''. This will take you to the end of the kernel line.
*#Add <tt> root=/dev/hda1</tt> Then press enter.
*#Press '''b''' to continue booting.
:(This workaround avoids "WARNING: Cannot find root file system!", and being dropped into an emergency shell.)

Should add instructions to modify the image's grub config, so this doesn't need to be done every time you boot. [[User:MitchellNCharity|MitchellNCharity]] 12:04, 3 July 2007 (EDT)

It might be worth gathering the currently scattered notes, into a single list of step by step instructions, for getting from nothing, to a pair of qemu images running with Xephyr's and ssh. [[User:MitchellNCharity|MitchellNCharity]] 12:04, 3 July 2007 (EDT)
| display = block}}

{{anchor|Example step-by-step instructions}}
== Example step-by-step instructions ==

{{ Translated text |
Here, in one place, are assembled all the steps to get you to a working
emulated XO. Assuming you are running on linux, and have already
installed qemu and kqemu.

The following will ''not'' work on your virtual xo: sound, camera. The first because I haven't gotten around to figuring out why it isn't working. The second because qemu doesn't yet support them.

And when you boot your image a second time, network likely won't work. :( Something for another day. [[User:MitchellNCharity|MitchellNCharity]] 16:49, 4 July 2007 (EDT)
| display = block}}

{{ Translated text |1=
Go to
http://olpc.download.redhat.com/olpc/streams/development/LATEST/devel_ext3/
and obtain the numbered -devel_ext3.img.bz2 and its md5. For this example I used build 485.
Though the network doesn't seem to work in 485. 482 works, but you have to work around a boot failure.
[http://wiki.laptop.org/go/Emulating_the_XO/Help_and_tips#Builds_between_445_and_485.2C_non-inclusive_--_Workaround_for_netfs_preventing_boot]

md5sum -c olpc-redhat-stream-development-build-485-20070703_0249-devel_ext3.img.bz2.md5
bzcat olpc-redhat-stream-development-build-485-20070703_0249-devel_ext3.img.bz2 > xo-485a.img

The resulting file is 1 GB.

export PORT=2221
qemu-system-x86_64 -soundhw es1370 -serial `tty` -kernel-kqemu -redir tcp:$PORT::22 -hda xo-485a.img
Unless you have a x86_64 cpu, use <tt>qemu</tt> instead of <tt>qemu-system-x86_64</tt>.
| display = block}}

{{ Translated text |1=
The screen will very briefly be black, and then show the blue "GNU
GRUB" screen. If it stays black, that's a qemu bug. Kill qemu and try again.

0. Press any key to interrupt the countdown to boot. Then,

# Press '''e'''.
# Press down-arrow to get the "kernel" line.
# Press '''e'''. This takes you to the end of the kernel command line.
# Type space and <tt>root=/dev/hda1</tt>
# Press Enter.
# Press '''b'''.

The boot messages will scroll by, and you should eventually see the normal XO first-time login. We'll save that for later.
| display = block}}

{{ Translated text |1=
In the window where you started qemu, you should now see a login: prompt.

# Enter <tt>root</tt>
# Then:
/etc/rc5.d/S98NetworkManager stop
mv /etc/rc3.d/S98NetworkManager /etc/rc3.d/DISABLED-S98NetworkManager
mv /etc/rc5.d/S98NetworkManager /etc/rc5.d/DISABLED-S98NetworkManager
echo ifup eth0 >> /etc/rc.local
mv /boot/grub/grub.conf /boot/grub/grub.conf.orig
awk '/kernel/ {print $O,"root=/dev/hda1";next} {print}' < /boot/grub/grub.conf.orig > /boot/grub/grub.conf
grub-install hd0

If grub-install hangs, just kill it. It may even have worked anyway.

ifup eth0
killall X

Killing X should restart sugar.

If you want to enter a name with diacritics, you need to wait for X to restart, and then do:
su olpc -c"DISPLAY=:0 xmodmap -e 'keycode 77 = Multi_key'"
This sets up Num_lock as Multi_key. Unfortunately, the next time X is
restarted, you will lose it. A better solution is needed.
| display = block}}

{{ Translated text |
At this point you could just proceed to use your new XO. However, the screen resolution is wrong (1024x768). So for development, or to get a more accurate feel for how things really look, some extra steps are required.

Once you reach the main sugar screen, you should check the Neighborhood view (F1). If you can't see other people, either the we are having problems with the presence server, you are behind an unusually picky firewall, or networking on qemu is broken again in the build number you are using. (Remember that ping doesn't work inside of qemu).

While this next step is not strictly required, it will enable you to use ssh and scp, which can be handy to move stuff back and forth between your host and xo.
| display = block}}

{{ Translated text |
Still as root on the xo,

1. Change the root password.
passwd
Don't worry if it says something like "BAD PASSWORD: ", and complains about the password you picked. It will still work.

2. Change the olpc password.
passwd olpc

Now you can use ssh and scp.
| display = block}}


{{ Translated text |1=
The current released version of QEMU doesn't support 1200x900, so we use a Xephyr remote X server. Each time you boot the xo, if you want 1200x900, you'll need to do these next steps again, except for the ones marked "(First time only)".
| display = block}}

{{ Translated text |
1. Still as root on the xo:
init 3
sleep 5
ifup eth0
su olpc
grep export /usr/bin/sugar > ~/env
source ~/env

If the <tt>ifup eth0</tt> fails with an "already running" message, that's ok. Perhaps it is no longer needed.
| display = block}}

{{ Translated text |
2. Back on the host, prepare Xephyr (First time only)
mcookie > xephyr-cookie
export COOKIE=`cat xephyr-cookie`
rm -f xephyr-xauth; echo "add :1 . $COOKIE" | xauth -f xephyr-xauth
echo $COOKIE
| display = block}}

{{ Translated text |
3. On the xo, still as "su olpc", record the cookie: (First time only)
echo "add 10.0.2.2:1 . " PUT-THE-COOKIE-HERE | xauth
| display = block}}

{{ Translated text |
4. Back on the host, start a Xephyr:
Xephyr :1 -auth xephyr-xauth -reset -screen 1200x900x16 -dpi 200
You will probably want to do this in its own window, as it periodically dies and needs to be restarted.
| display = block}}

{{ Translated text |
5. On the xo, still as "su olpc", start sugar:
DISPLAY=10.0.2.2:1 sugar
| display = block}}

{{ Translated text |1=
Actually, I usually ssh in from the host, and run sugar that way:

a. On the host,
ssh -o NoHostAuthenticationForLocalhost=yes -p 2222 olpc@localhost
b. in the resulting shell,
source ~/env
export DISPLAY=10.0.2.2:1
sugar
You may also want to run
xmodmap -e 'keycode 77 = Multi_key'
to be able to enter diacritics with the Num_lock key.
But I find doing it first thing tends to kill Xephyr. :(

You should now see the XO first-login screen in correct resolution.
You can use Num_lock to enter diacritics. Congratulations. Sorry it
was so much bother.
| display = block}}


{{ Translated text |1=
To run multiple xo's (to play with collaboration, for instance), you
can repeat the above steps. Create a xo-485b.img, and use a different
PORT number (like 2222). If you are using Xephyr, start a second
Xephyr, which will be 10.0.2.2:'''2''', use that instead of ...:1 in
the instructions. You should now be able to see yourself, and
collaborate in Write.

The following will save you having to periodically type your xo password, but is optional, and can just as easily be done later.

Back on the host,

1. Create an ssh key if you don't already have one. See [[/Help_and_tips#SSH into qemu, using a key]].

2. Copy it to the xo,
scp -o NoHostAuthenticationForLocalhost=yes -P $PORT ~/.ssh/id_rsa.pub root@localhost:~/

3. On the xo, spread the key around:
mkdir ~root/.ssh
mkdir ~olpc/.ssh
cat id_rsa.pub >> ~root/.ssh/authorized_keys
cat id_rsa.pub >> ~olpc/.ssh/authorized_keys

You can now ssh and scp without retyping your password.
| display = block }}


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

Revision as of 17:18, 6 July 2007

  Traducción de Emulating the XO original  
  english | español日本語한국어portuguêsрусский   +/- cambios  
This is an on-going translation


laptop-in-laptop

Inicio Rápido - CD-Vivo

Para muchos, el CD-Vivo es la forma más fácil de probar Sugar. Es fácil, pero tu trabajo se pierde cuando reinicias.

For many, the LiveCD is the easiest way to try Sugar. It's easy to do, but your work is lost when you reboot.

Inicio Rápido - Emulación

La emulación es otra forma de probar Sugar. Puede resultar un poco más difícil, pero no se pierde lo hecho.

El sonido en TamTam puede no funcionar por el momento.

Emulation is the other way to try Sugar. It can be harder to set up,, but work is preserved.

Sound in TamTam may not be working at the moment. MitchellNCharity 13:16, 5 June 2007 (EDT)

Inicio Rápido para Desarrolladores

Una alternativa es el uso de la emulación para el desarrollo de software.

Descargue la última imagen de acá. Instale QEMU y el acelerador como se indica en Emulando la XO - Inicio Rápido. Vea Ayuda y soluciones.

Vea Booteo QEMU roto - soluciones temporales

El build 486 puede que funcione j5live.com. Si no, el 445 sería la mejor alternativa. Los builds 485 y 482 tienen problemas con red (y 482 requiere de pasos adicionales Builds 445 al 485 no inclusive - soluciones para el netfs.

Developing on emulation is one alternative for developing software.

Get the latest image from here. (add link to tinderbox) Install QEMU and kernel acceleration as described in Emulating the XO/Quick Start. See the /Help_and_tips "Development" section.

See #XO-QEMU boot broken - current workarounds.

Build 486 may be working[1]. Otherwise, 445 is still your best bet. 485 and 482 have network issues (and 482 requires an additional workaround

[2]).

Overview

Una forma de correr software OLPC es usando un emulador en su PC. Vea comenzando a programar para más opciones.

Note Category:Emulation y Ayuda y soluciones.

Para jugar, se puede usar el CD-Vivo, o QEMU (como en el 'inicio rápido', pero con una imagen diferente), o quizás alguna de nuestras imágenes de desarrollador distintas al cd-vivo. Otra alternativa es fijarse en la categoría de instalación de Sugar. Vea comenzando a programar para una comparación.

Una alternativa frecuente es usar QEMU junto a su acelerador kqemu. Vea su inicio rápido para comenzar. Sin embargo, para el desarrollo, usaremos una imagen diferente (.img) con algunos utilitarios extra. Vea imagenes del SO, incluyendo la última versión estable.

En vez de QEMU, se puede utilizar VMware, y hay otras alternativas para Mac.

Por favor informe sus resultados en feedback sobre las imágenes. Existe además un Salón de Virtualización sobre el tema.

Existen algunas limitaciones en las imágenes de disco XO.

La diferencia entre LATEST-STABLE-BUILD y LATEST es quizás de interés para aquellas personas usando XOs reales. Emulando, los desarrolladores deberían usar LATEST, y cuando LATEST-STABLE-BUILD es viejo (un par de semanas), los no desarrolladores también.

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.

Comparando alternativas

La laptop OLPC es hardware especializado, corriendo una versión mínima de Fedora de Red Hat, sobre la cual corre Sugar. Pero que si no se tiene una laptop OLPC? Hay varias alternativas, cada una posible de ser usada en modos diferentes.

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.

recomendaciones

platforma
platform
proposito
purpose
recomendación
recommendation
Windows desarrollo imagen de disco XO emulado; o Ubuntu emulado con sugar-jhbuild; (o CD-desarrollador o CD-Vivo)?. (necesitamos sus informes)
Windows development emulated xo disk image; or emulated Ubuntu with sugar-jhbuild; (or develoepr CD or LiveCD)?. (need your reports)
Mac desarrollo imagen de disco XO emulado; o Ubuntu emulado con sugar-jhbuild; (o CD-desarrollador o CD-Vivo)?. (necesitamos sus informes)
Mac development emulated xo disk image; or emulated Ubuntu with sugar-jhbuild; (or developer CD or LiveCD)?. (need your reports)
Mac con Parallels desarrollo instale Ubuntu 32-bit, y Sugar en Ubuntu Linux. Vea Emulando la XO - Mac.
Mac with Parallels development install Ubuntu 32-bit, and Sugar on Ubuntu Linux. See /Mac.
Ubuntu 32-bit desarrollo Sugar con sugar-jhbuild y Sugar en Ubuntu Linux
Ubuntu 32-bit development Sugar with sugar-jhbuild and Sugar on Ubuntu Linux
32-bit linux desarrollo Sugar con sugar-jhbuild
32-bit linux development Sugar with sugar-jhbuild
64-bit linux desarrollo imágenes de disco XO bajo qemu; o CD-Vivo una vez que sea actualizado (el actual es de abril)
64-bit linux development xo disk images under qemu; or LiveCd once it gets updated (currently it's April)
No creo realmente en la opción developer/liveCD Windows/Mac. No he escuchado a nadie que la esté usando. Y es muy vieja (abril), aunque el usuario Mcfletch dijo (en mayo) que era una opción y por eso se la incluyó. MitchellNCharity 09:19, 23 June 2007 (EDT)
:I don't really believe the development option of Windows/Mac developer/live CD. I've not yet heard of it actually being used. They are months out of date (April). But Mcfletch said (in May) it's an option, so I added it. MitchellNCharity 09:19, 23 June 2007 (EDT)

background

opción
option
actualización
updated
sonido?
sound?
cámara?
camera?
biblioteca?
library?
etoys?
etoys?
R/W?
R/W?
software de desarrollo
development software?
red?
net?
comentarios
comments
Instalando Sugar continuou si si? si? si si las propias si En algunas plataformas, lleva tiempo y espacio (horas y ~3GiB), pero "funciona". En otras, puede ser dificil de instalar.
Installing Sugar continuous yes yes? yes? yes yes your own yes On some platforms, it takes time and space (hours and ~3GB), but "just works". On others, it is quite difficult to install.
CD-Vivo Abril si (boot) si? (qemu) si? (boot) no (qemu) no si no toolchain, Gnome si? Inicio Rápido alternativo. Puede ser usado para bootear como emulado en qemu. Ver abajo Problema A.
LiveCd April yes(boot) yes?(qemu) yes?(boot) no(qemu) no yes no toolchain, Gnome yes? Alternative Quick Start. Can both be booted from, and used in qemu. Problems: A.
imágenes de disco XO:
ÚLTIMA VERSIÓN ESTABLE http://olpc.download.redhat.com/olpc/streams/development/LATEST-STABLE-BUILD/
LATEST-STABLE-BUILD
...development-ext3.img ~mensual si/B no si si si no tras configurar Inicio Rápido para evaluar Sugar
...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 ~mensual si/B no no si si un poco tras configurar
...development-devel_ext3.img ~monthly yes/B no no yes yes a little after config
ÚLTIMA VERSIÓN http://olpc.download.redhat.com/olpc/streams/development/LATEST/
LATEST
...development-ext3.img ~diario si/B no si si si no tras configurar
...development-ext3.img ~daily yes/B no yes yes yes no after config
...development-devel_ext3.img ~diario si/B no no si si un poco tras configurar Bueno para nuevos desarrolladores (requiere un poco de comodidad con la línea de comandos)
...development-devel_ext3.img ~daily yes/B no no yes yes a little after config Good for new developers (requires some command-line comfort).
OTROS
OTHER
FC6+Sugar abril si? ? ? no si Todas las herramientas de Fedora si 6 GiB (versión de abril; sin Etoys)
FC6+Sugar April yes? ? ? no yes Full Fedora Softare Dev. yes 6GB (April version: no etoys)
Clave
biblioteca: Una biblioteca de muestra de el contenido incluido. ej: textos para ver en el navegador sin necesidad de una conexión de red.
R/W (grabable): Con un .img se pueden guardar cosas entre sesiones. Con un .iso el ambiente es el mismo con cada inicio.
herramientas de desarrollo: tiene herramientas de desarrollo incluidas?
Red: la red simplemente funciona? O requiere de algún paso previo?

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?
Problemas
A: el CD-Vivo (de abril) entra en pánico cuando se corre bajo kqemu en Fedora Core 6 x86_64. Un problema con squashfs.
B: TamTam no emite sonidos (aún si Etoys puede). Causa desconocida.

Notas:

  • acaso sugar-jhbuild soporta la cámara/micrófono?
    • Si, si la cámara usa v4l2 y 640x480. (Alguien puede confirmarlo fehacientemente? IRC?)

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?

NEW XAVA

XO-QEMU boot broken - current workarounds

Build 445 was the last version which booted cleanly under qemu (ticket).

More recent builds require workarounds. Build 485 resolved one problem.

  • When booting on qemu, add root=/dev/hda to the grub kernel line. This needs to be done every time.
    1. When you start your xo disk image on qemu, you should see a blue grub screen, doing a "Booting .. in N seconds" countdown. Press space to interrupt it.
    2. Press e (edit). This will show you 3 lines.
    3. Move to the second, which begins "kernel". Press e. This will take you to the end of the kernel line.
    4. Add root=/dev/hda1 Then press enter.
    5. Press b to continue booting.
(This workaround avoids "WARNING: Cannot find root file system!", and being dropped into an emergency shell.)

Should add instructions to modify the image's grub config, so this doesn't need to be done every time you boot. MitchellNCharity 12:04, 3 July 2007 (EDT)

It might be worth gathering the currently scattered notes, into a single list of step by step instructions, for getting from nothing, to a pair of qemu images running with Xephyr's and ssh. MitchellNCharity 12:04, 3 July 2007 (EDT)

Example step-by-step instructions

Here, in one place, are assembled all the steps to get you to a working emulated XO. Assuming you are running on linux, and have already installed qemu and kqemu.

The following will not work on your virtual xo: sound, camera. The first because I haven't gotten around to figuring out why it isn't working. The second because qemu doesn't yet support them.

And when you boot your image a second time, network likely won't work. :( Something for another day. MitchellNCharity 16:49, 4 July 2007 (EDT)

Go to

http://olpc.download.redhat.com/olpc/streams/development/LATEST/devel_ext3/ and obtain the numbered -devel_ext3.img.bz2 and its md5. For this example I used build 485. Though the network doesn't seem to work in 485. 482 works, but you have to work around a boot failure. [3]

md5sum -c olpc-redhat-stream-development-build-485-20070703_0249-devel_ext3.img.bz2.md5

bzcat olpc-redhat-stream-development-build-485-20070703_0249-devel_ext3.img.bz2 > xo-485a.img

The resulting file is 1 GB.

export PORT=2221
qemu-system-x86_64  -soundhw es1370 -serial `tty` -kernel-kqemu -redir tcp:$PORT::22 -hda xo-485a.img
Unless you have a x86_64 cpu, use qemu instead of qemu-system-x86_64.
The screen will very briefly be black, and then show the blue "GNU

GRUB" screen. If it stays black, that's a qemu bug. Kill qemu and try again.

0. Press any key to interrupt the countdown to boot. Then,

  1. Press e.
  2. Press down-arrow to get the "kernel" line.
  3. Press e. This takes you to the end of the kernel command line.
  4. Type space and root=/dev/hda1
  5. Press Enter.
  6. Press b.
The boot messages will scroll by, and you should eventually see the normal XO first-time login. We'll save that for later.
In the window where you started qemu, you should now see a login: prompt.
  1. Enter root
  2. Then:
/etc/rc5.d/S98NetworkManager stop
mv /etc/rc3.d/S98NetworkManager /etc/rc3.d/DISABLED-S98NetworkManager
mv /etc/rc5.d/S98NetworkManager /etc/rc5.d/DISABLED-S98NetworkManager
echo ifup eth0 >> /etc/rc.local

mv /boot/grub/grub.conf /boot/grub/grub.conf.orig
awk '/kernel/ {print $O,"root=/dev/hda1";next} {print}' < /boot/grub/grub.conf.orig > /boot/grub/grub.conf
grub-install hd0

If grub-install hangs, just kill it. It may even have worked anyway.

ifup eth0 
killall X

Killing X should restart sugar.

If you want to enter a name with diacritics, you need to wait for X to restart, and then do:

su olpc -c"DISPLAY=:0 xmodmap -e 'keycode  77 = Multi_key'"

This sets up Num_lock as Multi_key. Unfortunately, the next time X is

restarted, you will lose it. A better solution is needed.

At this point you could just proceed to use your new XO. However, the screen resolution is wrong (1024x768). So for development, or to get a more accurate feel for how things really look, some extra steps are required.

Once you reach the main sugar screen, you should check the Neighborhood view (F1). If you can't see other people, either the we are having problems with the presence server, you are behind an unusually picky firewall, or networking on qemu is broken again in the build number you are using. (Remember that ping doesn't work inside of qemu).

While this next step is not strictly required, it will enable you to use ssh and scp, which can be handy to move stuff back and forth between your host and xo.

Still as root on the xo,

1. Change the root password.

passwd

Don't worry if it says something like "BAD PASSWORD: ", and complains about the password you picked. It will still work.

2. Change the olpc password.

passwd olpc

Now you can use ssh and scp.


The current released version of QEMU doesn't support 1200x900, so we use a Xephyr remote X server. Each time you boot the xo, if you want 1200x900, you'll need to do these next steps again, except for the ones marked "(First time only)".

1. Still as root on the xo:

init 3
sleep 5
ifup eth0

su olpc
grep export /usr/bin/sugar > ~/env
source ~/env

If the ifup eth0 fails with an "already running" message, that's ok. Perhaps it is no longer needed.

xauth -f xephyr-xauth
echo $COOKIE

3. On the xo, still as "su olpc", record the cookie: (First time only)

echo "add 10.0.2.2:1 . " PUT-THE-COOKIE-HERE

4. Back on the host, start a Xephyr:

Xephyr :1 -auth xephyr-xauth -reset -screen 1200x900x16 -dpi 200

You will probably want to do this in its own window, as it periodically dies and needs to be restarted.

{{{1}}}
Actually, I usually ssh in from the host, and run sugar that way:

a. On the host,

ssh -o NoHostAuthenticationForLocalhost=yes -p 2222 olpc@localhost

b. in the resulting shell,

source ~/env
export DISPLAY=10.0.2.2:1
sugar

You may also want to run

xmodmap -e 'keycode  77 = Multi_key'

to be able to enter diacritics with the Num_lock key. But I find doing it first thing tends to kill Xephyr. :(

You should now see the XO first-login screen in correct resolution. You can use Num_lock to enter diacritics. Congratulations. Sorry it

was so much bother.


To run multiple xo's (to play with collaboration, for instance), you

can repeat the above steps. Create a xo-485b.img, and use a different PORT number (like 2222). If you are using Xephyr, start a second Xephyr, which will be 10.0.2.2:2, use that instead of ...:1 in the instructions. You should now be able to see yourself, and collaborate in Write.

The following will save you having to periodically type your xo password, but is optional, and can just as easily be done later.

Back on the host,

1. Create an ssh key if you don't already have one. See /Help_and_tips#SSH into qemu, using a key.

2. Copy it to the xo,

scp -o NoHostAuthenticationForLocalhost=yes -P $PORT ~/.ssh/id_rsa.pub root@localhost:~/

3. On the xo, spread the key around:

mkdir ~root/.ssh
mkdir ~olpc/.ssh
cat id_rsa.pub >> ~root/.ssh/authorized_keys
cat id_rsa.pub >> ~olpc/.ssh/authorized_keys
You can now ssh and scp without retyping your password.