Contributors program archive: Difference between revisions

From OLPC
Jump to navigation Jump to search
 
(50 intermediate revisions by 17 users not shown)
Line 1: Line 1:
{{OLPC}}
{{OLPC}}
{{Translations}}
{{Translations}}
{{TOCright}}
{{Developers}}
{{cleanup}}
{{deprecated}}
<< [[Developers/Setup#A Real OLPC-XO Laptop|Developer's Setup]]
= OLPC Developers Program =


The '''OLPC Contributors Program'''
Developers can apply to receive an actual laptop under the OLPC Developers Program.
(aka the '''Developer's Program''') provides contributors with access to resources, primarily hardware that OLPC produces such as the XO ([[#XO and hardware access|Development Laptops]]), [[serial adapter]]s and other peripherals, and [[spare parts]].
Sometimes you need to test on actual hardware. But even when you have a laptop, most
development takes place using [[Sugar with sugar-jhbuild|sugar-jhbuild]],
or [[OS images for emulation|emulation]], or other options. See '''[[Getting started programming]]'''.


We also provide [[#Project Hosting|Project Hosting]] facilities to make the process of working on Software/Hardware for the OLPC project easier for external developers. For an introduction to developing for the OLPC platform, and an [[API reference]], see the [[Developers|Developer's Handbook]] and the [[Sugar Almanac]].
Instructions for applying to the developers program can be found [[#How to apply for an XO|here]].


* To apply for ''hardware'', please '''visit [http://projectdb.olpc.at our project database]''' and submit an application.
* Individual [[activities]] and [[library grid|library]] collections can be downloaded.
*: We have weekly meetings to discuss new proposed projects on [[IRC]]; see [[Contributors program/meetings]].
* A source code repository and a bug-tracking system are found [http://dev.laptop.org here].
*: Please note that the overhead for processing and sending out CP hardware is related to the # of distinct addresses/requests, not the # of machines or projects. It you know other people in your region who are requesting XOs, try to '''bundle your requests''' so that hardware for accepted projects can be sent to a single recipient. This will not reduce the chances of any individual project being accepted, and may in fact increase chances.
* If you have many project requests in a small region, consider setting up a local [[#XO pools|XO pool]] and looking after them locally. If you have a request, and are in the region of an existing pool, please first try the regional contacts provided below to get hardware.
* To apply for '' [[#Project Hosting|project hosting]]'' (for a software project), see below.


For help with the above, please see the [[Hardware Release Notes|hardware]], [[Software Release Notes|software]], and [[Library Release Notes|library]] release notes for the appropriate release.

==Introductions and Expectations Setting==
There is a major difference between the OLPC system and a conventional laptop of
approximately five years ago; that is, our base system software is much more capable than it was then. The Linux environment now supports internationalization capability for scripts that were out of our reach then, and much higher quality rendering and, best of all, a much wider range of applications.

This has come somewhat at a cost, however: Moore's "Law" has allowed us to become sloppy, both in memory usage and CPU usage; this tends to force us to make some tough choices to keep the "footprint" of the software acceptable. The OLPC laptop have only 1024 MB of storage (Flash), and probably the most serious limitation, 256 MB of RAM, and a single-core processor. Over the last year or so, the community has become much more sensitive to these issues, and work is well underway toward reigning in this "bloat" and performance work in general. Small is beautiful (and usually faster!).

Our base technology choices have been predicated on the ability of the software to achieve the best overall <i>worldwide</i> "user experience". This drove our choice of GTK+ and Pango (with Cairo as the graphical underpinnings), since Pango's abilities in complex scripts are currently most advanced of free software technologies. Other toolkits can be used: but they come at a cost in memory and flash footprint, and today, in the ability of software based on them to be localized to many of the scripts we face immediately, which include both Thai and Arabic. Including other toolkits as a standard part of our base system is therefore problematic, and experience on embedded systems show that including multiple toolkits would almost certainly cause the overall experience to suffer.

== Test Systems ==

We have had the multiple builds of the OLPC laptops:
#ATest, which was the motherboard with no display or mechanicals;
#BTest-1, which was the first laptop to incorporate the display and industrial design (ID), but used an FPGA instead of an ASIC for CAFE;
#BTest-2-1, which only had 128 MB of DRAM;
#BTest2-2, which had 256 MB of DRAM;
#BTest-3, the first build to use the Geode LX;
#BTest-4, which includes a number of minor ID and electrical improvements; and
#CTest-1, which includes final tooling -- the preproduction run.

(See the [[Hardware_specification#Laptop_Development_Schedule|Laptop Development Schedule]] for a more detailed description of the various development systems.)

BTest-1 was a beta test for the electronics, and an alpha test for the display, touch pad, industrial design, and keyboard; it was distributed earlier in the development cycle than is typical and is correspondingly rougher.

The BTest-2 hardware was continuing beta test for the electronics, of the display (a diffuser improving it further) and touch pad. The industrial design was only somewhat improved from BTest-1; most of the learning from BTest-1 on mechanical improvements could not be incorporated in time for BTest-2; BTest-3 and BTest-4 are significantly more rugged than BTest-1 or BTest-2; these machines include the Geode LX and numerous improvements to the keybaord, touchpad, mechanicals, battery and power subsystems.

Machine are being allocated to developers for software testing and to children in launch countries (the latter not come under this program); the focus here is on individual free and open-source developers or research organizations interested in contributing to furthering the goals of OLPC.

==Expectations of Developers==

===Read the Release Notes!===

The BTest-4 build completed in late June, and distribution of these improved systems has begun, and the [[BTest-4 Release Notes]] describes the new Geode LX based systems. (Only a relatively few BTest-3 systems were built and are from the point of view of developers identical to BTest-4.)
The [[BTest-2 Release Notes]] describes the state of the second build of machines. The BTest-1 build has been distributed: the [[BTest-1 Release Notes]] describes the state of the first build of machines.

The software will run on BTest machines; please read the [[OLPC Trial-2 Software Release Notes]] and [[OLPC Software Release Notes]] for older software.

===Bug Reporting===
Note that our process is a fully open one: in a "conventional" beta test program for a product, you would have been asked to sign a non-disclosure agreement, and not disclose any of the problems you might have, or even be aware of problems other beta testers might be having. In our case, you are encouraged to enter problems you may find into our bug tracking system. Usually, hardware beta test is done later in the program after more extensive testing was done for BTest-2.

The early beta test hardware represented by BTest-2 systems meant a much higher probability of hardware problems than later beta test or production hardware. The design is undergoing stress testing at elevated temperature, cold, vibration, shock, and humidity as well as many other tests. BTest-3 and later systems are equivalent to what one might find in a conventional beta test.

Components that are fine on paper, may not work well in practice, either by defects in the design of the components or in their use. Beta testing is also used to test different manufacturer's components. Whenever possible in high volume products, components are "multiple-sourced", and the same nominal kind of part from different manufacturers tested for compatibility. This is to ensure steady supply, even if a particular manufacturer later starts having manufacturing problems, alternatives will be available. Examples in our hardware include camera supplier, RAM supplier, PCB supplier, to name just a few. On the ATest boards, for example, we discovered several components that we do not want to use in production, and we can expect similar issues during BTest. A component's design may be new, and have its own design or manufacturing problems to be resolved (e.g. the writing pad problem we note below). Errors can be made in assembly. Errors can be made in design or component selection. A particular lot of components may be defective. The purpose of beta test, particularly for a high volume product, is to discover these problems, long before volume production, analyze the failures completely, and, by understanding the root cause of each failure, be able to eliminate or prevent these problems in the production units. If you have a hardware problem, OLPC may ask you to return the machine quickly for failure analysis; we will do our best to get you a replacement promptly.

We expect that you will quickly enter new hardware and software problems you encounter into our [http://dev.laptop.org/ bug tracking system], so that the problems can be tracked and resolved. Please include the firmware version you are using -- displayed at power on time on the second line: e.g. "OpenFirmware CL1 QA62 Q2A"; the QA62 is the firmware version--the operating system build number--which is displayed at the end of the boot process--and the serial number of your machine--found under the battery; this will help us analyze your problem and resolve it.

While duplicate bug entries are inevitable, searching to see if the problem has already been reported will be very helpful to us. Problems cannot be fixed if we don't know what you encounter, or how often they are encountered; if you find clearly the same problem as some one else, it is still helpful to know how often it is occurring, or any additional details you know. Add such information to the bug reports. Err by too much reporting, rather than too little. A pattern may emerge among the reports or comments on a bug, or we may have a much better idea how severe a problem is and be able to better prioritize its resolution. <i>Bugs are good.</i> Each bug is much easier to fix now than later.

=Hardware=

==User's guide to the hardware==

[[Image:ebookdrawing75c.png|thumb|right|EBook Configuration]]

[[Image:drawing75c.jpg|Labeled XO Picture|right|XO Laptop Configuration with Labeling of Features]]

[[Image:bottomdrawing.jpg|thumb|right|Bottom View]]

You are using a system during test, well before when you would have the opportunity to use a "normal" commercial product. This is to allow both hardware and software testing to start, since our system is significantly different than <i>conventional</i> laptops (e.g. the screen, power management, ruggedness), and will be used in very different environments. You will see "behind the curtain" (and be part of) the process that computer system manufacturers hide from you: the good, the bad, and the ugly process of hardware and software debug.

The picture on the right locates most of the features of the machine. To open the machine you must first unlatch the antennae and then lift it open.

To rotate the screen to transform to ebook mode, the screen must be in the 90% upright position. It can only rotate one of two directions to the point where the screen can again be closed down over the keyboard.

The battery pack is located under the screen underneath the keyboard, and is released by two slide latches as seen in the lower thumbnail. You can also see the SD slot clearly. Note: the plastic will be textured in later builds so the surface of the machine will not be shiny.

=== What to Expect ===

Please carefully read the [[BTest-1 Release Notes]] or [[BTest-2 Release Notes]] and the [[B1-demo-notes|BTest-1 Demo Notes]].

If you get a BTest machine(s), expect to get (a) box(es) with:
# one or more BTest systems, with localized keyboards if available
# one AC power adapter for each machine (to the extent possible by our logistics and crystal ball gazing) which will have the right plug type for your country if available
# one battery pack for each machine
# factory or OLPC pre-load of some version of the software: you should plan to immediately update the software to a current version upon arrival. This has been made extremely easy with the [[Autoreinstallation image]].


== Project Hosting ==
== Project Hosting ==


If your interest is primarily on doing some systems level or on applications level coding, then join one of the projects on our [http://dev.laptop.org/wiki Hosting Wiki].
If your interest is primarily on doing some systems level or on applications level coding, then join one of the projects on our [http://dev.laptop.org/wiki Hosting Wiki].

We have much more flexibility, bandwidth and CPU available than alternatives like
We have much more flexibility, bandwidth and CPU available than alternatives like
[http://www.sf.net SourceForge], and your project won't be as lost among thousands of other projects unrelated to OLPC. If your project has aspects related to OLPC, but is primarily
[http://www.sf.net SourceForge], and your project won't be as lost among thousands of other projects unrelated to OLPC. If your project has aspects related to OLPC, but is primarily
Line 100: Line 26:
related facilities, such as bug tracking and our wiki.
related facilities, such as bug tracking and our wiki.


Other details are available on [[project hosting]].
== Hardware Schedule ==


Avoiding an [[Hardware_specification#Laptop_Development_Schedule|overview of older system]], most developers now have [[http://wiki.laptop.org/go/Hardware_specification#Beta_Test_4_Systems_.28BTest-4.2C_or_B4.29|BTest-4]] or
[[Hardware_specification#Preproduction_Test_Systems_.28CTest-1.2C_or_C1.29|CTest]] machines. The BTest-4 (B4) laptops saw widespread distribution to developers and trials.


== XO and hardware access ==
[[Hardware_specification#Beta_Test_2_Systems_.28BTest-2.2C_or_B2.29|BTest2-1 and earlier machines]] are no longer actively supported by current software.


There are a significant number of OLPC laptops available as part of our contributors program. This page talks specifically about access for software developers, support and testing<!-- ; for other contributions, see our community-wide [[contributors|contributors program]]-->. While these laptops are useful for some testing, they are not necessary for developing software for the OLPC platform.
We hope to have mass production machines available by the end of November.


Most development work done by traditional developers (as distinct from children who are actually using the OLPC-XOs in the field) for software takes place within either a [[Sugar with sugar-jhbuild|sugar-jhbuild]] environment or an [[Emulating the XO|emulated XO]] on a traditional desktop or laptop. See [[Developers/Setup]] for a lengthy discussion of how to set up your development environment.
= Goals =


Our goals will vary as the hardware matures. For the BTest systems we need the most help on:
We will give preference for hardware to proposals that require access to the OLPC hardware to make progress.
* power management in the device drivers: for us, every joule matters, and a simplistic "oh, we mostly have most of a chip turned off, maybe" isn't good enough. We want to know that every possible power savings has been realized, and that suspend/resume is rock solid and blindingly fast.
* fast suspend/resume: We must go beyond the current state of the art as discussed at the [http://lwn.net/Articles/181687/ power management summit].
* modal operation: if certain applications are full screen, the system should automatically suspend and resume whenver idle for more than a short period.
* variable speed display driving: (aka: mode change on the fly), again, to save power.
* wireless: we will be deploying mesh networking. Serious experimentation in this area is in order, to shake down the drivers and to gain experience in its behavior in differing conditions (e.g. rural areas with low noise characteristics; busy metropolitan areas). We understand that to do serious tests, more than a single board will be needed. Please be realistic in your expectations: two boards is not interesting; two hundred boards can't be provided.
* compiler optimization: if you are a compiler wizard, we understand that the Geode lacks a specific back end code scheduler, which limits performance, particularly FP performance. We'd love to see work go on in this area which would help everyone.
* tickless operation: there are patches out of tree about to be integrated into Linux that allows Linux to function without periodic tics; we've been experimenting, and while our tick rate is probably the lowest yet observed on a Linux system, it can and should go further. Nothing in the system should poll!
* power management desktop interaction: applications need to be better aware of their power usage and requirements, and communicate this better to the system.
* The OOM (out of memory) killer is naive, to say the least.
* Sugar optimization: While the Sugar environment will get substantially faster as soon as we deploy a rebuilt Python 2.5, further work, particularly on python startup, is in order.
* Sugarizing applications: There are many applications that with minimal work can be made to work well in the Sugar environment for young children. We encourage you to pick one and help out.
* Remote display: we have begun work on a low cost projector. Making it easy to remote applications is well worthwhile. There are a number of ways (and difficulties) of doing this, so there are immediate techniques available, along with much more sophisticated ways of advancing the "state of the X Window System art", depending on your inclinations and abilities.
* Educational applications of all sorts.
* Server based tools for schools and support of the laptops.


=== Qualifications ===
We're sure you are brighter than we are and have seen what we're missing in the above list.


We're looking for people able and interested in contributing to the OLPC/Sugar Community. This goes far beyond our core of hardware and software developers, eg. we also seek experienced/innovative teachers, and far beyond. Hence our [[Contributors program criteria|criteria for judging your project proposal are evolving]] to take this into account!
You can contribute in many areas which do not require hardware. For example:


Classically, required qualifications depended strongly upon where you were interested in working: for example, people working on BIOS/boot paths should be seriously "friends of the electrons", and not scared of JTAG and similar kinds of debugging.
* memory usage: many applications and toolkits waste and/or leak memory. Fixing these will help everyone and most easily done on conventional systems.
* performance optimization: fixing memory usage will usually result in faster code.
* toolkit adaptation: the display's effective resolution will change from grayscale to color mode and back. Toolkits and applications need to be able to adapt, and themes that work well in both modes verified.
* UI: most of the user interface work can be done today on conventional Linux desktops. But our system will also have an e-book mode, with dual 4-direction keys and enter. Key applications will need updating to work well in this environment (e.g. evince, web browser). Testing application's behavior under grayscale conditions and making whatever changes are needed would be helpful.
* Applications: goes without saying. The "Sugar" environment under development can be run on conventional desktops, and many applications should be simplified and optimized for our systems. Our primary audience are younger children, rather than the middle and high school students that have been the primary child users of computers.
* IPv6 support, and service discovery, which are very important to us.
* Security: [[Bitfrost]] is a way to protect against Day 0 attacks; as a large ecosystem of similar machines, it is something worth seriously worrying about.


EG. Most driver work takes normal driver debugging skills, though getting power management right can be more challenging than most driver development. And Window system development requires X experience, and so on; applications, experience in developing those or similar applications, and so on.
We will give preference for hardware to proposals that require access to the OLPC hardware to make progress; BTest requests should either require mobile use of the systems and focused on GUI and applications where access to our new screen is needed.


For a more up-to-date look, see the [[#Meetings|Meetings]] section below for actual examples of accepted and rejected proposals.
== Qualifications ==


=== Expectations of Recipients ===
We're looking for people able and interested in helping in development. The qualifications needed depend strongly upon where you are interested in working: for example, people working on BIOS/boot paths should be seriously "friends of the electrons", and not scared of JTAG and similar kinds of debugging.


We would appreciate [http://dev.laptop.org Bug Reports] for any hardware or software issues you encounter, even if they are not in your own area of interest. Being technically capable, you are more likely to be able to help us isolate and fix bugs than non-technical users.
Most driver work takes normal driver debugging skills, though getting power management right can be more challenging than most driver development.


We would also appreciate it if you would read the [[Developers|Developer's Manual]] and join the community's [[Developers/Communication|communication's channels]], the [[Support]] or [[Test_issues|Testing]] community.
Window system development requires X experience, and so on; applications, experience in developing those or similar applications, and so on.


==How to Contribute==
=== Applying for an XO ===


If you have tried working with [[Sugar with sugar-jhbuild|sugar-jhbuild]] and/or an [[emulation|emulator]] and have found that you really need a physical XO to develop on, please use this url to request a laptop: http://projectdb.olpc.at/
===dev.laptop.org===


=== Applying for an Active Antenna ===
OLPC runs a development environment for hosting '''software''' and '''content''' development projects. As much as possible, we encourage you to do your development upstream in the original projects. However, some projects are OLPC specific, or need temporary development resources while being staged for our systems. An example is the [http://dev.laptop.org/git.do?p=olpc-2.6;a=summary Linux kernel tree] where we maintain OLPC code before it is ready to submit to the main Linux kernel. This lets us easily share work on various aspects of the Linux kernel, while tracking Linus' tree reasonably closely, to aid in upstream submission of code.


If you need an [[Active Antenna]] for development purposes, '''please note your need in a projectdb submission''' as noted above, and include 'mesh' or 'antenna' in the project title.
We are happy to provide [http://dev.laptop.org/wiki/Hosting hosting resources] on this system to those with OLPC related needs.


====Source Code Management====


''A deprecated way to request antennas or other nonstandard gear:''
Since both the kernel and the X Window System use <i>[http://git.or.cz/ git]</i> as their development source code management systems, and we work on both, ''git'' is our SCM of choice. You can see the [http://dev.laptop.org/git.do git trees hosted at dev.laptop.org].
<blockquote>
<div style="font-size:80%; background-color:#ccc;">


You can also send mail to the <tt>developer</tt> at <tt>laptop dot org</tt> email alias with the following information:
The [[Fedora]] kernel is maintained at that project. For BTest-1 we are using a kernel from the <tt>olpc-2.6</tt> tree, rather than a [[Fedora]] kernel. This may change at some future date.


# Name
Source RPMs for most OLPC-specific versions of code [http://download.fedora.redhat.com/pub/fedora/projects/olpc/development/source/SRPMS/ are also available from RedHat].
# Email address
# Employer (if any), University/College
# Shipping address and instructions [name, address, (cannot be a post office box), city, postal code, country, '''phone number''' (we need this for shipping ]
# Quantity of Active Antennas desired
# Description of your plans for the Antenna(s). Concrete proposals with defined outcomes are much more likely to result in an Antenna
# Description of your experience, both with hardware and software
</div>
As with other requests, presuming your request is approved, a mail message will be sent to you with shipping information, or a regret.
</blockquote>


====Bug Tracking System====
== XO pools ==


These are local pools of XO's which are loaned out to developers or other individuals involved in promoting OLPC's mission. (For instance, it should also be possible to get a loan in order to do a demo or have presence at a conference). If you set up a pool on the list below, and you can show evidence that you are actively promoting your program and have a plan for dealing with customs, you should be able to request moderate numbers of XOs from OLPC.
OLPC maintains a [http://dev.laptop.org bug tracking system] called ''trac'', which is also a wiki (though we discourage use of it as a wiki). To use it, you need to create an account for yourself. You can [http://dev.laptop.org/query query] it for open (or closed) bugs.


* Country, contact, number of XO's currently in pool/link to further info <!-- once the list is populated, I hope to convert it to semantic wiki magic [[User:Homunq|Homunq]] 13:52, 29 January 2009 (UTC) -->
====Wiki====
The main '''[http://wiki.laptop.org/go/Home public OLPC wiki]''' is available for use to write about any ideas or efforts related to the project; or to categorize and develop content for the laptops. Some pages (prominently marked) are maintained by the core OLPC team. We prefer this wiki to the Trac wiki for most writing.


* Germany, [http://lists.laptop.org/listinfo/olpc-de contact on list (in German)], 15, [http://wiki.olpc-deutschland.de/wiki/XO-Vereinsger%C3%A4te More info]


(See also [[Repair_center_locations|Repair centers]]; many of these can also function as XO pools.)
===Pointers to Supporting Organizations===


[[Category:Developers]]
OLPC depends on a number of key technologies and projects, including:
[[Category:Hardware]]


== Meetings ==
* [http://www.gnome.org/ Gnome]
* [http://projects.o-hand.com/matchbox Matchbox]
* [http://www.gtk.org/ GTK+ toolkit, Pango Text Layout Library]
* [http://www.cairographics.org/ Cairo Graphics Library]
* [http://www.x.org/ X Window System]
* [http://www.kernel.org/ Linux Kernel]
* [http://www.mozilla.org/ Gecko Rendering Engine of the Mozilla Foundation]
* [http://www.abiword.org/ AbiWord word processor]
* [http://squeakland.org/ eToys]


[[Contributors program/meetings|Join us Fridays 2PM]] bringing an advocate for your project, who can independently vouch for your work, thanks!
=Contacts=

==Mail==
For e-mail contacts, see [[Contact OLPC]].

Snail mail please sent to:
:One Laptop per Child
:P.O. Box 425087
:Cambridge, MA 02142
:USA

==IRC Chat==

We primarily use IRC instant messaging, and can be found on irc.freenode.net, #OLPC and #sugar channels.

=Software Installation=
==After You Received==

Note: <i>when you first receive the system, please immediately update the system to current software</i>, as documented below in the NAND Flash and BIOS Re-installation section.

The BIOS (LinuxBIOS + OpenFirmware as bootloader), Linux itself, and the OLPC software stack were installed at the factory on the BTest systems; however, this is intended as testing of the systems and practice for later rather than for serious use. In the time since we gave the system to Quanta for manufacturing until you receive a system, a number of key bugs have been fixed, and other problems resolved.

===System Updating===

When you receive the systems, and occasionally afterwards during beta test, the software and/or firmware (BIOS), may need to be upgraded. We expect that during deployment addition of local software and content or total replacement of the factory installed software will be normal.

==How to upgrade the OS on BTest Systems==

===NAND Flash and BIOS Re-installation===
Follow the '''[[autoreinstallation image]]''' directions; this makes updating many machines very easy, as easy as inserting a USB key and rebooting the system.

(A summary of the [[autoreinstallation image|procedure]] is outlined below.
Upgrading the OS on NAND flash is now a three step process:

# Download a zip file;
# Unzip the contents, creating a directory named "boot" on a flash key or disk drive;
# Plug in the USB flash key or USB disk and reboot.

The Forth scripts used by [http://en.wikipedia.org/wiki/Open_Firmware Open Firmware] will update the SPI BIOS bootflash, [http://dev.laptop.org/ticket/476 fix the manufacturing data error], and installs an image onto NAND flash, without further intervention. It is has been made as simple as possible.)

===How to Install Linux onto Flash or Disk ===
(Detailed instructions are here: [[Build_images]].)

The first step is to obtain a USB disk, install an OS image to the disk, and boot the laptop off of the USB disk. Instructions for installing an OS image to the USB disk can be found [http://wiki.laptop.org/go/OS_images_for_USB_disks here]. Once the laptop has booted off the USB disk, the image that's on the laptop itself can be upgraded (this is only recommended when upgrading an old ATest system running an old BIOS). Instructions for upgrading the internal OS image can be found [http://wiki.laptop.org/go/Installing_to_NAND here].

Manual updates to the BIOS and wireless firmware should happen automatically when using a new OS image.

= How to apply for an XO =

If you have tried working with an [[emulation|emulator]] and need a physical XO to develop on,
please send mail to the <tt>developer</tt> at <tt>laptop dot org</tt> email alias with the following information:

1. Name
2. Email address
3. Employer (if any), University/College
4. Shipping address and instructions
- name,
- address, (cannot be a post office box)
- city,
- postal code,
- country,
-'''telephone number''', (we need this for the shipping companies)
5. any special instructions
- power adapter requirements (note that some countries are '''very''' picky in
customs about all devices needing the [http://en.wikipedia.org/wiki/List_of_countries_with_mains_power_plugs%2C_voltages_and_frequencies correct power adapters];
Argentina, for example, is particularly fussy.
- desired keyboard layout (we may or may not be able to oblige).
6. Quantity of machines desired
7. Description of your plans for the machine(s). Concrete proposals with defined
outcomes are much more likely to result in a system than "it would be cool to play
with these and demo them".
8. Description of your experience, both with hardware and software

Presuming your request is approved, a mail message will be sent to you with shipping information, or a regret. Note that some requests may be more feasible and applicable later in the project, when we have more machines available.

= How to apply for an Active Antenna =

If you need an [[Active Antenna]] for development purposes, please send mail to the <tt>developer</tt> at <tt>laptop dot org</tt> email alias with the following information:

1. Name
2. Email address
3. Employer (if any), University/College
4. Shipping address and instructions
- name,
- address, (cannot be a post office box)
- city,
- postal code,
- country,
-'''telephone number''', (we need this for the shipping companies)
6. Quantity of Active Antennae desired
7. Description of your plans for the Antenna(s). Concrete proposals with defined
outcomes are much more likely to result in an Antenna than "it would be cool to play
with these and demo them".
8. Description of your experience, both with hardware and software

Presuming your request is approved, a mail message will be sent to you with shipping information, or a regret. Note that some requests may be more feasible and applicable later in the project, when we have more machines available.

= Idle machines =

If you no longer have time to contribute to the OLPC effort, please be so kind as to return your system. Please keep any ATest boards as a memento of your contributions.

[[Category:Developers]]
[[Category:Hardware]]

Latest revision as of 00:46, 19 July 2009

  This page is monitored by the OLPC team.
  Please copy/paste "{{Translationlist | xx | origlang=en | translated={{{translated}}}}}" (where xx is ISO 639 language code for your translation) to Contributors program archive/translations HowTo [ID# 212550]  +/-  


Stop hand.png WARNING:
The content of this section is considered
DEPRECATED and OBSOLETE
It is preserved for historical or documenting reasons.

<< Developer's Setup

The OLPC Contributors Program (aka the Developer's Program) provides contributors with access to resources, primarily hardware that OLPC produces such as the XO (Development Laptops), serial adapters and other peripherals, and spare parts.

We also provide Project Hosting facilities to make the process of working on Software/Hardware for the OLPC project easier for external developers. For an introduction to developing for the OLPC platform, and an API reference, see the Developer's Handbook and the Sugar Almanac.

  • To apply for hardware, please visit our project database and submit an application.
    We have weekly meetings to discuss new proposed projects on IRC; see Contributors program/meetings.
    Please note that the overhead for processing and sending out CP hardware is related to the # of distinct addresses/requests, not the # of machines or projects. It you know other people in your region who are requesting XOs, try to bundle your requests so that hardware for accepted projects can be sent to a single recipient. This will not reduce the chances of any individual project being accepted, and may in fact increase chances.
  • If you have many project requests in a small region, consider setting up a local XO pool and looking after them locally. If you have a request, and are in the region of an existing pool, please first try the regional contacts provided below to get hardware.
  • To apply for project hosting (for a software project), see below.


Project Hosting

If your interest is primarily on doing some systems level or on applications level coding, then join one of the projects on our Hosting Wiki.

We have much more flexibility, bandwidth and CPU available than alternatives like SourceForge, and your project won't be as lost among thousands of other projects unrelated to OLPC. If your project has aspects related to OLPC, but is primarily part of some other project (e.g. GTK+, X11), we're also happy to provide more limited OLPC related facilities, such as bug tracking and our wiki.

Other details are available on project hosting.


XO and hardware access

There are a significant number of OLPC laptops available as part of our contributors program. This page talks specifically about access for software developers, support and testing. While these laptops are useful for some testing, they are not necessary for developing software for the OLPC platform.

Most development work done by traditional developers (as distinct from children who are actually using the OLPC-XOs in the field) for software takes place within either a sugar-jhbuild environment or an emulated XO on a traditional desktop or laptop. See Developers/Setup for a lengthy discussion of how to set up your development environment.

We will give preference for hardware to proposals that require access to the OLPC hardware to make progress.

Qualifications

We're looking for people able and interested in contributing to the OLPC/Sugar Community. This goes far beyond our core of hardware and software developers, eg. we also seek experienced/innovative teachers, and far beyond. Hence our criteria for judging your project proposal are evolving to take this into account!

Classically, required qualifications depended strongly upon where you were interested in working: for example, people working on BIOS/boot paths should be seriously "friends of the electrons", and not scared of JTAG and similar kinds of debugging.

EG. Most driver work takes normal driver debugging skills, though getting power management right can be more challenging than most driver development. And Window system development requires X experience, and so on; applications, experience in developing those or similar applications, and so on.

For a more up-to-date look, see the Meetings section below for actual examples of accepted and rejected proposals.

Expectations of Recipients

We would appreciate Bug Reports for any hardware or software issues you encounter, even if they are not in your own area of interest. Being technically capable, you are more likely to be able to help us isolate and fix bugs than non-technical users.

We would also appreciate it if you would read the Developer's Manual and join the community's communication's channels, the Support or Testing community.

Applying for an XO

If you have tried working with sugar-jhbuild and/or an emulator and have found that you really need a physical XO to develop on, please use this url to request a laptop: http://projectdb.olpc.at/

Applying for an Active Antenna

If you need an Active Antenna for development purposes, please note your need in a projectdb submission as noted above, and include 'mesh' or 'antenna' in the project title.


A deprecated way to request antennas or other nonstandard gear:

You can also send mail to the developer at laptop dot org email alias with the following information:

  1. Name
  2. Email address
  3. Employer (if any), University/College
  4. Shipping address and instructions [name, address, (cannot be a post office box), city, postal code, country, phone number (we need this for shipping ]
  5. Quantity of Active Antennas desired
  6. Description of your plans for the Antenna(s). Concrete proposals with defined outcomes are much more likely to result in an Antenna
  7. Description of your experience, both with hardware and software

As with other requests, presuming your request is approved, a mail message will be sent to you with shipping information, or a regret.

XO pools

These are local pools of XO's which are loaned out to developers or other individuals involved in promoting OLPC's mission. (For instance, it should also be possible to get a loan in order to do a demo or have presence at a conference). If you set up a pool on the list below, and you can show evidence that you are actively promoting your program and have a plan for dealing with customs, you should be able to request moderate numbers of XOs from OLPC.

  • Country, contact, number of XO's currently in pool/link to further info

(See also Repair centers; many of these can also function as XO pools.)

Meetings

Join us Fridays 2PM bringing an advocate for your project, who can independently vouch for your work, thanks!