Jump to: navigation, search
Public domain This file has been released into the public domain by its copyright holder, its copyright has expired, or it is ineligible for copyright. This applies worldwide.

Notes on the XO B4-10

Initial build 406.14

  • B4-10
  • Linux-2.6.21-20070614
  • Firmware : PQ2C18
  • Build : 406.14 variant devel jffs2

First impressions

Opening the XO is puzzling :-) I would say that the first pedagogical activity of the XO is opening it... You have to understand and to watch carefully the XO. The XO is cute, a beautiful object - the keyboard - a waterproof one - is not as responsive as standard keyboard. Need to train before typing quickly. The space bar does not respond well.

The wiki is a jungle... Informations are scattered in a lot of place, not really up-to-date, and informations for B1,B2,B3,B4 are mixed, so it is difficult to focus on your version hardware.

With this build, close an application is not intuitive. Corrected on next build. I suggest anyone to first upgrade both the firmware and the build image. For instance, the first time I tried the XO, I thought that there was a problem with the battery... Because the battery discharged very quickly. In fact, the problem was that this firmware does not control the battery charging very well.

Build upgrade 542

Following the auto installation wiki page, I did this upgrade

  • Linux-2.6.22-20070801
  • Q2C26
  • build 542

I come to this problem, called the "XO Activation error"... In the wiki auto installation, I miss this part, which was important : reboot and push in the same time the 'check' and 'X' button (from the gamepad). Then the problem was gone

The battery seems to last around two hours... there is still a problem, the indication are not accurate in the sugar interface.

I realized that there is a problem with NAND flash, few bad blocks, and sometimes got a CRC error...

No sound for TamTam, but there is sound with the XO, I tried mplayer which plays fine ogg files (tryad on - Public Domain :-)

I tested the "Watch & Listen", too few possibilities concerning the video format. Wondering if I can use mplayer as a backend for "Watch & Listen" - mplayer supports a lot of files, and works well on the XO.

I've got a very weird problem with my home access point (Inventel The XO cannot connect to this ap out of the box. There is a functionnality called "association mode", a kind of mac filtering. When you push a button on the ap, filtering is disactivate and all wireless computer can connect to the ap. Their MAC address are stored into the ap memory, and when the "association mode" is over, new wireless computer cannot connect anymore. I tested the XO to other APs, and there is no problem... But with this ap, it can connect during the "association mode", and when I reboot the XO, it cannot connect anymore although I can see that the MAC address is registred into the APs. My first hypothesis was that there was a problem with the ipv6 module, but it wasn't that. Now I would try to disactivate the mesh functionnality, to test if the problem come there.

Build 649

  • Linux 2.6.22-20071121
  • Firmware Q2D05
  • Build 649
  • driver libertas - COM-USB8388-322.p1.dbg - firmware 5.110.20.p42 (with ethtool -i eth0)

Still a problem with the Inventel AP - maybe "wrong MAC address" problem ? (ticket 4637) - problem mysteriously gone ...

Build Joyride

bleeding edge is

Mysterious Update to Build 656

This night, starting the XO with an update I didn't ask for ! Throw all the software I've installed before, lot of work gone away. I remember to let the xo with Sugar open into a room with an open wireless access, so I guess that the system has been automatically updated during this period. Even if I understand why it was configured like this (children are supposed to not customize their XO with their own rpm package ?), next time I'll try to figure out how to disactivate this annoying feature when you are developer. Fortunately my home directory is intact. Probably the olpc-update-query is involved in this mysterious update, so I'll try to figure out how to disable this feature.

  • Linux 2.6.22-20071231
  • Firmware Q2D05

Back to 656

  • Linux 2.6.22-20070927
  • Firmware Q2D16

After some hazardous manipulation on my system (tried to wipe out the 656 tree and to keep the joyride one), it ended to be a mess and nothing worked anymore. So I made a clean install of the 656 (see tips and tricks below), and update to debian-big. In that way, I can get a working debian installation. Maybe I would be able to fix the crazy mouse problem I have when I try to install a debian by myself from scratch...

OLPC initiative in questions

Here as some piece of thoughts about the olpc initiative.

My post is all about technology openness and design. I say that the OLPC                                                                                                 
laptop was not design to be a bridge between old and new technology. This                                                                                                
is a design choice I disagree with. A technology, especially when                                                                                                        
the design is done with an educational perspective, must be open,                                                                                                        
and reasonable backward compatible with old tech. So the current                                                                                                         
OLPC laptop is closed in regards of old technology. These old hardware                                                                                                   
exist in various quantities, depending the level tech of the country :                                                                                                   
from none to plenty. An open design is a design which does not make                                                                                                      
hypothesis or theory on the interest of reusing or not. An open design                                                                                                   
open possibilities, and that's all. Reusing is a possibility which must                                                                                                  
be opened.                                                                                                                                                               
The olpc laptop was designed without taking into account the old tech                                                                                                    
reusing possibility : this is a fact and a choice of the designers. We                                                                                                   
can have a lot of theory about "why poor people does not need to reuse                                                                                                   
old technology with this newest one". But this is a prejudice on how                                                                                                     
people should use technology, and prejudice is closeness.                                                                                                                
Open technology means also putting into the public domain all the PCB                                                                                                    
design, put everything related to the OLPC laptop hardware into the public                                                                                               
domain. So that everybody can gain knowledge about it, and enhance it. In                                                                                                
fact, the essence of the OLPC laptop is not in the current hardware,                                                                                                     
but in a way to build an energy saving efficient laptop. The current                                                                                                     
hardware is the "compiled" form of the way to build it, which is the                                                                                                     
"source". If the initiators are interested in openness, education and                                                                                                    
freedom, the "source" will be put into the public domain and compiled                                                                                                    
by maybe major industrial manufacturers.                                                                                                                                 
I think that there is also another major and deeper design problem                                                                                                       
into the OLPC initiative. The way to spread the hardware is not the                                                                                                      
right one, to my sense. Too much people between the people who give                                                                                                      
and the children. There is a lot of corruption into the government,                                                                                                      
even the developed one. The hypothesis is that everything will be ok
with governments, but let's face the fact. Just study the problem the                                                                                                    
ONG have when they try to send food to poor countries. The 100$ Laptop                                                                                                   
may sound cheap for rich countries, but 100$ is a lot of money into                                                                                                      
poor countries. Inevitably, it will imply a parallel market to sell the                                                                                                  
offered laptops. You can try to avoid it, but this is a lost of energy :                                                                                                 
trying to avoid the unavoidable. When you are hungry or want money,                                                                                                      
an OLPC laptop is not a fun computer anymore, but a way to survive 3 to                                                                                                  
6 months. A relevant approach in my view is to weave an international                                                                                                    
educational network in cooperation with all the ong working locally. Ong                                                                                                 
know locally what is going on, we know each child to which we are giving                                                                                                 
a laptop or a computer. An ong is a non profit organization. A government                                                                                                
is a profit organization : the profit can be for instance to be elected                                                                                                  
the next time. So it introduces a bias into the hardware distribution.                                                                                                   
So to my sense, and as a person deeply interested in such an                                                                                                             
educational process, rethinking the whole design must necessary take                                                                                                     
into account :                                                                                                                                                           
- openness design                                                                                                                                                        
- old tech backward compatible                                                                                                                                           
- put the source onto the public domain                                                                                                                                  
- don't spend energy to avoid theft, this is an human mechanism,                                                                                                         
  workaround will be find by stealers if you try to control it                                                                                                           
- give the possibility to industrials to build the laptop by                                                                                                             
  themselves, it will lower the cost                                                                                                                                     
- work to build an international ong network, working locally is                                                                                                         
  efficient, broadcasting the hardware is a blind way to work                                                                                                            
So I know that there is a lot of pressure onto the initiative, but                                                                                                       
consider that when acting under pressure, this is not an efficient action                                                                                                
at all, just a reaction. Don't take what I'm saying as an attack, but                                                                                                    
only as some remarks by a person deeply interested by the initiative.                                                                                                    


I've received an usbvga dongle kindly offered from an olpc dev guy (Thanks Josh !). The unit works fine with XP. This unit is from MCT, the UVT-100 (see ) one. Seems to be the cheaper one, I dismantled it but unfortunately the graphic chipset is just behind a cooling component, so I can't read what kind of chipset is used. But thanks to Johnathan, I get a piece of code to start with.

More on the USB2VGA UVT-100 dev page


Here are some hints to install a debian on an SD card for the XO.

  • Bootstrap : cfdisk /dev/mmcblk0 and create a new partition. Then mkfs.ext2 it. The ext2 fs seems to be appropriate since the wear leveling is not an issue for an SD-card (as far as I understand). Mount it on /mnt with the dev options - mount -o dev ... - necessary to avoid a /dev/null error. Then the command line to install a lenny (testing release) is :
 debootstrap --include=udev,wireless-tools lenny /mnt

At the end, you should have a minimal debian distribution (around 200M), but without kernel nor modules.

  • Chroot : to chroot correctly, you have to add this option on the fstab of your host system
echo "proc /mnt/proc proc none 0 0" >> /etc/fstab

Then mount /mnt/proc and chroot /mnt /bin/bash and add the olpc user :

# addgroup --gid 500 olpc
# adduser --uid 500 --gid 500 olpc
passwd -d olpc # delete the olpc password

(export LC_ALL=C if you are in a non-english system, to avoid perl errors)

So you can now apt-get install packages.

  • Kernel - at this stage, you can compile your own kernel, copy it from an OLPC image or apt-get it. To test quickly our install, I recommend the third one as a quick start.
cd /tmp
dpkg -i lin<TAB>

You can verify that the kernel and modules are installed in /boot and /lib/modules/2.6.22

Put on the fstab :

/dev/mmcblk0p1   /                       ext2    defaults,noatime 1 1
devpts                  /dev/pts                devpts  gid=5,mode=620    0 0
tmpfs                   /dev/shm                tmpfs   defaults,size=15% 0 0
proc                    /proc                   proc    defaults          0 0
sysfs                   /sys                    sysfs   defaults          0 0

Unmount /mnt/proc and /mnt

  • Boot : Plug the SD-card on the XO, boot the XO and ESC.

type :

setenv boot-file ro root=/dev/mmcblk0p1 rootdelay=1 console=ttyS0,115200 console=tty0
boot sd:\vmlinuz

I've tested a lot of kernel options (what is append to boot-file), and this one seems to be minimal. You can append too fbcon=font:SUN12x22 for more readability. So then you can log as root or olpc and see if your system is booting correctly.

  • Adapt : we have to adapt now the debian to our XO system. You can do that either from you XO system or from your host system by chrooting on the SD card as stated before. (besides setting hostname, better to do that from your XO system)

As root mkdir -p {/ofw,/versions,/security,/var/cache/apt/cache,/selinux} replace /etc/hostname with xo or whatever you want.

wget (libertas wifi firmware) and put it in /lib/firmware under the name "usb8388.bin"

In /boot, insert olpc.fth with the following contents :

\ Boot script for SD Boot
" ro root=/dev/mmcblk0p1 rootdelay=1 console=ttyS0,115200 console=tty0 fbcon=font:SUN12x22" to boot-file
boot sd:\vmlinuz

At this stage, Xo should boot directly on the SD-card, and wifi should work.

  • Custom : This is my personal customization. A system with useful command line packages (a kind of TTYLinux distrib - TODO). Monitoring, minimal footprints...
 ssmtp mutt slrn
lynx  links2
weechat-curses bitlbee
less most (colorized pager)
screen wcalc mc ppp pppconfig vim psmisc (include pstree)
pciutils usbutils
openvpn ssh sudo
mplayer w32codecs moc aumix
locales console-tools console-data console-common

MinimalXLinux (minimal footprint)
rxvt-unicode-lite awesome qiv xpdf
For the XO:
xserver-xorg-video-geode dbus
xfonts-base xfonts-100dpi xfonts-scalable

Replace "amd" Driver section, with "geode"

sources.list (in France)

deb testing main contrib non-free
deb testing main

Then apt-get update Don't let the machine think for you : create /etc/apt/apt.conf.d/02pref with

APT::Install-Recommends "N";
APT::Install-Suggests "N";
  • X server: apt-get install xserver-xorg-video-geode

for i in plugdev audio video ; do adduser olpc $i ; done

  • Hints : if you want to pick some files from an XO image, you have to use losetup and /dev/loop
 losetup -o 31744 /dev/loop0 xo.img
mount -o loop /dev/loop0 /floppy

The number 31744 is determined by fdisk -lu xo.img and by multiplying the start sector by 512 bytes (in my case, Start is 62).

  • Note:
    • I get some problems to make the mouse working under X server, so I updated lenny to sid.

Tips and Tricks

  • SD-card and jffs2 : jffs2 is the more accurate filesystem to use with this kind of flash memory, but currently need the blkmtd kernel module to be able to mount the SD-card, if the card is formatted it with jffs2.

But jffs2 seems ok only for small drive

  • Clean installation : I messed up my system a little while by experimenting some configurations, so to wipe out all the junk stuff and for a clean reinstallation, there is a wiki page :
  • Wifi on console mode : to use iwconfig on console mode, first stop NetworkingManager and NetworkingManagerDispatcher services, and it will work.
  • Installing grub on olpc is possible : see


  • Big problem with man pages, there are all squizzed... Same with doc. Investigations on the process, before filling a track. The system is globally not self-documented, which is an issue when talking about education.
  • Learn to use /dev/shm (tmpfs) to minimize access on the flash card (they might last longer)
  • Problem with X11 fonts (we cannot add more fonts)

Currently working on

  • Power the olpc XO with the couple battery/solar panel
  • Accurate measurements of the power consumption
  • Robotic modules for the XO
  • VGA output for the XO (useful for demonstrating the XO by itself and for pedagogical purpose)
  • Bluetooth connection
  • Debian-olpc