18
 Introduction to OpenMoko CS 553 – Internet Services Pravin Shankar spravin@cs

Introduction to OpenMoko - Computer Sciencebadri/553dir/notes/openmoko-cs553.pdf · Course Logistics OpenMokobased course project – to be posted on class website this week Each

  • Upload
    others

  • View
    24

  • Download
    0

Embed Size (px)

Citation preview

   

Introduction to OpenMoko

CS 553 – Internet ServicesPravin Shankar

spravin@cs

   

What is OpenMoko?

● Linux­based SmartPhone platform– Hardware (Neo Freerunner 1973)– Software (Om 2008.8)

● Wifi/GPS/GPRS/Bluetooth/... etc.● Open Source hardware and software

   

Course Logistics

● OpenMoko­based course project– to be posted on class website this week

● Each student gets a phone for development● LCSR contacts:

– Rick Crispin ­ crispin@cs– Lars Sorensen ­ biglars@cs– For issuing tickets ­ help@cs

● Known Issues with phone:– Battery

   

   

The Hardware – Neo FreeRunner

● 500 MHz Samsung (ARM) Processor● 128 MB SDRAM, 256 MB NAND Flash● Touchscreen● Wifi – 802.11b/g Atheros­based chipset● GPS/AGPS● GSM/GPRS● Accelerometer – 2 tri­axis sensors

   

The Software ­ OM2008.8

● OS ­ Linux 2.6.24● Languages ­ C/Java/Python/...● GUI ­ X11/Qtopia● uBoot● Installer – opkg● Emulator – QEMU

   

SSHing to the phone

● Over USB– ifconfig usb0 192.168.0.200 netmask 255.255.255.0– ssh [email protected]

● Over wireless– On LAWN, you can:

● ssh ­p 11047 root@lawn­gw.rutgers.edu● X11 support (ssh ­X)

   

Flashing a new Firmware/OS

● DFU­util (Device Firmware Update)– update kernel and rootfs images

● Alternates– Install to a microSD card– QEMU

   

Installing sw using opkg

● Example (installing a web server ­ apache)– cd /etc/opkg– wget http://buildhost.automated.it/scaredycat.conf– opkg update– opkg install apache2

   

Developing using C

● Cross­compiler– http://downloads.openmoko.org/toolchains/– tar ­xvjf ~/openmoko/openmoko­i686­arm­linux­

gnueabi­toolchain.tar.bz2– /usr/local/openmoko/arm/bin/arm angstrom linux­ ­ ­

gnueabi gcc o foo foo.c­  ­    – scp foo root@openmoko:~/

   

Developing using Java

● Cacao: – JVM implementation for OpenMoko–  http://www.cacaojvm.org/ 

   

Developing using Python

● As simple as:– opkg install python­core

● Graphical API:– GTK– ETK

   

MokoMakeFile

● Useful wrapper Makefile:– wget 

http://svn.projects.openmoko.org/svnroot/mokomakefile/trunk/Makefile

● Examples:– make image– make toolchain– make qemu

● Refer for more: http://wiki.openmoko.org/wiki/MokoMakeFile 

   

Wifi

● eth0 – Atheros AR6K driver– Same commands as on a regular Linux laptop 

(iwconfig/iwlist/dhclient/...)

   

GPRS

● http://wiki.openmoko.org/wiki/Manually_using_GPRS● Chat script using pppd

   

GPS

● GPSD– opkg install gpsd– gpsd /dev/ttySAC1– nc localhost 2947– r

● Graphical tool – TangoGPS– http://www.tangogps.org/gps/ – Fetches maps from OpenStreetMap

   

Accelerometer

● http://wiki.openmoko.org/wiki/Accelerometer● Two sensors:

– /dev/input/event2 and /dev/input/event3● Test python program (acc.py)● More sophisticated app – Gestures

– http://wiki.openmoko.org/wiki/Gestures 

   

Additional resources

● Openmoko Wiki:– http://wiki.openmoko.org/wiki/Main_Page – Google :­) 

● <search term> site:http://wiki.openmoko.org/wiki/● Planet Openmoko ­ http://planet.openmoko.org/ ● Source Code (git repo) http://git.openmoko.org/ ● Mailing list:

– http://lists.openmoko.org/mailman/listinfo/