Debian OLPC howto
This tutorial shows the steps that we've done to run Debian in OLPC, including problems. You can help us with suggestions(Francisco Alecrim <francisco.alecrim@indt.org.br> ; Anderson Briglia <anderson.briglia@indt.org.br>).
Feel free!!!
Preparing USB disk
Download an [http://olpc.download.redhat.com/olpc/streams/development/latest/devel_ext3/ olpc image]. We're using olpc-redhat-stream-development-devel_ext3-tree.
wget http://olpc.download.redhat.com/olpc/streams/development/latest/devel_ext3/olpc-redhat-stream-development-devel_ext3.img.bz2
Copy OLPC image to your pen drive(1Gb).
bunzip2 olpc-redhat-stream-development-devel_ext3.img.bz2 dd if=olpc-redhat-stream-development-devel_ext3.img of=/dev/sdb bs=1M sync
After it, you can put the pen drive in your OLPC and test it booting by the pen drive.
We did a backup of OLPC filesystem.
mount /dev/sdb1 /media/OLPCRoot cd /media/OLPCRoot tar -cvzpf olpc_filesystem_backup.tar.gz *
And copied and extracted it on our home.
mkdir ~/olpc_root ; cd ~/olpc_root tar -xvzpf olpc_filesystem_backup.tar.gz
Erase the old olpc filesystem and create a simple debian filesystem. BE CAREFUL !!!!!
cd /media/OLPCRoot rm -rf * debootstrap etch /media/OLPCRoot http://ftp.br.debian.org/debian/
Now you have a simple debian filesystem in our pen drive. Let's modify!!!!
Reference:
[http://wiki.laptop.org/go/OS_images_for_USB_disks OS_images_for_USB_disks]
File system
New kernel
Download olpc kernel source using git(9418/tcp) :
git clone git://dev.laptop.org/olpc-2.6
Configure it using the config that is available in OLPC filesystem. Compile kernel and modules.
cp ~/olpc_root/boot/config-2.6.21-20070406.2.olpc.051789d5548a5a3 .config make make modules
Install modules:
make modules_install INSTALL_MOD_PATH=/media/OLPCRoot
Copy all /boot files from the OLPC filesystem to debian /boot.
cp -rv ~/olpc_root/boot/* /media/OLPCRoot/boot/.
Install the new kernel:
cp System.map /media/OLPCRoot/boot/System.map-2.6.21-rc7 cp arch/i386/boot/bzImage /media/OLPCRoot/boot/vmlinuz-2.6.21-rc7 cd /media/OLPCRoot/boot ln -sf vmlinuz-2.6.21-rc7 vmlinuz
Reference:
[http://wiki.laptop.org/go/Kernel_Building OLPC wiki kernel building]
Basic modifies
Some simple configuration files:
* Users (passwd)
cp /etc/passwd /media/OLPCroot/etc/passwd
* Passwords(shadow)
cp /etc/shadow /media/OLPCroot/etc/shadow
* Machine name(hostname)
cp /etc/hostname /media/OLPCroot/etc/hostname
* Machines available (hosts)
cp /etc/hosts /media/OLPCroot/etc/hosts
* Debian repository () Mount point (/media/OLPCroot/etc/fstab), you can copy from OLPC filesystem. Modules necessary(/media/OLPCroot/etc/modules). Now you can test a basic boot with your new debian filesystem. Simple and fast!!!
We install xserver-xorg, x-window-system and fluxbox in OLPC. We did find a generic configuration to start up X server. OLPC uses a VGA AMD video and we don't have it available on debian, but it's already requested, as you can see [http://www.debian.org/devel/wnpp/requested here]. Plug the pen drive in your desktop again(it's more fast than OLPC). We compiled the new driver and install it in debian filesystem. Some development packages are required to compile xserver-xorg-video-amd (eg: x11proto-xf86vidmode-dev, x11proto-xf86dga-dev, xserver-xorg-dev and some more). We had some problems with it and we didn't found the perfect configuration yet, but you can test X server using the configuration below. Mouse is NOT working.
I don't know the module necessary to solve the problem with the mouse. AMD driver is not working yet.
Boot up debian on olpc and test your x server:
[http://picasaweb.google.com/alecrim/Olpc Debian OLPC pictures] [http://picasaweb.google.com/alecrim/Olpc/photo#s5067408665930377378 Pictures slideshow] Feel free !!!!! Comments and helps are welcome !!!! References: Testing xorg.conf gave by [http://mailman.laptop.org/pipermail/devel/2006-August/001450.html Jim]. [http://www.linutop.com/wiki/index.php/Graphic_Driver Xorg amd] Created by: Francisco Alecrim <francisco.alecrim@indt.org.br> Anderson Briglia <anderson.briglia@indt.org.br> cp /etc/apt/sources.list /media/OLPCRoot/etc/apt/sources.list
LABEL=OLPCRoot / ext3 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
olpc_battery
i2c_dev
mousedev
joydev
snd_cs5535audio
snd_seq_dummy
snd_seq_oss
snd_pcm_oss
ov7670
cafe_ccic
usb8xxx
psmouse
serio_raw
asix
cpuid
msr
Xorg
apt-get install xserver-xorg x-window-system fluxbox
git clone git://anongit.freedesktop.org/git/xorg/driver/xf86-video-amd.git
./autogen.sh --prefix=/media/OLPCRoot/usr
make
make install
vim /media/OLPCRoot/etc/X11/xorg.conf
xorg.conf
Section "ServerLayout"
Identifier "Default Layout"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "Module"
Load "extmod"
Load "freetype"
Load "evdev"
EndSection
Section "ServerFlags"
Option "AllowMouseOpenFail" "yes"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pc105"
Option "XkbLayout" "us"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "IMPS/2"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5"
Option "Emulate3Buttons" "yes"
EndSection
Section "InputDevice"
Identifier "Mouse"
Driver "evdev"
Option "evBits" "+1-2"
Option "keyBits" "~272-287"
Option "relBits" "~0-2 ~6 ~8"
Option "Pass" "3"
EndSection
# since we don't have DDC implemented on the VGA port, we set
# the defaults resolution and vertical refresh to be as generic
# as possible, setup for a flat panel and/or projector.
# Feel free to customize to meet your needs.
Section "Monitor"
Identifier "Monitor0"
VendorName "Generic"
Option "dpms"
HorizSync 30-67
VertRefresh 60
EndSection
Section "Device"
Identifier "Geode"
#Driver "amd"
Driver "fbdev"
VendorName "Advanced Micro Devices, Inc."
BoardName "AMD Geode GX/LX"
# disable VGA BIOS execution for the OLPC board
Option "NoVGA" "true"
# Specify the frame buffer size
Option "FBSize" "8388608"
Option "AccelMethod" "EXA"
Option "NoCompression" "true"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Geode"
Monitor "Monitor0"
DefaultDepth 16
SubSection "Display"
Depth 16
Modes "1024x768"
EndSubSection
SubSection "Display"
Depth 24
FbBpp 32
Modes "1024x768"
EndSubSection
EndSection
Xorg.log
(**) Option "Protocol" "IMPS/2"
(**) Mouse0: Device: "/dev/input/mice"
(**) Mouse0: Protocol: "IMPS/2"
(**) Option "CorePointer"
(**) Mouse0: Core Pointer
(**) Option "Device" "/dev/input/mice"
(EE) xf86OpenSerial: Cannot open device /dev/input/mice
No such file or directory.
(WW) Mouse0: cannot open input device
(**) Option "Emulate3Buttons" "yes"
(**) Mouse0: Emulate3Buttons, Emulate3Timeout: 50
(**) Option "ZAxisMapping" "4 5"
(**) Mouse0: ZAxisMapping: buttons 4 and 5
(**) Mouse0: Buttons: 9
(**) Option "CoreKeyboard"
(**) Keyboard0: Core Keyboard
(**) Option "Protocol" "standard"
(**) Keyboard0: Protocol: standard
(**) Option "AutoRepeat" "500 30"
(**) Option "XkbRules" "xorg"
(**) Keyboard0: XkbRules: "xorg"
(**) Option "XkbModel" "pc105"
(**) Keyboard0: XkbModel: "pc105"
(**) Option "XkbLayout" "us"
(**) Keyboard0: XkbLayout: "us"
(**) Option "CustomKeycodes" "off"
(**) Keyboard0: CustomKeycodes disabled
(II) XINPUT: Adding extended input device "Keyboard0" (type: KEYBOARD)
(II) XINPUT: Adding extended input device "Mouse0" (type: MOUSE)
xkb_keycodes { include "xfree86+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compatibility { include "complete" };
xkb_symbols { include "pc(pc105)+us" };
xkb_geometry { include "pc(pc105)" };
(EE) xf86OpenSerial: Cannot open device /dev/input/mice
No such file or directory.
(WW) Mouse0: cannot open input device
FreeFontPath: FPE "/usr/share/fonts/X11/misc" refcount is 2, should be 1; fixing.
Testing
startx
Pictures