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'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 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. 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 work.
- 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 mime-support Web: lynx links2 IM: weechat-curses bitlbee Pager: less most (colorized pager) Tools: screen wcalc mc ppp pppconfig vim psmisc (include pstree) System: pciutils usbutils Monitoring: htop Security: openvpn ssh sudo Multimedia: mplayer w32codecs moc aumix i18n: locales console-tools console-data console-common Laptop-specific: anacron Misc: MinimalXLinux (minimal footprint) rxvt-unicode-lite awesome qiv xpdf
For the XO: xserver-xorg-video-geode dbus xfonts-base xfonts-100dpi xfonts-scalable xbase-clients Replace "amd" Driver section, with "geode"
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
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 : http://wiki.laptop.org/go/Secure_reflash
- 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 http://grub.enbug.org/OLPC
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