Changes

no edit summary
Line 1: Line 1: −
<noinclude>{{ GoogleTrans-en | es =show | bg =show | zh-CN =show | zh-TW =show | hr =show | cs =show | da =show | nl =show | fi =show | fr =show | de =show | el =show | hi =show | it =show | ja =show | ko =show | no =show | pl =show | pt =show | ro =show | ru =show | sv =show }}</noinclude>
+
<noinclude></noinclude>
 
{{Developers}}
 
{{Developers}}
[[Developers|Previous]] [[Developers/Stack|Next]]
      
[[Image:Sugar.png|right|thumb|Sugar GUI Shell (Our Goal)]]
 
[[Image:Sugar.png|right|thumb|Sugar GUI Shell (Our Goal)]]
Line 13: Line 12:  
* what type of development work you are interested in doing
 
* what type of development work you are interested in doing
   −
=Recommended Environments=
+
==Recommended Environments==
    
For Activity Developers:
 
For Activity Developers:
   −
* if possible, use an [[Community/Distributions/Ubuntu]]
+
* if possible, use an [[Fedora]]
 
* 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 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)
   Line 24: Line 23:  
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.
 
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 ==
    
There are a number of tools which allow you to run an image of one operating system in a window on another system.  If you have the hardware and want to get started as fast as possible, choosing an emulated approach is probably for you.
 
There are a number of tools which allow you to run an image of one operating system in a window on another system.  If you have the hardware and want to get started as fast as possible, choosing an emulated approach is probably for you.
Line 32: Line 31:  
Emulation is also a 90% thing, that is, it normally gets about 90% of the emulation correct, but things such as peripherals, sound, cameras, keyboards and the like can be "slightly off" in an emulated environment.  You should always keep this in mind when working with a emulator.
 
Emulation is also a 90% thing, that is, it normally gets about 90% of the emulation correct, but things such as peripherals, sound, cameras, keyboards and the like can be "slightly off" in an emulated environment.  You should always keep this in mind when working with a emulator.
   −
== Emulation Packages/Products ==
+
=== Emulation Packages/Products ===
    
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:
Line 60: Line 59:  
* [[OLPC: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 ===
   −
Want to just see what Sugar is like?  Want to play with the activities and kick the tires?  Downloading a Qemu or VMWare/VirtualBox image and running it is normally a matter of a half hour or so.
+
Want to just see what Sugar is like?  Want to play with the activities and kick the tires?  Downloading a Qemu or VMware/VirtualBox image and running it is normally a matter of a half hour or so.
   −
== Emulation for Development ==
+
=== Emulation for Development ===
    
It is possible to code software on an OLPC-XO running Sugar.  One of our long-term goals is to make this an easy and straightforward process. The "Gear" key on the keyboard of the OLPC-XO will eventually hook up to an [[Develop|IDE]] activity for altering and creating new code.  That IDE is not yet finished, however.
 
It is possible to code software on an OLPC-XO running Sugar.  One of our long-term goals is to make this an easy and straightforward process. The "Gear" key on the keyboard of the OLPC-XO will eventually hook up to an [[Develop|IDE]] activity for altering and creating new code.  That IDE is not yet finished, however.
Line 80: Line 79:  
See [[#Native Sugar]]
 
See [[#Native Sugar]]
   −
=== Emulation for Compilation/Experiments ===
+
==== Emulation for Compilation/Experiments ====
    
One very useful feature of emulation systems is their ability to "snapshot" or "overlay" images.  This feature allows you to leave a base image untouched while performing some messy or dangerous operation.  When you are finished the operation, you can return to the unmodified base image.
 
One very useful feature of emulation systems is their ability to "snapshot" or "overlay" images.  This feature allows you to leave a base image untouched while performing some messy or dangerous operation.  When you are finished the operation, you can return to the unmodified base image.
Line 90: Line 89:  
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.
 
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 ===
    
If you are [[#Cross Coding]] or using a [[#Native Sugar]] environment, you will often want to use an emulated official image for testing.  This is often far more convenient than loading the image onto a real XO and doesn't require hardware you might not have.
 
If you are [[#Cross Coding]] or using a [[#Native Sugar]] environment, you will often want to use an emulated official image for testing.  This is often far more convenient than loading the image onto a real XO and doesn't require hardware you might not have.
Line 100: Line 99:  
It should be noted that emulators often have difficulties with sound support and graphics resolutions.  They also can wind up being much faster or slower than the target hardware.  See [[Development Team/FAQ|the Developer's FAQ]] below for some pointers on how to simulate the special hardware.  Testing in emulation is valuable, but ''eventually'' the software needs to be tested on real hardware.
 
It should be noted that emulators often have difficulties with sound support and graphics resolutions.  They also can wind up being much faster or slower than the target hardware.  See [[Development Team/FAQ|the Developer's FAQ]] below for some pointers on how to simulate the special hardware.  Testing in emulation is valuable, but ''eventually'' the software needs to be tested on real hardware.
   −
== 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 [[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>
 
<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>
Line 119: Line 118:  
* [[#Configuration and Usage]] -- instructions on how to setup and use Sugar once you have it installed
 
* [[#Configuration and Usage]] -- instructions on how to setup and use Sugar once you have it installed
   −
= Native Sugar =
+
== Native Sugar ==
    
If you are running a modern Linux Operating System (whether as your primary OS, as a Live CD, via dual-booting, or potentially even via emulation), it is quite possible that you can run Sugar directly on your Linux machine with its current OS.
 
If you are running a modern Linux Operating System (whether as your primary OS, as a Live CD, via dual-booting, or potentially even via emulation), it is quite possible that you can run Sugar directly on your Linux machine with its current OS.
Line 137: Line 136:  
In most other cases, you want to run Sugar in a virtual X session.  This allows you to have multiple Sugar desktops running and visible simultaneously to test networking and the like.  The virtual X sessions can be quickly shut down and restarted without needing to log out and back in again.  Most core developers are using this type of setup using sugar-jhbuild.
 
In most other cases, you want to run Sugar in a virtual X session.  This allows you to have multiple Sugar desktops running and visible simultaneously to test networking and the like.  The virtual X sessions can be quickly shut down and restarted without needing to log out and back in again.  Most core developers are using this type of setup using sugar-jhbuild.
   −
== sugar-jhbuild ==
+
=== sugar-jhbuild ===
    
This is what the core development team uses and is one of the most pleasant ways to work (once set up). Compared with using an Emulated XO, installing sugar takes more time and space to set up, and can be difficult to maintain, but results in a more flexible environment.
 
This is what the core development team uses and is one of the most pleasant ways to work (once set up). Compared with using an Emulated XO, installing sugar takes more time and space to set up, and can be difficult to maintain, but results in a more flexible environment.
Line 153: Line 152:  
* [[#Configuration and Usage]] -- instructions on how to setup and use Sugar once you have it installed
 
* [[#Configuration and Usage]] -- instructions on how to setup and use Sugar once you have it installed
   −
== Native Sugar Packages on Linux ==
+
=== Native Sugar Packages on Linux ===
    
As Sugar stabilizes and is ported to more distributions, it should be possible to use your Linux distribution's package management system to install Sugar.  Distributions with ports so far:
 
As Sugar stabilizes and is ported to more distributions, it should be possible to use your Linux distribution's package management system to install Sugar.  Distributions with ports so far:
Line 167: Line 166:  
* [[#Configuration and Usage]] -- instructions on how to setup and use Sugar once you have it installed
 
* [[#Configuration and Usage]] -- instructions on how to setup and use Sugar once you have it installed
   −
== 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 [[OLPC:Contributors 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.
Line 180: Line 179:  
* [http://laptop.org/start Getting Started] -- guide to using a new OLPC-XO Laptop
 
* [http://laptop.org/start Getting Started] -- guide to using a new OLPC-XO Laptop
   −
=== Almost an OLPC ===
+
==== Almost an OLPC XO====
   −
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 XO" 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: [[OLPC:Development Systems]]
 
See: [[OLPC:Development Systems]]
Line 192: Line 191:  
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.
   −
= Cross Coding =
+
== Cross Coding ==
    
If you can neither run an emulated machine nor run Sugar natively, it is still possible that you may be able to develop for the platform by developing your code on one machine and then porting it to the platform when you are finished.
 
If you can neither run an emulated machine nor run Sugar natively, it is still possible that you may be able to develop for the platform by developing your code on one machine and then porting it to the platform when you are finished.
Line 205: Line 204:  
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.
   −
= Configuration and Usage =
+
== Configuration and Usage ==
    
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:
Line 217: Line 216:  
* General Linux packages can be downloaded and installed using Yum (note, these changes will be wiped out on the next OS upgrade)
 
* General Linux packages can be downloaded and installed using Yum (note, these changes will be wiped out on the next OS upgrade)
   −
== Jabber Servers ==
+
=== Jabber Servers ===
    
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.
Line 227: Line 226:  
and then restart the X server, either restart the machine or use ctrl-alt-backspace (erase), but do '''not''' do ctrl-alt-backspace on an emulator, or you will kill your entire GUI session!
 
and then restart the X server, either restart the machine or use ctrl-alt-backspace (erase), but do '''not''' do ctrl-alt-backspace on an emulator, or you will kill your entire GUI session!
   −
== SSH Access ==
+
=== SSH Access ===
    
You will often want to be able to use file-transfer and remote-login operations to access your Sugar environment.  We recommend using ssh-based access for working with your Sugar environment remotely.
 
You will often want to be able to use file-transfer and remote-login operations to access your Sugar environment.  We recommend using ssh-based access for working with your Sugar environment remotely.
Line 238: Line 237:  
** ??? SFTP user's guide and tools
 
** ??? SFTP user's guide and tools
   −
=== Password Based ===
+
==== Password Based ====
    
Password-based SSH authentication is convenient and simple to set up.
 
Password-based SSH authentication is convenient and simple to set up.
Line 255: Line 254:  
  passwd
 
  passwd
   −
=== SSH Key Based ===
+
==== SSH Key Based ====
    
SSH Key based authentication provides strong public-key encrypted access control for your Sugar environment, but takes a bit more work than SSH Password base authentication.
 
SSH Key based authentication provides strong public-key encrypted access control for your Sugar environment, but takes a bit more work than SSH Password base authentication.
Line 280: Line 279:  
See: [[OLPC: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 ==
    
* [[OLPC:Compiling C/C++ program for the OLPC]]
 
* [[OLPC:Compiling C/C++ program for the OLPC]]