OLPC-XO
From IPRE Wiki
This page is devoted to getting Myro running on the OLPC XO laptop.
The hardest bit was getting bluetooth working on the laptop. I used the cellink USB bluetooth adapter which I have used on Ubuntu previously. The kernel drivers for bluetooth aren't provided and had to be compiled separately. After fighting with git to get the olpc kernel sources, this was pretty easy. We also have to compile a program (passkey_agent) to authenticate (send the bluetooth PIN) to the fluke. The normal gnome bluetooth applet that fedora 6 (which the OLPC OS is based on) uses won't work on the XO. The bluetooth binaries for the OLPC can be downloaded here:
wget http://cvs.cs.brynmawr.edu/cgi-bin/viewcvs.cgi/*checkout*/Myro/packages/olpc-bluetooth.tgz?rev=HEAD
Contents |
Overview
You will need to:
- insert the modules,
- start the bluetooth service,
- and run passkey-agent every time the laptop boots
A way to automate these tasks is listed below.
Bluetooth
Next, we need configure bluetooth.
su # no password needed tar -xvzf olpc-bluetooth.tgz
cd olpc-bluetooth /sbin/insmod bluetooth.ko /sbin/insmod hci_usb.ko /sbin/insmod l2cap.ko /sbin/insmod rfcomm.ko
yum install bluez-utils bluez-libs
Edit /etc/bluetoth/rfcomm.conf and setup your fluke (change the "device line" to your fluke's bluetooth address)
nano /etc/bluetooth/rfcomm.conf
rfcomm0{
bind yes;
device 02:02:5B:00:59:65;
channel 1;
}
/etc/init.d/bluetooth start ./passkey-agent --default "1234" & rfcomm bind all
Software
You also need to install pyserial, tkinter, and pyImaging. You can install these via yum on the XO:
yum install pyserial yum install tkinter yum install python-imaging #(although wrong version)
Next, download myro and install that
mkdir myro wget http://myro.roboteducation.org/download/myro-2.6.5.zip unzip myro-2.6.5.zip python setup.py install
I also installed the 1.1.6 version of pyImaging from sources since myro checks for that version, but not sure we have to do that. For that you need to install gcc and tk-devel.
yum install gcc tk-devel
Then install Imaging from sources.
wget http://effbot.org/downloads/Imaging-1.1.6.tar.gz tar -xvzf Imaging-1.1.6.tar.gz cd Imaging-1.1.6 python setup.py install
If you want the IM features of myro install xmpppy.
Enter a python shell
python
>>> from myro import *
>>> init('/dev/rfcomm0')
>>> beep(1, 440)
Running Myro
Since the XO uses a weird window manager, the images and joystick are kind of strange although usable. Just use alt-tab/alt-ctrl-tab to flip forward/backward through the windows. Maybe we could create a sugar interface and use pygame for the imaging and joystick features since there is an olpc wrapper around pygame.
Automatic Startup
If you don't want to type in all of the code to start up bluetooth every time you reboot the XO, try the following:
nano load_bluetooth.sh
Edit the file to read:
#!/bin/sh cd olpc-bluetooth /sbin/insmod bluetooth.ko /sbin/insmod hci_usb.ko /sbin/insmod l2cap.ko /sbin/insmod rfcomm.ko /etc/init.d/bluetooth start ./passkey-agent --default "1234" & rfcomm bind all
Save the file and make it executable by typing the following into the terminal:
chmod +x load_bluetooth.sh
To run it, type:
sh load_bluetooth.sh
This file should be located wherever the olpc-bluetooth folder is on your computer.
