Log in

No account? Create an account
OLPC XO-1 laptop - Alex Belits
OLPC XO-1 laptop

Some people recently asked me about my impressions about XO-1 laptop that I have mentioned one of my recent posts.

What am I doing with it in the first place

I am trying to do development work on it, with a goal of improving its networking, and replacing the last piece of proprietary software that it needs. If anyone did not notice yet, I am rather fond of free/open source software, and even though I would not go as far as Richard Stallman (see quote in the linked article), I would rather bring it into a "Stallman-approved" condition because a laptop with all user-modifiable software being distributed under open source licenses would be a great achievement in itself. I have found that the configuration I use for development makes it useful as a general-purpose mobile device, so this is what I did/think about it:

Laptop's original purpose vs. development vs. mobile device for adults

For my purpose laptop's native Sugar environment designed for kids in school is rather inadequate. Sugar provides strictly uniform interface over multiple applications, and keeps kids from losing their applications running on the machine. This was made at a terrible price from a developer/general-purpose user's point of view -- applications run in a fullscreen mode, popup windows are eliminated, menus are very large and clear, filesystem's hierarchy is mostly hidden from the user. There is no "Setup" of any kind -- user is presented with views of the current application, computer itself (with applications running) networked "group" and a "wireless networks" view, and that's it. I am sure, this will greatly reduce "where is my window?" and "Why my computer has all user interface in purple, and menus are in a font from those lolcats images?" problems that plague beginner computer users now, however for someone who is accustomed to windows that have borders, virtual desktops (spaces for you OSX users), and software that can edit source code, diagrams and technical drawings, this is not enough.

Educational use

To be honest, not being a teacher I am not really qualified to write a review for this laptop (or any other device) as an educational tool. I have an excuse for mentioning surprisingly GOOD decisions specific to a school environment only because despite Nicholas Negroponte proclaiming that "It's an education project, not a laptop project", no one really bothered to present a consistent curriculum that this laptop is supposed to be used with, so apparently people who run this program know less about education than I do.

I hope, missing pieces will be added as the project goes along, but development of tools in any way other than in parallel with curriculum is a terrible idea that I would only expect from a backwards, primitive education system such as one practiced in US, and I hope, this project will not crash and burn before someone realizes that educational applications come from curriculum and not the other way around. There are a lot of applications developed already, some perform general-purpose functions (text editor, browser, etc.), some range from a simple musical instrument to Python IDE and an oscilloscope with spectrum analyzer, however they don't fall into anything that even resembles a school curriculum.

Even if we take the lists of applications with general educational value that allow user to look up information (such as kalzium and celestia), or perform calculations/simulation (wims), I am sure, porting them to Sugar would provide a better initial set of applications than what exists now -- we know that they fit into existing curricula because this is what they are built for, even though they cover very little of what has to be done. For something as new and unusual as a programming course for kids, the existing Python IDE lacks graphics output while Turtle Art has graphics output paired with monstrously cumbersome representation of a language that confuses kids and adults alike (as opposed to Logo that is clear, simple and almost forty (!) years old).

In contrast to this poorly thought out set of applications (and don't tell me that Windows, MacOS or anything else general-purpose has a better one, they barely scratch the surface and provide atrociously inconsistent interface), the environment itself is a shining beacon of forethought applied to complex devices in the hands of kids. Seriously, I am impressed.

And, of course, taking this into account, stuffing Windows on it would completely negate educational use of its environment and turn all courses involving it into yet another "learn how to use Microsoft Word to write awesome reports with MS Comic Sans font and Microsoft Excel to make 3D graphics". I realize that people who want this laptop for general-purpose computing may demand Windows on it (though I don't see a point -- it can't run games, 3D CADs, EDA or other classes of software where Windows-specific applications may be more desirable for some users), but for learning? What are they going to put on it, free Matlab?

Development and general-purpose use

While Sugar includes terminal application, text editor and allows to install a compiler, it's not exactly an environment for a developer. And while it includes a fully-functional web browser, it's not for a general-purpose use either. Fortunately laptop's hardware is now widely supported by all Linux distributions, and laptop can boot from a USB drive or SD card. It's also possible to replace the environment in its main flash (laptop doesn't have a hard drive, everything runs from 1G flash), but then I wouldn't be able to run its original environment to check how my network stuff is doing in it, so I decided to upgrade main environment to the latest development version, and add a 2G SD card with Ubuntu. To be exact, originally I have installed Ubuntu on a 1G USB key, however key had a disadvantage that I had to remove it before packing the laptop -- when the laptop is closed, USB ports are covered by antenna "ears" that also perform a function of case locks. SD card simply sits inside its slot (also covered when the laptop is closed), and bootloader will boot from any media that has a valid development key file (keys are specific for a particular computer) on it.

Installing Ubuntu was very easy for a Linux user -- instructions here and here pretty much cover all initial installation. For everyone who would want to repeat this, please don't forget to replace the initially installed X driver and configuration file with AMD Geode ones, for some reason stuffed into "Rotating the screen" section of the second guide. Graphics output in un-accelerated mode is extremely slow, and screen runs with reduced brightness. I have taken photos of the screen instead of usual screenshots -- as expected, camera severely loses resolution and adds "moir" artifacts, but those pictures should be sufficient to show that things are clear and readable at the screen resolution. Every photo links to a larger version.

The configuration in the guides sets Xfce as the desktop environment. It's not as resource-hungry as GNOME or KDE, and its user interface less often assumes that controls should be draggable, what is helpful when using a touchpad.

Once Ubuntu is installed, I have configured traditional gdm login, set less screen-real-estate-wasting configuration for Xfce, and ended up with more or less typical Linux configuration:

Here is a closer look at the screen when panel and menu are activated:

Laptop has only 256M of RAM, so I wanted to check if massive fatasses of "general purpose" applications are usable. I don't know if the greatest fatass of all fatasses, Eclipse will work on it because I had only 2G SD card and had more important applications to spend its space on, but the second greatest fatass, OpenOffice.org didn't encounter any problems:

It can be seen that the font in its user interface is unusually large -- this is actually after it was set to 80% of its size in configuration. OLPC screen is treated as low-resolution by some applications and as high-resolution by others, so I had to separately "explain" to GTK and Qt applications that I want small font. Probably setting DPI to something other than default value will fix this problem, but for now this configuration is sufficient. Larger font DOES help considering loss of resolution that happens on this screen, but the configuration I have ended up with looks pretty clear to me.

I was afraid, applications that depend on high resolution will look poorly, however QCad seems to have no problems other than tendency to expand its status line into two due to a larger than expected font (it's disabled in the following screenshot) -- drawing is perfectly readable:

Laptop's peripherals

I have already mentioned the screen. It's described in more detail here, and my subjective impression is that a "real" 1200x900 screen would look much better, but it is more than sufficient for practical use, especially considering how small the device is -- I think, I would rather use it than smaller but more traditionally designed screens of other small laptops.

Networking is solely represented by wireless adapter that works with traditional and "mesh" modes. I haven't tested the mesh mode, but it behaves just like any other adapter when talking to regular access points. A large amount of networking-related functionality is offloaded to an ARM-based processor in the adapter, and the proprietary firmware that this adapter needs is the only user-modifiable piece of proprietary code that this laptop needs. Sugar's user interface for choosing a network would be more convenient if it didn't require the user to hover over every icon to see what it is, but I guess, this is the result of its original purpose not intended for environment stuffed with various access points belonging to various people organizations. In Linux it's only a matter of using Network Manager that provides a reasonably simple interface with a list of networks and strength of signal for each of them. It should be possible to plug a USB Ethernet adapter in one of three USB ports, but having two WRT54G access points in front of me I never had a reason to do that.

Input devices -- keyboard, touchpad and stylus pad -- are designed to be cheap and difficult to break. I can't say anything about stylus input because I never used it, but touchpad acts like a typical small touchpad -- requires high precision of movement. I can use the laptop with it, but prefer to attach a small optical mouse that acts exactly like I expect a mouse to work. I assume, same will be discovered in use in schools, and kids will be given USB mice for work in class. Keyboard has soft, squishy keys, what goes completely against my taste in keyboards. Nevertheless, I was able to use it, and it wasn't significantly more difficult to use than other keyboards that are simply small. Obviously, it's possible to attach a USB keyboard, or even my Model M with a USB adapter, but having a keyboard larger than a laptop would look too ridiculous for words. So here is a picture:

And yes, it works.

For use with a mobile phone it should be possible to attach a bluetooth adapter or a cable -- I use my Verizon phone in 1X mode with a bluetooth connection to my other laptop that also runs Ubuntu Linux, and it should work with this one as well. Same applies to less common things like serial to USB adapter for using this laptop as a console in a data center. To think of it, low power consumption and small size makes it a perfect device for this purpose -- one can go to a data center with this thing fully charged, and carry it between servers without worrying about finding a free power outlet for it.

There is a built-in camera and a sound card -- I have found nothing unusual about them except that small size of the screen and side-mounted camera prevent a forced "Myspace angle" that happens in the pictures taken by top-mounted cameras. Lack of hard drive and a low-power CPU make the laptop completely quiet, and it doesn't have any vents. There are more detailed specification on the OLPC Wiki.

Tags: , ,

6 comments or Leave a comment
mackys From: mackys Date: April 7th, 2008 04:27 pm (UTC) (Link)
and an oscilloscope with spectrum analyzer

Interesting, I didn't notice that when I played with j_b's. I should look up the hardware specs for that on their Wiki, I'm curious what they used for low-cost A/Ds.
abelits From: abelits Date: April 7th, 2008 05:02 pm (UTC) (Link)
I'm curious what they used for low-cost A/Ds

One in their sound card.
mackys From: mackys Date: April 7th, 2008 05:56 pm (UTC) (Link)
I guess that would be a 1 MHz max scope....
From: nickhalfasleep Date: April 7th, 2008 06:21 pm (UTC) (Link)
I imagine you're going to end up knee deep in ARM code. Good luck and good hunting!
ilya_lizard From: ilya_lizard Date: April 7th, 2008 06:41 pm (UTC) (Link)
Очень подробный и обстоятельный обзор. Спасибо !
abelits From: abelits Date: April 21st, 2008 04:09 pm (UTC) (Link)

Update -- Ubuntu Hardy (8.04 prerelease) works

I have just ported Ubuntu Hardy to it.

Is there such a thing as a 0-day port? ;-D
6 comments or Leave a comment