Monday, April 20, 2009

Running OLPC 8.2 in VirtualBox

It is well known that OLPC build 767 (8.2) can not be run in VirtalBox / VMWare due to the absent of 3Dnow instruction in the virtual machine. 3DNow is an extension to the x86 instruction developed by AMD. As VirtualBox / VMWare don't have any plan to support 3DNow instruction , it need to customize the OLPC image by ourself in order to run on those platform.

The method is not available in wiki.laptop.org , therefore , I have to figure out by myself. And it is the result:

(The instruction is not completed, because I am not familiar with Fedora. Please feel free to comment and suggest improve method. Soon it is ready , I will post to wiki.laptop.org )

Preparation:
  1. Follow the instruction Virtual Box - OLPC
    1. Download the ext3 image
    2. Setup the Virtual Machine
    3. Convert the ext3 image by using the "VBoxManage convertd" command
  2. Download Ubuntu Live Image (e.g 8.10)
Boot the virtual machine with the Ubuntu Live Image.

1. Mount OLPCRoot by using the menu : Places -> OLPCRoot

2. Open Terminal , run the command below:
mount -t none /dev /media/OLPC/dev -o bind
cp /etc/resolv.conf /media/OLPCRoot/etc/resolv.conf
chroot /media/OLPCRoot
mount /proc
mount /sys
3. Now you are under a chroot environment , you need to edit few files and install few packages:

3.1 Edit /etc/yum.repos.d/fedora.repo

Found the line "include=file:///etc/yum/olpc-exclude" and comment it

3.2 Install standard kernel :
yum -y install yum-allowdowngrade

yum --allow-downgrade -y install kernel.i686
3.3 Add the new kernel config to /boot/grub/grub.conf
title Standard Fedora Kernel
root (hd0,0)
kernel /boot/vmlinuz-2.6.25-14.fc9.i686 ro vga=0x317 video=vesafb:ypan sellinux=0 console=ttyS0,115200 console=tty0 emu
initrd /boot/initrd-2.6.25-14.fc9.i686.img
3.4 Reboot the Virtual Machine , and remove the LiveCD iso image. Now VirtualBox should be able to boot OLPC 8.2

Known Issue:
  1. USB auto mount is working , but the mounted drive can not be shown in Journal

Sponsor