Enabling XO features on other distributions

From OLPC
Revision as of 03:28, 3 November 2008 by 64.81.33.126 (talk)
Jump to navigation Jump to search

It is fairly straightforward to get Linux distributions to boot and run on the XO, since it is a "just" an X86 computer. The XO has several unique features that require additional steps to enable.

This work is present in the Fedora adaptation that is the normal operating system for OLPC OS images (presumably the changes are either in olpc-specific packages or modifications to Fedora packages, see a recent build log). This page documents the changes that other Linux distributions require.

Input controls

Controlling the backlight

the XO display has two controls

1. the backlight brightness (range 0-15)

control or read the brightness through the sysfs file (as of 2.6.25) /sys/class/backlight/dcon-bl/brightness

2. display mode (high-res vs simulated RGB)

control or read the mode through the sysfs file (as of 2.6.25) /sys/devices/platform/dcon/output

the high-res mode is 1200x900, the blurred mode is ~800x600.

a 'normal' display has three color pixels for each display pixel, the XO display has one color for each display pixel, and the color is always on when the backlight is on, so to display a color display (or even a white point). this means that if the mode is not in simulated RGB mode and the backlight is on the display will look very strange as different pixels will have different colors.

the standard software for the XO switches to high-res mode when the backlight turns off completely, and simulated RGB mode when the backlight is on.

see See http://dev.laptop.org/~pgf/brightness.sh.txt for an example script to control the brightness and switch the mode appropriatly.

Gamepad keys

On a traditional PC keyboard, the keypad area to the right contains duplicate arrow, pgup/down and home/end keys that are operational when numlock is not in effect. The gamepad produces the same keycodes that those keypad keys do, thus the dpad produces keypad up/down/left/right, and the circle/cross/square/check keys produce the traditional keypad page up/down and home/end.

You could run a very simple daemon that eavesdrops on an /dev/input/eventNN node in order to support XO's multi-media keyboard keys. if there's not already a packaged way of doing it.

The slider function keys

Stylus pad

The extended stylus pad either side of the track pad. Note this feature may be removed from future hardware.

Lid sensors

These need to trigger screen off or enter e-book mode.

EC interface

The embedded controller can provide battery info and charge status. This may show up under the power interfaces, may not have stable API.

Mesh mode

XO uses special firmware to implement a early draft of 802.11s mesh networking (??)

Hardware encryption engine

Camera details