Title: Introduction to Openmoko
1Introduction to Openmoko
By Deepank Gupta Contact deepankgupta_at_gmail.co
m
08/18/07
2Introduction To Openmoko
- What is Openmoko?
- Why OpenMoko?
- Neo1973 What is it?
- Developing applications
- QEMU For those who dont own a phone
- Phone demo.
3What is OpenMoko?
- Openmoko is a software stack.
- It is not tied to any particular mobile phone.
- Has u-boot bootloader.
- 2.6.x based kernel.
- Support certain core services udev, dbus, ssh,
blueZ, gsm, gps. - Contains an application framework.
4(No Transcript)
5Why OpenMoko?
Phone with Openmoko
Ordinary Phone
For Mobile Kommunikations
- Contains basic features and can upgrade to have
any software or feature. - Gives developers capability and FREEDOM to easily
create and deploy applications.
- Customized platform and limited applications.
- No way for developers to create applications
services for all users. No common GUI platform or
open device drivers.
For open source
6The Winning Formula
Openmoko brings forth the POWER of Open Source to
Mobile Phones.
7(No Transcript)
8Whats so great about Neo?
- Great Hardware Powerful processor, touch
screen, good memory. - Stylish design
- Open Source drivers except GSM,GPRS
- Still no Wi-Fi or camera.
9Current State
What neo can do
What neo cant do
- Send and receive calls.
- Using remote terminal to the phone.
- Play songs.
- Run applications like calculator.
- Work on applications such as dialer, media player
is still on. - Take pictures.
- Power consumption is a bit on higher side.
10How can you help?
Its your phone make it the way you want it to be.
- Help with power management and other issues.
- Make some great applications for the phone.
- Bring in some great ideas.
- Help with fixing bugs.
- Test for bugs.
11Installing OpenMoko SDK its easy
- Install Openembedded Prerequisites
- mkdir moko
- cd moko
- wget http//svn.nslu2-linux.org/svnroot/mokomake
file/branches/OM-2007.2/Makefile - make setup
- make openmoko-devel-image
12What is OpenEmbedded?
- Successor of openZarus projects.
- Software framework to develop Linux distros for
embedded devices. - Consists of metadata for various architectures.
- Has bitbake recipes for many many packages.
13Process of making images
14Oh no another build tool Bitbake
- Handles cross-compilation and inter-package
dependencies - Supports running any number of tasks and not
limiting to fetching sources, compiling and
building. - It is Linux distribution and architecture
agnostic - Provides inheritance mechanism to share metadata
among packages. - Supports embedded python code!
15Hello World bitbake recipe
DESCRIPTION "Hello world program PR
"r0 SRC_URI "file//myhelloworld.c \
file//README.txt do_compile() CC
CFLAGS LDFLAGS WORKDIR/myhelloworld.c -o
myhelloworld do_install() install -m 0755
-d Dbindir Ddocdir/myhelloworld inst
all -m 0644 S/myhelloworld Dbindir
install -m 0644 WORKDIR/README.txt
Ddocdir/myhelloworld
16QEMU Emulator
- Can emulate most of the hardware.
- Does not support AGPS.
- Get through Mokomakefile make qemu
- Can even emulate for Windows!
- So, build applications and run them using QEMU
17Lets move to the demo.
18U-boot mode
- Remove all cables
- Press the power and the auxiliary button for 5
seconds. - Phone enters into u-boot mode.
- Connect it to the host using usb cable.
08/18/07
19Flashing OpenMoko
- Download pre-built images and dfu-util.
- Run dfu-util on host side.
- Put kernel, root file-system and uboot in the
phone.
- wget r http//people.openmoko.org/mickey/images/
- wget http//buildhost.openmoko.org/tmp/deploy/imag
es/dfu-util - ./dfu-util --list
- ./dfu-util -a 1 -R -D uboot.bin replace
uboot.bin with the exact filename - ./dfu-util -a 3 -R -D ./uImage.bin
- ./dfu-util -a 5 -R -D ./openmoko-devel-image.rootf
s.jffs2
08/18/07
20Some phone applications
21Getting remote terminal access
- ifconfig usb0 192.168.0.200 netmask
255.255.255.0 - ping 192.168.0.202
- ssh root_at_192.168.0.202
08/18/07
22Some useful commands
- (sleep 1 echo mem gt /sys/power/state) exit
- Starting and stopping gsmd.
- libgsmd-tool m shell
- madplay file_name
- Using netcat to transfer files.
08/18/07
23References
- http//www.wiki.openmoko.org
- Bitbake User Manual
- http//www.openembedded.org
- http//www.people.openmoko.org/mickey/images
- FOSDEM 2007 Talk
08/18/07
24Thank You
Questions?
08/18/07