Contributors program archive: Difference between revisions
m (→BTest Systems) |
m (Unprotected "Contributors program archive") |
||
(103 intermediate revisions by 22 users not shown) | |||
Line 1: | Line 1: | ||
{{OLPC}} |
{{OLPC}} |
||
{{Translations}} |
|||
[[Category:Developers]] |
|||
{{Developers}} |
|||
{{deprecated}} |
|||
<< [[Developers/Setup#A Real OLPC-XO Laptop|Developer's Setup]] |
|||
The '''OLPC Contributors Program''' |
|||
== Background== |
|||
(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]]. |
|||
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]]. |
|||
== BTest Systems == |
|||
* To apply for ''hardware'', please '''visit [http://projectdb.olpc.at our project database]''' and submit an application. |
|||
We have had the first build (of three builds) of full OLPC laptops built, for "BTest". The BTest-1 build has started distribution: the [[BTest-1 Release Notes]] describes the state of this first round of machines. There is typically one or two builds of systems internally before an external beta test, so our BTest-1 is really beta test for the electronics, while alpha test for the new screen, touch pad, industrial design, and keyboard; this is earlier in the development cycle than systems are usually made available, and is correspondingly rougher. |
|||
*: 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 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. |
|||
The focus for the developer program BTest machines will be software development on GUI related projects that need to understand the screen, the touch pad, and/or the camera in the system, along with wireless testing, which has been difficult to do sooner due to the cumbersome nature of bare PC boards. |
|||
== Project Hosting == |
|||
Machine are also being allocated to launch countries and do not come under this program, which is aimed at individual free and open-source developers or research organizations. |
|||
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]. |
|||
== ATest Board Types == |
|||
We have much more flexibility, bandwidth and CPU available than alternatives like |
|||
We've had approximately "ATest" 500 developer boards built, to jump start serious development in the free- and open-source software community and the initial deployment countries. Quantities of this generation of boards is limited as we do not have production test fixtures. Note that these are bare printed-circuit boards. At this time, we still have a limited number of boards available, and some more may become available as BTest systems replace many uses of ATest boards. |
|||
[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 |
|||
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]]. |
|||
The [[hardware specification]] of these boards is set. |
|||
There are a number of ATest board types in the wild: |
|||
== XO and hardware access == |
|||
* 30 Pre A-Test PCB, which have been built and distributed. |
|||
* 20 A-Test PCB's, which have been built and distributed. |
|||
* 485 A-Test PCB's, which have been built and are being distributed through Brightstar. These can be distinguished from the first 50 boards in that they have serial-number barcodes on them. |
|||
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. |
|||
These boards lack DCON chips and instead come with the standard VGA connector you'd find on the back of a desktop or laptop computer. We expect that production boards may ship with pads for VGA connectors, but not the connector itself. Additionally, the ''Pre''-A-Test boards have populated mini-pci connectors; on the A-Test boards, these mini-pci connectors have been left off; the pads are included and will probably be included on production boards. |
|||
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. |
|||
The A-Test boards include a socketed ROM chip for BIOS development; this socket will not be on production boards. The sockets are empty; the BIOS is stored in the serial |
|||
flash chip that is interfaced via the embedded controller. The process for updating the serial flash under Linux is not yet available and at the moment involves booting DOS and updating the flash chip using a utility from Quanta. Unless you are directly involved in BIOS development, you should stear clear of BIOS updates unless and until instructed by responsible people working on behalf of OLPC. |
|||
We will give preference for hardware to proposals that require access to the OLPC hardware to make progress. |
|||
At this time, the hardware is all believed to work (having been tested), but not all drivers are working properly under Linux. The wireless driver is being completely revamped at the moment. |
|||
=== Qualifications === |
|||
See: [[Notes on using the OLPC developer boards]]. |
|||
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! |
|||
== Setting Expectations == |
|||
Do not expect: |
|||
# Monitor or flat panel |
|||
# disk, DVD, CD or USB drives |
|||
# keyboard or mice |
|||
# powered USB hubs that may be needed for use with some peripherals |
|||
# USB ethernet adaptors |
|||
# other input devices |
|||
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. |
|||
We expect you have or can acquire these locally. |
|||
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|Meetings]] section below for actual examples of accepted and rejected proposals. |
|||
=== Setting Expectations for BTest Machines === |
|||
=== Expectations of Recipients === |
|||
Please carefully read the [[BTest-1 Release Notes]] and the [[B1-demo-notes|BTest-1 Demo Notes]]. |
|||
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. |
|||
If you get a BTest machine(s), expect to get (a) box(s) 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]]. |
|||
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. |
|||
=== Setting Expectations for ATest Boards === |
|||
=== Applying for an XO === |
|||
Expect to receive (a) box(s) with: |
|||
# one bare OLPC A-Test board, in a static protective bag, with static warning, with serial number both on the box and on the board. |
|||
# one power supply brick (U.S. plugs), 15-Watt capacity. Note that Sony power bricks should also work fine, and that if you can find the connector (the Sony appears compatible) you can use many different DC voltages. |
|||
# RS-232 cable adapter to DE-9 male connector for serial console use and debugging |
|||
# a small plastic bag with standoffs for the board, along with a diagram showing where they should be inserted |
|||
# one pair of 802.11 antennae, which will need to be connected to the board before use. |
|||
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/ |
|||
== Project Hosting == |
|||
=== Applying for an Active Antenna === |
|||
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 |
|||
[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 |
|||
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. |
|||
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. |
|||
== Hardware Schedule == |
|||
In this first generation of boards, which we call A-Test boards, the hardware is fully functional except that video is VGA out, rather than using a flat panel with the DCON chip which appears in the BTest systems. |
|||
''A deprecated way to request antennas or other nonstandard gear:'' |
|||
Packaged machines were built in late November. The BTest-1 systems are fully functional, but use an Altera FPGA in place of the CaFE ASIC which will be available for later builds, for NAND flash, camera, and SD interfaces. This FPGA has lower performance and consumes much more power than the CaFE ASIC will. Another build (BTest-2) is scheduled for mid January. The third BTest-3 build, in larger quantities, will be after that. This final BTest build is the first poing where working with children starts to make sense, as the software matures. |
|||
<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: |
|||
= Goals = |
|||
# Name |
|||
Our goals will vary as the hardware matures. For the A-Test boards right now, we need the most help on: |
|||
# Email address |
|||
* device drivers, and power management in the 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. |
|||
# Employer (if any), University/College |
|||
* fast suspend/resume: We may very well have to go beyond the current state of the art as discussed at the [http://lwn.net/Articles/181687/ power management summit]. |
|||
# Shipping address and instructions [name, address, (cannot be a post office box), city, postal code, country, '''phone number''' (we need this for shipping ] |
|||
* modal operation: if certain applications are full screen, the system should automatically suspend and resume whenver idle for more than a short period. |
|||
# Quantity of Active Antennas desired |
|||
* display driver: we must convert from an XAA to EXA driver for the X Window System. |
|||
# Description of your plans for the Antenna(s). Concrete proposals with defined outcomes are much more likely to result in an Antenna |
|||
* variable speed display driving: (aka: mode change on the fly), again, to save power. |
|||
# Description of your experience, both with hardware and software |
|||
* DCON support, when available. This may include transferring responsibility for screen update to the DCON, even while the processor is still on, in order to allow us to disable the Geode video drivers and save power. |
|||
</div> |
|||
* fbdev driver for the machine: fbdev exists for the GX1 and LX, but we need an LX2 version. AMD has started work here. We'll need to finish this up, and also support the DCON chip. |
|||
As with other requests, presuming your request is approved, a mail message will be sent to you with shipping information, or a regret. |
|||
* input driver: we have a novel, dual mode pointing device, which needs support in the window system and applications. And besides the built in pointing device, we'd like to ensure that common USB HID input devices work well. This may be the point when conversion to evdev may make the most sense, if we can support common HID input device classes. After all, we lack any sort of a serial port, short of a USB to serial converter. |
|||
</blockquote> |
|||
* file system: for first shipment. Dave Woodhouse is improving on its existing performance and memory usage. Additionally, there is work underway at some large computer vendor for a third generation flash file system, though it is unlikely to be ready in time for initial shipment, we would like to be able to convert to it in a timely fashion, only possible if we have good first hand experience with it and it gets good testing. |
|||
* 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. |
|||
* codec optimization: we're sure there is room to be gained on performance here that may be Geode specific. Remember that CPU cycles and memory references (particularly memory references to main memory) translate to power consumed. |
|||
* tickless operation: right now, there are patches out of tree that allows Linux to function without periodic tics; this patch needs to get to the point it can go mainline, both on our system and Linux in general. |
|||
* 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. |
|||
== XO pools == |
|||
We're sure you are brighter than we are and have seen what we're missing in the above list. |
|||
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. |
|||
You can contribute in many areas which do not require hardware. For example: |
|||
* 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) --> |
|||
* 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. |
|||
* IPv6 support, and service discovery, which are very important to us. |
|||
* Security: SELinux may be a way to protect against Day 0 attacks; as a large ecosystem of similar machines, it is something worth seriously worrying about. |
|||
* 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] |
|||
We will give preference for ATest hardware to proposals that require access to the OLPC hardware to make progress; BTest requests should either require mobile use of the systems or be focused on GUI and applications. At this time, we do not know exactly where the line will be drawn, so we are interested in seeing what everyone is interested in doing. |
|||
(See also [[Repair_center_locations|Repair centers]]; many of these can also function as XO pools.) |
|||
== Qualifications == |
|||
[[Category:Developers]] |
|||
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. |
|||
[[Category:Hardware]] |
|||
== Meetings == |
|||
Most driver work takes normal driver debugging skills, though getting power management right can be more challenging than most driver development. |
|||
Window system development requires X experience, and so on. |
|||
== Idle machines == |
|||
If you no longer have time to contribute to the OLPC effort, please be so kind as to return your board for redistribution. |
|||
= How to apply = |
|||
Please send mail to the developer at laptop dot org email alias with the following information: |
|||
# Name |
|||
# Email address |
|||
# Employer (if any), University/College |
|||
# Shipping address and instructions |
|||
## name, |
|||
## address, (cannot be a post office box) |
|||
## city, |
|||
## postal code, |
|||
## country, |
|||
## telephone number, (yes, we really need this for the shipping companies) |
|||
## any special instructions |
|||
# Description of your plans for the machine(s) |
|||
# Quantity of machines desired |
|||
# Description of your experience, both with hardware and software |
|||
[[Contributors program/meetings|Join us Fridays 2PM]] bringing an advocate for your project, who can independently vouch for your work, thanks! |
|||
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 will have programs with beta test |
|||
boards and/or fully packaged machines. |
Latest revision as of 00:46, 19 July 2009
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] +/- |
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.
Project HostingIf 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 accessThere 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. QualificationsWe'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 RecipientsWe 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 XOIf 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 AntennaIf 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.
XO poolsThese 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.
(See also Repair centers; many of these can also function as XO pools.) MeetingsJoin us Fridays 2PM bringing an advocate for your project, who can independently vouch for your work, thanks! |