Changes

Jump to navigation Jump to search
no edit summary
Line 18: Line 18:     
* if possible, use an [[Community/Distributions/Ubuntu]]
 
* if possible, use an [[Community/Distributions/Ubuntu]]
* if you are using MS Win32 and do not want to dual-boot to Linux, use the [[Emulating_the_XO/Quick_Start/Windows#Really_Quick_Start|QEMU Quicker Start package for Win32]] (~5 minute setup on XP, ~10 minutes on Vista)
+
* if you are using MS Win32 and do not want to dual-boot to Linux, use the [[OLPC:Emulating_the_XO/Quick_Start/Windows#Really_Quick_Start|QEMU Quicker Start package for Win32]] (~5 minute setup on XP, ~10 minutes on Vista)
    
'''If you can use either of those environments''', you can skip down to the [[#Configuration and Usage|Configuration and Usage]] section once you've completed the installation.
 
'''If you can use either of those environments''', you can skip down to the [[#Configuration and Usage|Configuration and Usage]] section once you've completed the installation.
   −
If you can neither run an emulated machine or run Sugar natively, it is still possible that you may be able to develop for the platform by [[#Cross Coding|Cross Coding]].  Even if this isn't possible, you could consider working on one of the [[Software components|software components]] we use.
+
If you can neither run an emulated machine or run Sugar natively, it is still possible that you may be able to develop for the platform by [[#Cross Coding|Cross Coding]].  Even if this isn't possible, you could consider working on one of the [[OLPC:Software components|software components]] we use.
    
= About Emulation =
 
= About Emulation =
Line 36: Line 36:  
Emulation is a hot topic these days, there are lots of emulation systems available, some no-cost, some Open Source, some commercial.  We cannot hope to support all of these systems, so we have focused our efforts on small subset of systems:
 
Emulation is a hot topic these days, there are lots of emulation systems available, some no-cost, some Open Source, some commercial.  We cannot hope to support all of these systems, so we have focused our efforts on small subset of systems:
   −
* [[Qemu]] (with the KQemu Accelerator)
+
* [[OLPC:QEMU]] (with the KQemu Accelerator)
 
** Our best-supported emulation system
 
** Our best-supported emulation system
 
** With the KQemu package provides reasonably fast emulation
 
** With the KQemu package provides reasonably fast emulation
Line 44: Line 44:  
** Command-line interface on Windows, Linux and Mac, GUI available for Windows and Mac
 
** Command-line interface on Windows, Linux and Mac, GUI available for Windows and Mac
 
** Works directly with offical builds
 
** Works directly with offical builds
* [[VMWare]] / [[VirtualBox]]
+
* [[OLPC:VMware]] / [[OLPC:VirtualBox]]
 
** Commercial emulation packages with no-cost "players" for images
 
** Commercial emulation packages with no-cost "players" for images
 
** Somewhat easier setup than Qemu, particularly for advanced networking on Linux hosts
 
** Somewhat easier setup than Qemu, particularly for advanced networking on Linux hosts
 
** Require converted images, which are not always kept up-to-the-minute and do not include experimental/testing builds
 
** Require converted images, which are not always kept up-to-the-minute and do not include experimental/testing builds
 
** Beta version of VMWare (Fusion) available for Mac OS X
 
** Beta version of VMWare (Fusion) available for Mac OS X
* [[Emulating the XO/Parallels|Parallels Desktop]]
+
* [[OLPC:Emulating the XO/Parallels|Parallels Desktop]]
 
** Commercial emulation package
 
** Commercial emulation package
 
** Extremely difficult setup
 
** Extremely difficult setup
Line 58: Line 58:  
See Also:
 
See Also:
   −
* [[Emulating the XO]] -- has a handy chart outlining which system has been reported to work with which type of emulation task
+
* [[OLPC:Emulating the XO]] -- has a handy chart outlining which system has been reported to work with which type of emulation task
    
== Emulation for Exploration ==
 
== Emulation for Exploration ==
Line 70: Line 70:  
''Official Images''
 
''Official Images''
   −
The only "normal" code editing environments present on the OLPC-XO are all command-line environments available through the [[Terminal]] activity.  Official Sugar images include both the vim and nano editors, so users who know these editors can use them to write and modify software within the images.
+
The only "normal" code editing environments present on the OLPC-XO are all command-line environments available through the [[OLPC:Terminal]] activity.  Official Sugar images include both the vim and nano editors, so users who know these editors can use them to write and modify software within the images.
   −
Developers wishing to use the [[Developers/Stack#Etoys|Etoys]] application stack can create new software from Etoys built-in development environment while running on an emulator.
+
Developers wishing to use the [[OLPC:Developers/Stack#Etoys|Etoys]] application stack can create new software from Etoys built-in development environment while running on an emulator.
    
''Developer's Desktops''
 
''Developer's Desktops''
Line 88: Line 88:  
If you want to support a piece of hardware that requires a kernel module, you can mount a Qemu copy-on-write or VMWare snapshot into which you install the whole kernel-compilation toolset (likely getting quite close to filling up the whole storage).
 
If you want to support a piece of hardware that requires a kernel module, you can mount a Qemu copy-on-write or VMWare snapshot into which you install the whole kernel-compilation toolset (likely getting quite close to filling up the whole storage).
   −
You can then [[Kernel Building|compile the kernel]] and then the missing driver.  When you are finished, you copy the driver to the host machine and can install the compiled driver into the base image.
+
You can then [[OLPC:Kernel Building|compile the kernel]] and then the missing driver.  When you are finished, you copy the driver to the host machine and can install the compiled driver into the base image.
    
== Emulation for Testing ==
 
== Emulation for Testing ==
Line 102: Line 102:  
== Getting Started (Emulation) ==
 
== Getting Started (Emulation) ==
   −
<div style="border: solid black thin">For a detailed exploration of emulation issues with a focus on using the official images, see [[Emulating the XO]], which includes setup and configuration issues, tips and hints, and a grid of known-working approaches to emulating an OLPC-XO laptop.</div>
+
<div style="border: solid black thin">For a detailed exploration of emulation issues with a focus on using the official images, see [[OLPC:Emulating the XO]], which includes setup and configuration issues, tips and hints, and a grid of known-working approaches to emulating an OLPC-XO laptop.</div>
    
You will need to install one of the emulation systems and download an image:
 
You will need to install one of the emulation systems and download an image:
   −
* [[Qemu]] + KQemu (recommended where possible)
+
* [[OLPC:QEMU]] + KQemu (recommended where possible)
 
** [http://xs-dev.laptop.org/~cscott/olpc/streams/ship.2 Ship.2] -- patch releases for Official Releases
 
** [http://xs-dev.laptop.org/~cscott/olpc/streams/ship.2 Ship.2] -- patch releases for Official Releases
 
** [http://xs-dev.laptop.org/~cscott/olpc/streams/joyride Joyride] -- Bleeding Edge/Development Releases
 
** [http://xs-dev.laptop.org/~cscott/olpc/streams/joyride Joyride] -- Bleeding Edge/Development Releases
 
** [http://pilgrim.laptop.org/~pilgrim/olpc/streams/update.1 Update.1] -- release candidates for the Update.1 refresh
 
** [http://pilgrim.laptop.org/~pilgrim/olpc/streams/update.1 Update.1] -- release candidates for the Update.1 refresh
* [[VMWare]], [[VirtualBox]] (good secondary choices, particularly if you already have one installed)
+
* [[OLPC:VMware]], [[OLPC:VirtualBox]] (good secondary choices, particularly if you already have one installed)
 
** [http://dev.laptop.org/pub/virtualbox/ All Builds] -- collection of all the pre-converted images (the same images work on either system)
 
** [http://dev.laptop.org/pub/virtualbox/ All Builds] -- collection of all the pre-converted images (the same images work on either system)
   −
More complete descriptions of the various [[OS images#Build names and branches|Image Types]] are available.  Follow the specific instructions on the emulation-system-specific pages linked to above to get started.
+
More complete descriptions of the various [[OLPC:OS images#Build names and branches|Image Types]] are available.  Follow the specific instructions on the emulation-system-specific pages linked to above to get started.
    
See Also:
 
See Also:
Line 145: Line 145:  
Currently sugar-jhbuild requires about 2.5 hours to complete building on a modern workstation (AMD4800+).
 
Currently sugar-jhbuild requires about 2.5 hours to complete building on a modern workstation (AMD4800+).
   −
You can [[Emulated Sugar-jhbuild|run sugar-jhbuild under emulation]].  This has the advantage of working on a wider range of Linux hosts (as well as Windows or Mac OS-X), and does not "pollute" your host machine with Sugar libraries.  It requires a lot of disk space and processing power, however.
+
You can [[OLPC:Emulated Sugar-jhbuild|run sugar-jhbuild under emulation]].  This has the advantage of working on a wider range of Linux hosts (as well as Windows or Mac OS-X), and does not "pollute" your host machine with Sugar libraries.  It requires a lot of disk space and processing power, however.
    
See [[Development Team/Jhbuild]] to get started.
 
See [[Development Team/Jhbuild]] to get started.
Line 169: Line 169:  
== A Real OLPC-XO Laptop ==
 
== A Real OLPC-XO Laptop ==
   −
Hardware Developer's Program - while there are only a small number of test units available for free, developers can [[Developers_Program|submit proposals]] to receive one of those units for testing and development.
+
Hardware Developer's Program - while there are only a small number of test units available for free, developers can [[OLPC:Contributors program|submit proposals]] to receive one of those units for testing and development.
    
A large number of units were distributed in the Give 1 Get 1 program throughout the US or Canada.  If you have sufficient funds, you can acquire a production-run machine from a secondary market such as EBay.
 
A large number of units were distributed in the Give 1 Get 1 program throughout the US or Canada.  If you have sufficient funds, you can acquire a production-run machine from a secondary market such as EBay.
   −
If you would like to run a non-official (i.e. experimental, unstable) build on a Mass-Production/G1G1 machine you will need to acquire a [[Activation and Developer Keys|developer key]] to allow your (locked) laptop to load the unsigned image.  You probably ''do not'' need to run an experimental image for most activity development purposes.
+
If you would like to run a non-official (i.e. experimental, unstable) build on a Mass-Production/G1G1 machine you will need to acquire a [[OLPC:Activation and developer keys|developer key]] to allow your (locked) laptop to load the unsigned image.  You probably ''do not'' need to run an experimental image for most activity development purposes.
    
See Also:
 
See Also:
Line 184: Line 184:  
The introduction of the OLPC-XO has ignited the low-cost computer market.  There are a large number of low-cost machines with approximately the same performance level as an OLPC-XO.  As of right now, we don't have any reason to recommend that you should buy one of these "almost an OLPC" machines, while they may be superficially similar to an XO, they are not likely to be any closer than an emulated XO running an official image.
 
The introduction of the OLPC-XO has ignited the low-cost computer market.  There are a large number of low-cost machines with approximately the same performance level as an OLPC-XO.  As of right now, we don't have any reason to recommend that you should buy one of these "almost an OLPC" machines, while they may be superficially similar to an XO, they are not likely to be any closer than an emulated XO running an official image.
   −
See: [[Development Systems]]
+
See: [[OLPC:Development Systems]]
    
== Live CDs ==
 
== Live CDs ==
   −
There are currently a number of projects underway to produce various types of [[LiveCD]].  LiveCDs are not a "normal" part of the development process, normally being used for lightweight deployments, experimentation, testing, and potentially installation onto a dedicated machine to create a workstation.
+
There are currently a number of projects underway to produce various types of [[OLPC:LiveCD]].  LiveCDs are not a "normal" part of the development process, normally being used for lightweight deployments, experimentation, testing, and potentially installation onto a dedicated machine to create a workstation.
    
See [[#Emulation for Development]] for considerations regarding installing LiveCD's based on official images for development.
 
See [[#Emulation for Development]] for considerations regarding installing LiveCD's based on official images for development.
Line 198: Line 198:  
Cross coding generally works best when you are working in a relatively constrained and abstracted environment.  Of the stacks available on the Sugar platform, the following are well suited to Cross Coding activities:
 
Cross coding generally works best when you are working in a relatively constrained and abstracted environment.  Of the stacks available on the Sugar platform, the following are well suited to Cross Coding activities:
   −
* [[Developers/Stack#Browser|Browser]] -- Mozilla/Firefox-derived web browser
+
* [[OLPC:Developers/Stack#Browser|Browser]] -- Mozilla/Firefox-derived web browser
* [[Developers/Stack#Etoys|Etoys]] -- Squeak/Smalltalk multimedia environment
+
* [[OLPC:Developers/Stack#Etoys|Etoys]] -- Squeak/Smalltalk multimedia environment
* [[Developers/Stack#OLPCGames|Pygame]] -- raster-graphics game development framework
+
* [[OLPC:Developers/Stack#OLPCGames|Pygame]] -- raster-graphics game development framework
* [[Developers/Stack#Flash|Flash]] -- Gnash or Adobe-Flash engine
+
* [[OLPC:Developers/Stack#Flash|Flash]] -- Gnash or Adobe-Flash engine
    
You may be able to install just the software involved in that stack in order to test and develop your game.  You can then have a development partner do porting and testing to a Sugar environment.
 
You may be able to install just the software involved in that stack in order to test and develop your game.  You can then have a development partner do porting and testing to a Sugar environment.
Line 209: Line 209:  
Now that you have either a native or emulated Sugar environment, you are likely wondering how to use and configure it for your needs:
 
Now that you have either a native or emulated Sugar environment, you are likely wondering how to use and configure it for your needs:
   −
* [[Sugar Instructions]] -- how to get around inside Sugar (i.e. how to use it)
+
* [[OLPC:Sugar Instructions]] -- how to get around inside Sugar (i.e. how to use it)
* [[Support]] -- how to get help with running Sugar (on an OLPC-XO)
+
* [[OLPC:Support]] -- how to get help with running Sugar (on an OLPC-XO)
    
You can install new software in your Sugar environment in a couple of ways.
 
You can install new software in your Sugar environment in a couple of ways.
Line 221: Line 221:  
By default your image may have been configured to connect to either an inaccessible or a non-existent Jabber server.  You can see this by zooming out to the network view (Alt-F1 in an emulator).  If there are no other XO icons in the view you are likely not connecting to a server.
 
By default your image may have been configured to connect to either an inaccessible or a non-existent Jabber server.  You can see this by zooming out to the network view (Alt-F1 in an emulator).  If there are no other XO icons in the view you are likely not connecting to a server.
   −
At the moment (2007-12-17) we are in the middle of rebuilding the Jabber servers to support the much larger loads seen during deployment.  Ask on the #olpc IRC channel which Jabber server you should use, then open a [[Terminal]] activity and use the following command:
+
At the moment (2007-12-17) we are in the middle of rebuilding the Jabber servers to support the much larger loads seen during deployment.  Ask on the #olpc IRC channel which Jabber server you should use, then open a [[OLPC:Terminal]] activity and use the following command:
    
  sugar-control-panel -s jabber jabber.server.url
 
  sugar-control-panel -s jabber jabber.server.url
Line 242: Line 242:  
Password-based SSH authentication is convenient and simple to set up, but it is far easier to crack than key-based access.  Consider using key-based authentication unless you are absolutely sure that no-one can reach your Sugar environment from untrusted networks (and maybe even then).
 
Password-based SSH authentication is convenient and simple to set up, but it is far easier to crack than key-based access.  Consider using key-based authentication unless you are absolutely sure that no-one can reach your Sugar environment from untrusted networks (and maybe even then).
   −
Open a [[Terminal]] activity and run:
+
Open a [[OLPC:Terminal]] activity and run:
    
   passwd
 
   passwd
Line 278: Line 278:  
add your key to your keychain/ssh-agent application and you can now use SSH with just a single sign-on for many concurrent actions.
 
add your key to your keychain/ssh-agent application and you can now use SSH with just a single sign-on for many concurrent actions.
   −
See: [[Emulating the XO/Help_and_tips#SSH into qemu|SSH Into Qemu]] for Qemu-specific notes regarding port forwarding
+
See: [[OLPC:Emulating the XO/Help_and_tips#SSH into qemu|SSH Into Qemu]] for Qemu-specific notes regarding port forwarding
    
= See Also =
 
= See Also =
   −
* [[Compiling C/C++ program for the OLPC]]
+
* [[OLPC:Compiling C/C++ program for the OLPC]]
   −
* [[Building custom images]] -- how to create entirely custom Sugar OS images using Pilgrim
+
* [[OLPC:Building custom images]] -- how to create entirely custom Sugar OS images using Pilgrim
    
[[Developers|Previous]] [[Developers/Stack|Next]]
 
[[Developers|Previous]] [[Developers/Stack|Next]]
    
[[Category:Emulation]]
 
[[Category:Emulation]]

Navigation menu