BTest-1 Release Notes

From OLPC
Revision as of 12:35, 27 November 2006 by Jg (talk | contribs) (Software)
Jump to: navigation, search
  This page is monitored by the OLPC team.

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 512 MB of storage (Flash), probably the most serious limitation, 128 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".

Our base technology choices have been predicated on the ability of the software to achieve the best overall worldwide "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.

The Meaning of BTest

This is the beta test of fully functional hardware; however, the software is alpha test. Most of our effort to date has been consumed by basic device support as well as putting together the basic user interface framework for children, which has known performance problems. Major components are as yet not complete: power management and the wiki editing system to name two large components. Enough is now present to begin to sketch the outline of where we believe the children's software should go: enabling the construction of software in which children and teachers can easily collaborate is central to our vision. Children should not be passive receivers of "content" but creators as well.

Hardware

User's guide to the hardware

Pictures/features

Hardware Specification

The BTest1 systems were built with an extra 128meg of RAM, to partially make up for wellknown memory problems in key applications, in particular the web browser, based on Firefox's Gecko technology. Work is well underway to reduce the browser's footprint. BTest-2 will be built with 128 meg of RAM total.

Note that the BTest-1 systems use an Altera FPGA to implement that CaFE ASIC (which interfaces the camera, NAND flash and SD slot), which will not be available until the BTest-2 build. This has allowed us to test the design of CaFE and to build early systems more than 6 weeks sooner. Using an FPGA has several consequences: the FPGA consumes considerable power, and it is relatively slow. CaFE's NAND flash controller, while several times faster than on the Geode's controller on ATest boards, is still very slow relative to what itwill be when implemented as an ASIC; similarly the SD controller is also slow relative to its eventual performance, both due the limitations on the speed of the FPGA, and since high speed mode for SD is just now being implemented in the device driver.

The hardware specification is elsewhere in the wiki.

Hardware Release Notes

Our master list of hardware and mechanical issues and status can be found in the trac system we use. Please check this list before entering new issues: but please do enter issues you discover!

One of the most irritating and noticeable problems is a static discharge problem that can crash the embedded controller, causing some or all of the keyboard keys or touchpad to stop functioning, that was discovered too late in the manufacturing process to fix. Power the unit off and on again to reset it (you may need to remove and re-insert the battery).

The resistive sensor (for use with a stylus for writing) also turned out, when assembled, to be unusable in many units, due to a design flaw that is being fixed.

Power management is as yet unimplemented, though the hardware is believed to work. Therefore you cannot suspend and resume the machine (yet).

Design Release Notes

The BTest-1 systems do not have textured plastic: this is intended for future builds.

Other design issues are also under investigation.

Note that design is always a over constrained problem: it is often not possible to get every thing you would like in a design, though you can usually get most or all of what you value most.

Software

These are very early days for the OLPC software (alpha test at best). The "Sugar" user interface environment for children is in place, though Sugar has activity launch performance problems we are actively investigating while starting applications (acitvities). There are user interface issues we intend to fix. The OLPC Human Interface Guidelines should be observed when building or repackaging applications. Conventional human interface guidelines have been designed for first world office workers, and are totally unsuitable for children who are just learning to read. As young children are the many/most of the intended audience of our system, their needs are being met first.

Conversion of applications to function under Sugar is very straightforward and most applications can work with little change.

Installation

How to upgrade BIOS firmware

Warning! Warning!

The current BTest units should NOT have their firmware upgraded by the previous methods. The Linux 'olpcflash' tool and the OpenFirmware 'flash' command will erase the manufacturing data that was written by the factory. The tools are currently in progress of being updated so that they will preserve the manufacturing data across a firmware upgrade.

                       How to install/upgrade OLPC Fedora
                       How to upgrade Marvell firmware

User Interface

Sugar

                       intent and goals
                               presence
                               collaboration
                       navigation
                               personal
                               friends
                               mesh
                               world
                               search
                               Journal (someday)  
                       Programming Sugar
                               Sugar interfaces
                               goocanvas
                               GTK+
                               Cairo
                               Pango/ATK     

Activities

Web Browsing

chat

EToys

The EToys learning environment has been integrated into the Sugar environment, and you are encouraged both to visit the Squeakland site. Sugar EToys has information specific to EToys in our Sugar environment.

TamTam???

Temporary placeholders

Video/Camera Player

The controls (brightness, hue, saturation) are not hooked up in the device driver or video player applcation in BTest-1 (build 185). The driver adding these controls to Alsa (the Advanced Linux Sound Architecture) will be merged in a build soon.

We have used mplayer on the machine, but as it pulls in many dependencies, we put together a simple gstreamer based application for demonstration of the camera and video playing. Others have reported successful playback of videos and DVD's on the system.

The X Window System Xvideo extension is supported in the X server; note that a slightly different colormap is loaded while video is playing to improve video quality; other colors in use may become slightly strange during this period.

Abiword

Logo???

Base system

OLPC Platform

Inventory of "permanent" packages Inventory of "debug" packages Inventory of "optional" packages (?)

Development environment

                               Languages - Logo, javascript, python
                               Libraries
                       Where to find source            
                       Internationalization/Localization

Other software known to work

                       Flash
                       Helix player
                       ...

How to Contribute

dev.laptop.org

                               git
                                       general hosting offer
                                       olpc-2.6 repository
                                       fedora kernel image
                               trac
                               wiki
                               mailing lists
                               who is who

pointers to key technology organizations

                               gnome, X.org, Cairo, gtk+, kernel.org,
                                mozilla,etc.

content

                               public
                               contacts at OLPC

Contacts

                               contacts at OLPC