Software Release Notes
Software Release Notes
These are early days for the OLPC software (alpha test); nonetheless, there is quite a bit you can do with the laptop out of the box (See Demo Notes), which are very useful to understand the system and some of what is available. There are also some general instructions on how to use the Sugar interface here.
Please read these release notes for particularly important software issues you should be aware of. Please also read the BTest-1 Release Notes and BTest-2 Release Notes for hardware problems applying to particular versions of the hardware. The Library Release Notes have information about the early stages of our sample content library.
The software is late alpha test. Please refer to the OLPC Human Interface Guidelines for the vision of where we would like the software to lead, only partially reflected in our current software.
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 (journal) 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.
The software is just maturing to the point where we can embark upon early-stage trials for feedback. Please working with us on these trials so that we can learn as much as possible from your experience.
Stable Builds
The current stable stable build is Build 406 and Firmware Q2C11. The release notes here apply to this release. The Autoreinstallation image enables easy updates of systems.
Base System Notes
- Python performance is slow
- There are two reasons for slow Python performance in current builds: we're using Python 2.4, which attempts to load far more files than necessary at each module load, and we have compiled it with the "-fPIC" compiler flag which is resulting in a 30% slowdown for Python on the Geode GX CPU. Both of these problems will be fixed when we move to Python 2.5, which we hope to do in the near future -- see the linked ticket to keep track on progress. The Geode LX processor in BTest-3 will again greatly increase performance.
- Want interrupt on power/battery status change
- We have the embedded controller code for this, along with the lid-switch, and the ebook mode switch, but they are not yet hooked up to the Linux input framework, nor integrated into the UI.
- Functional Wireless and Mesh
- The mesh is working in Build 303 and works much better on and after Build 354. The UI for the mesh is in Build 368. The Marvell's wireless chip's boot2 code has yet to be deployed. The boot code on the Marvell wireless interface has previously been linked to serious USB problems; BTest-1 hardware can now do a reset of the device to stop the USB problems (until the new boot2 code is well enough tested to be deployed). We will likely do this upgrade at the time we deploy suspend/resume, where this will be required. You will find in Establishing a Mesh Portal directions on how to configure a system to act as a portal between the mesh network and the Internet.
- Booting is slow, but better than it was
- A fix for jffs2 garbage collection scheduling is new to Build 303, and significantly decreases boot time. We understand where much of the rest of the boot time is currently going, as you can see by checking the bugs referred to in 623. Boot time, however, is not our highest priority; we'll certainly make some of the improvements pretty soon anyway, and CAFE as an ASIC has higher performance that also helps BTest-2 and later.
- WPA/WPA2 not working with Marvell Libertas
- This is waiting on driver/firmware fixes. WPA networks will not show up in the UI's network list. To be fixed by BTest-4.
- Battery problems
- (including failure to charge, overcharge, incorrect capacity reporting, battery draining quickly when turned off. A raft of problems with batteries has been fixed by EC firmware patches up through Q2B83. Most, but not all, dead batteries can be recovered in the field with existing BTest-2 systems (See Battery Charging for more details). LiFe batteries incorrectly flash red light was fixed in firmware q2b87. Note that for long term storage, removing the battery pack after a full charge is best practice; this is true for all battery powered devices. On B2 systems, average NiMH lifetime in a test of multiple machines (Screen on, backlight fully on, wireless associated, all functional units including GPU on, but processor idle) was tested to be approximately 2h40m, LiFePo batteries were approximately 3h 10m, using BTest-2 systems. This will improve as our power management improves and unused devices more carefully powered down when not in use.
- Sugar crashes and hangs
- Trac #1235, #1228, possibly #1245, the fontconfig library version 2.4.1 had a nasty bug that could affect nearly any application. We have seen this problem for an extended period, but it became much more common in build 368. Disentangling this from the problems in the presence system which uses the Avahi library has been challenging. Fontconfig was updated to version 2.4.2 as of 379, and the Sugar crashes stopped.
- RestrictedFormats
- In some jurisdictions, patents on algorithms apply, and royalty payments may be required. Examples include MP3, and MPEG-4. This is a particular nuisance for media players, for which many of the common codecs algorithms are patented. In other jurisdictions, software patents do not apply and there are usually freely available implementations for these algorithms available. Sometimes, as in Adobe Flash, or the Real Helix player there are free (as in beer) implementations available, where those corporations have paid these patent royalties and made usually (binary) versions of codecs available. This has direct consequences as OLPC does not want to burden all machines with what may be unnecessary duplicate patent royalties: OLPC must therefore leave the customization of the distribution for these formats for "in country". For jurisdictions in which such patent laws apply, there are now solutions such as those sold by Fluendo to these issues. The Flash format (whether Adobe's Flash 9 or Gnash) illustrates this problem well; even though we can include gnash, as built it does not have support for MP3 or MPEG-4, which should work correctly if Gnash is rebuilt.
- JFFS file system pathological use.
- Writing log files (or similar files) one short piece at a time (unbuffered) and then flushing them to stable storage is bad for the flash, as it causes many unnecessary writes to the flash; much better would be to defer such writing until some amount of time has passed, and then flush, so that multiple small writes can be merged into a single write. Do not build applications with such behavior.
- Network adapter causes slowdown
- Fixed in Q2B81 firmware and later. Any network adapter, if configured, (including the built in Marvell wireless) would cause the system to slow as much as 33%.
- Recent devel-ext3 builds not booting
- Fixed in Q2B85 firmware: OFW was not handling extended attributes correctly.
- The sensor input mode of the audio hardware is not supported in the audio driver of build 239
- Fixed in Build 303.
- Suspend/Resume not yet implemented
- The preparatory work in the firmware is complete, and in development, the hardware is suspending and resuming. We hope to deploy working suspend/resume by BTest-3, though several hardware bugs are annoying and will be fixed in BTest-3. Resume time is now under 1/4 second!
- LED illumination driver needs writing
- This is now implemented - Fn space bar will turn it on and off. Note that the keyboard illumination is being dropped in BTest-3 and after.
- CAFÉ NAND ECC poorly understood and needs optimization
- This can cause dramatically differing performance if you happen to hit some bad sectors.
- Flash and system installs off SD
- You can install the flash and system image off an SD card. Rather than using the "disk:" in the instructions for reflashing, you can install using the name "sd:". The auto updater does not work off of SD, however.
X Window System
The X server now uses MMX optimized routines for many operations and has improved greatly. We're still not hitting the hardware fast paths very much in the driver; the change to the LX will help here.
The X Window System does support the RandR extension, (rotation of the screen) and a button on the front face of the brick controls rotation. Not all of the additional software work is complete and rotation might crash the X server, causing a UI restart.
If a console application manages to somehow modify the colormap, the system won't recover without rebooting the machine.
The BTest-1 touchpad worked particularly badly: much of this is caused by capacitive issues; a mylar sheet increased the capacitance and BTest-2's touchpad now functions pretty well. The writing (stylus) mode of the touchpad is enabled and works correctly in BTest-2, although additional software work is needed. When taking a unit off of power supply onto battery (or vice versa), the touch pad may need recalibration: simultaneously press the four keys in the extreme corners of the keyboard.
It may be possible to implement "tap" on the capacitive touch pad; we'd be interested in hearing opinions whether this is desirable for a child or not.
Keyboard autorepeat has been "tuned". Most keys do not autorepeat, except for the arrow keys, erase key, space bar, and game pad and buttons by the screen.
Much performance optimization work is possible, and awaits our time or volunteers to work on. Some work has been done and performance is substantially better than initially.
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. Note that there is a miswiring from the Geode to the DCON chip, to be fixed in BTest-3, that complicates this problem. The LX processor won't have this problem at all; the RGB-YUV conversion is correct on that video unit.
- The keymaps for our initial set of keyboards are only installed when Build 185 is installed
- There are known issues with the keyboard descriptions. Thai-keyboard support only appears in builds 187+.
The language switching key is still not working. So no English language input is possible on the default image targeted at non-Latin-based languages (e.g. Arabic and Thai). To enable English input on those machines, follow the following steps:
- After the system has booted, press ctrl+alt+f1
- Login in as root (no password required)
- Open the file /etc/X11/xorg.conf for editing (use vi or any editor you are comfortable with)
- In the first InputDevice section do the following modifications:
- Modify XkbLayout setting from "us" to "us,ara" (for Arabic—use other symbol files for other languages)
- Add an XkbOptions option with the value "grp:ctrl_shift_toggle"
- Save and close the file
- Either reboot the machine or restart X by issueing a "/sbin/telinit 3" command and then "/sbin/telinit 3"
After you make the modifications, the two lines in xorg.conf should be similar to the following
Option "XkbLayout" "us,ara" Option "XkbOptions" "grp:ctrl_shift_toggle"
After X is restarted, the default language will be english (that can be changed by swapping us and ara above), and you will be able to switch between languages using the ctrl+shift key combination.
User Interface: Sugar
The Sugar user interface environment for children is in place. 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 in any part of the world. 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.
If you are building applications, note that future models of the laptop may have touch screens or tablets, which enables almost any application to be useful in ebook mode, so take the fact your screen size may change aspect ratio seriously when designing your user interface.
Intent and Goals
The core ideas: Activities, Not Applications; Presence is Always Present; Tools of Expression; and Journaling are detailed here.
Navigation, including the Zoom Metaphor and The Frame, is detailed here.
Sugar Release Notes
The Sugar activity launch has performance problems caused by Python's cache footprint. We know that moving to Python 2.5, rebuilt -PIC, should greatly improve performance, independent of work we are doing ourselves, and the LX improve performance still more. Moving to Python 2.5 should occur sometime in May or June. http://dev.laptop.org/query?status=new&status=assigned&status=reopened&component=sugar&order=priority many user interface issues] we intend to fix. Among the most notable issues are:
- New networking UI needs documentation
- To choose a network, push the first of the four circular "mesh view" keyboard buttons (or "F1" in an emulator), hover over each triangle until you find the access point you want to associate with, and then click on it. (Note that the access points are color-coded based upon a hash of the AP SSID. Therefore, once you learn the color of your desired access point, you can subsequently find it quickly.) The mesh, rather than being a triangle, is represented by a circular icon.
- Presence API person_name dosen't accepts accents
- If you put accents or other non-ascii characters into nicknames, Sugar fails. Fixed in Build 406.
- Sugar first boot screen is unintuitive
- Fixed in Build 354. The first time you boot sugar, you'll be asked for a nickname and to chose the colors for your icon representation in the interface. To progress past this screen, you must click on the right-arrow at the bottom to proceed. Just clicking the right-arrow will have no effect.
- Sugar needs a UI for exposing battery status
- Fixed in Build 354 or after. In the meantime, you can use `cat /sys/class/battery/PSU_0/capacity_percentage`.
- Sugar seems to lock up with the frame out
- Fixed in Build 354. Pressing F5 allows the Sugar to unhang, and you can then launch applications again.
- Sugar presumes applications exit
- Usually, you can find some other way to cause an application to exit. The specific Abiword bug is fixed.
- Launching activities are slow
- This is now faster, and will improve yet further when a new version of python 2.5 is in the build. And on the LX processor, it is now running quite fast, even using Python 2.4.
- The timing of many of the user interactions, such as hover and the coming and going of the Frame are in need of fine-tuning. (Much improved in build 303).
Programming Sugar
Sugar Activity Bundles are explained in detail here.
Sugar interfaces goocanvas GTK+ Cairo Pango/ATK
Also check the Human Interface Guidelines and the API.
Activities
Web Browsing
The browser based on Xulrunner (the Gecko engine used in Firefox), using the new scaling version from Firefox 1.9; this improves browser behavior greatly and font and image sizes much more likely to be acceptable, starting in build 303; later builds improve yet further. With our high resolution screen, we have had to go "first" in innovation in web browser technology. We have performance work to do, particularly to speed scaling of images. Google Maps and Google Talk now both work well. Please let us know when you find web sites with clear formatting problems.
Plug-ins should be installed in the directory /usr/lib/mozilla/plugins.
The current version ship with an free version of Flash, called gnash. Adobe's Flash plug in works fine, which many may find preferable until gnash matures further. Video will likely work in Gnash in its next version.
- Problems with flash plugin with the web activity
- Resolved in build 385. Sufficient font aliases have been added for old X11 core fonts that most applications not yet updated to the current X client-side font model should work: specifically, the menus in Adobe Flash 9 for Linux would crash the plug in and browser despite more than 4 years of deployment of the new font system. Note that proper internationalization is impossible using the old X Window System font system. We see use of these fonts as a crutch that must be removed to meet OLPC's worldwide mission. The "xset -fp /usr/share/fonts/dejavu-lgc" can be used to remove these aliases.
The web browser does not ship with Java plug in. Sun's Java and web browser plug in work fine.
Download and identification of media types (audio/video) and their hand off to the proper media type player has not been implemented: we hope this will make BTest-3. We were not expecting the availability of the Helix player or of a gstreamer based media player at this date.
The web browser has no tabs, no zoom (yet), no provision for ebook mode (yet).
User experience has problems with pop windows, Frame interfering with scrolling.
xbook
File viewer through the browser, or as a sugar activity. The PDF format view is brought to you by the poppler library and Cairo graphics library.
The xbook application has no provision for ebook mode (yet).
Chat
We're unhappy enough about the jabber based chat program's state (which needs lots of tender loving care), that we temporarily pulled it from the build for our first trials. We suggest Google Talk, or similar web chat services, as a temporary measure.
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
B4/Trial-2 Release Notes for TamTam activities
- Notes
- TamTam includes four activities: miniTamTam, TamTamJam, TamTam Edit, and synthLab.
- Microphone recording fully functional in TamTamJam
- WARNINGS:
- Do NOT suspend the XO while using TamTam. A very unpleasant sound will result when you resume. This problem will be fixed in Trial-3.
- Occasionally TamTam will not restart when you have just quit it. Allow up to 20 seconds between launches.
- General recommendations
- What follows is a series of considerations and suggestions about TamTam.
- Do play around with the properties window. It allows to change individual sounds, full tracks or full pages.
- Do play with the Generation window. Its a little obscure presently but it can generate quite extraordinary music.
- Do try a lot of different instruments.
- Do experiment with synthLab. Its a little complicated for kids presently and needs to have complete sound design tutorials but an adult should be able to figure it out. The keyboard works the same way it does in miniTamTam.
- There is a quantizing sequence recorder in miniTamTam. Left-click on the record button will start recording on the next down beat and keep going until the drumloop has completed a full cycle. Right click allows you to record on top with another track. Note: the drum has to be playing for the sequencer to work.
Write
The Write activity is based on AbiWord. This activity is fully integrated in the sugar environment, and provides an efficient, light weight text editor. It has support for reading various documents formats, such as Microsoft Word (.doc, .rtf), OpenDocument (.odt), (X)HTML (.html), and plain text (.txt). The core of this activity might be used for editing text in the wiki as well.
Since b-test2 quite a number of bugs have been fixed and a few features have been added.
- New features (since b-test2):
- Toolbar bar buttons for open, save, justify
- Ability to insert freely positionable images, with automatic text wrapping
- Bugs fixes (since b-test2)
- AbiWord doesn't render Arabic is believed to be fixed
- Much less flicker on context changes and startup
- Speedups for scrolling
- Fixes for bugs 404, 822, 824, 823, 771, 826 and various other fixes.
Note: scrolling when dragging images or text is slow in the current stable build, as the hardware can't keep up with all the scrolling events. This issue already has been fixed, and will show up in future builds.
Terminal
The terminal window (Memphis) is launched by typing Alt-=
Paint
A simple paint program is now in the distribution. It is considered just a beginning.
Blockparty
A famous, simple game of falling blocks, often known as Tetris. Contributed by Vadim Gerasimov.
Slideshow
An image viewer that will display images taken earlier by the camera application.
Newsreader
Based on PenguinTV. A few RSS feeds of educational interest have been preprogrammed as examples:
- Astronomy Picture of the Day
- BBC News
- EPOD - Earth Science Picture of the Day
- Merriam-Webster's Word of the Day
- Planet OLPC
Other feeds can easily be added/substituted.
Calc
A simple calculator activity contributed by Mauro Torres et al. of the Tuquito Linux project in Argentina was replaced by a completely unexpected, more functional Calc activity written by Reinier Heeres at Harvard in build 385. Our thanks to both Mauro and Reinier for their efforts.
Temporary placeholders and Missing Pieces
There is no user interface for controlling the audio input and mixing. The workaround right now is to use "alsamixer" in a terminal window. Speaker volume is controllable by the slider. There is currently no visual feedback for changing the volume.
Our plans include a web server and wiki system and journal, with a simple what you see is what you get editor (which is based on Abiword, the write activity in the distribution; this has a collaborative write capability we will be exploiting).
Backlight control
The backlight button on the bezel does not work yet, but the backlight can be controlled using F6 (dimmer) and F7 (brighter); F8 turns on color; F9 turns off color.
Video/Camera Player
The controls (brightness, hue, saturation) are not hooked up in the device driver or video player application in BTest-1 (build 185). The driver adding these controls to Alsa (the Advanced Linux Sound Architecture) will be merged in a build soon.
The camera is exhibiting more noise than expected in assembled units; on B1 systems, one of the multiple source vendor's camera exhibits much higher exhibits much higher noise than on others.
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.
The BTest-2 system does not have a LED to indicate if the camera or microphone is enabled. Such a LED will be present on a later system.
A more involved camera application, which records video and can find it and play it back, is under development.
The eToys activity includes support for the Webcam and a lot of experimentation can be done using the eToys scripting system.
Real's Helix Player Activity
Others have successfully played back videos and DVD's on the system, including RealNetwork formats and players. A Sugar version of Real's Helix player is available, though not in the base install. Please see the Helix Media Activity release notes for further detail. A browser plug-in version of this is expected soon.
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 (see Category:Language support & Category:Languages (international))
Other Multimedia Software
Other software that has been tested on the OLPC systems includes Adobe Flash, and Real's RealPlayer® and Helix player.
Finding the Latest Test Builds
Development and stable builds can be downloaded. Boot firmware is kept in this wiki. The latest stable firmware and system image combined into an easy to use package with a script to automate installation of the firmware and base image makes upgrades to the latest stable software extremely easy.