User:Samir
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 jamendo.com - 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 www.porciello.com/inventel/astuces.htm) 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 http://xs-dev.laptop.org/~cscott/olpc/streams/joyride/latest/devel_jffs2/
Mysterious Update to Build 656
This night, starting the XO with an update I didn't ask for ! Throw all the software I 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
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 etc... 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. Cheers, Samir
USB2VGA
- Tested unit : UVT-100 from MCT, also known as eMagic UTV-100 SXGA adapter
- Driver : http://cs.chipsetcomm.com.tw/support/download/USB2.0_TO_VGA.rar
- Spec : chipset unknown
- lsusb gives : 0711:5001
- Need USB 2.0
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 http://www.esysmall.com/detail_prod.asp?prod_Id=5544 ) 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
Debian-OLPC
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 http://http.us.debian.org/debian/
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 wget http://queued.mit.edu/~dilinger/builds-master/linux-image-2.6.22_20080124.olpc.c2fb2ff45da8412_i386.deb 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 http://dev.laptop.org/pub/firmware/libertas/usb8388-5.110.22.p8.bin (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 show up when proceeding with iwconfig command.
- Custom : This is my personal customization. A system with useful command line packages (a kind of TTYLinux distrib - TODO). Monitoring, minimal footprints...
TTYLinux: Mail/News: ssmtp mutt slrn Web: lynx links2 IM: weechat-curses bitlbee Tools: screen moc aumix wcalc most mc ppp pppconfig vim Monitoring: htop Security: openvpn ssh Multimedia: mplayer w32codecs i18n: locales console-tools console-date console-common Misc: mime-support MinimalXLinux (minimal footprint) rxvt-unicode-lite awesome qiv xpdf
For the XO: xserver-xorg-video-geode dbus xfonts-base xfonts-100dpi xfonts-scalable
sources.list (in France)
deb http://ftp.fr.debian.org/debian testing main contrib non-free deb http://www.debian-multimedia.org 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
- 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).
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.
Notes
- 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