263 lines
6.4 KiB
Plaintext
263 lines
6.4 KiB
Plaintext
%include "default.mgp"
|
|
%default 1 bgrad
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%page
|
|
%nodefault
|
|
%back "blue"
|
|
|
|
%center
|
|
%size 7
|
|
|
|
|
|
OpenMoko
|
|
What, Why and How
|
|
|
|
|
|
%center
|
|
%size 4
|
|
by
|
|
|
|
Harald Welte <laforge@openmoko.org>
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%page
|
|
OpenMoko
|
|
Contents
|
|
|
|
Introduction
|
|
What is Free Software?
|
|
What is the FOSS Community?
|
|
People / Groups involved
|
|
Development Process
|
|
Motivations
|
|
FOSS likes
|
|
FOSS disliks
|
|
Weak Points
|
|
Practical Rules
|
|
Thanks
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%page
|
|
OpenMoko
|
|
Introduction
|
|
|
|
Who is speaking to you?
|
|
|
|
an independent Free Software developer, consultant and trainer
|
|
who is a member of the free software community for 10 years
|
|
who has worked a lot on the Linux kernel
|
|
who had originally started OpenEZX for Motorola phones
|
|
and who was Lead System Architect for OpenMoko until early November 2007
|
|
|
|
Why is he speaking to you?
|
|
|
|
because every working day he suffers the lack of understanding between the community and the business world
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%page
|
|
OpenMoko
|
|
Neo1973 GTA01 hardware
|
|
|
|
Neo1973 GTA01 hardware
|
|
SC2410 SoC @ 266MHz
|
|
480x640 LCM, 262k colors
|
|
128MB SDRAM
|
|
64MB SLC NAND (512/16k)
|
|
USB 1.1 device and host (unpowered)
|
|
A-GPS (without processor)
|
|
GSM+GPRS chipset (ARM7 based)
|
|
2 stereo speakers (1.2W)
|
|
CSR4 based Bluetooth
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%page
|
|
OpenMoko
|
|
Application Processor
|
|
|
|
Closer look at Application Processor
|
|
SC2410 SoC @ 266MHz
|
|
three UART's
|
|
133MHz SDRAM interface
|
|
66MHz external bus
|
|
Two channels SPI
|
|
IIS
|
|
I2C
|
|
SDIO
|
|
TFT controller
|
|
NAND controller
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%page
|
|
OpenMoko
|
|
GSM Modem
|
|
|
|
Closer look at the GSM Modem
|
|
Ti Calypso/Iota based chipset
|
|
As proprietary as any other phone
|
|
runs proprietary nucleus OS
|
|
runs proprietary GSM stack
|
|
Supports GSM voice/data/fax and GPRS
|
|
Quad-Band GSM
|
|
Very good TS 07.05 / 07.07 / 07.10 compliance
|
|
eveyone can download the protocol docs from ETSI.org
|
|
no user/hacker needs access to NDA'd documents
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%page
|
|
OpenMoko
|
|
Free Software stack
|
|
|
|
Free Software stack
|
|
bootloader: u-boot current git
|
|
kernel: linux 2.6.20.4
|
|
xserver: kdrive
|
|
glibc
|
|
glib
|
|
gtk+
|
|
libmokoui
|
|
libmokocore
|
|
libgsmd / gsmd
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%page
|
|
OpenMoko
|
|
Development Model
|
|
|
|
Development Model
|
|
We actively contribute our code upstream
|
|
e.g. kernel goal: make vanilla 2.6.22 kernel have all drivers
|
|
Our build system is public
|
|
Everyone can rebuild everything
|
|
cross-toolchain
|
|
u-boot / kernel image
|
|
application/library packages
|
|
Based on OpenEmbedded (OE)
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%page
|
|
OpenMoko
|
|
Hackable Device
|
|
|
|
Hackable Device
|
|
The device shall be under full user control
|
|
Everyone should be able to hack it, at any level
|
|
hardware hacking (i2c, spi, gpio on test pads / connector)
|
|
system-level hacking (bootloader, OS)
|
|
UI level hacking
|
|
Make entry barrier for development as easy as possible
|
|
bootloader prompt via USB serial emulation
|
|
Serial console
|
|
JTAG for the people
|
|
Provide Debug Board with embedded USB JTAG + serial adapter
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%page
|
|
OpenMoko
|
|
Standards compliance
|
|
|
|
Standards compliance
|
|
We use open/documented/available standards wherever possible
|
|
Use official USB device firmware upgrade protocol
|
|
Have charger behave 100% to USB spec (100/500mA)
|
|
Use GSM chipset that follows GSM 07.07/07.10 closely
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%page
|
|
OpenMoko
|
|
User control
|
|
|
|
User control
|
|
The phone needs to be under control of the user, and the free software he uses
|
|
Even backdoors or rogue GSM firmware shall not be able to intrude the privacy fo the user
|
|
So we e.g. put the Audio codec (under explicit control from the Linux-running AP) between microphone/speaker and the GSM modem
|
|
So we enable the Linux-running AP to cut power of the GSM modem
|
|
Thus, free software (and thus the user) remains in ultimate control
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%page
|
|
OpenMoko
|
|
GSM Integration
|
|
|
|
Application Processor GSM integration
|
|
kernel line discipline implementation for GSM 07.10
|
|
userspace GSM daemon with unix domain socket
|
|
libgsmd with API for applications
|
|
lightweight, doesn't have _any_ dependencies aside from glibc
|
|
we're working on gobject integration on top
|
|
kernel part scheduled for mainline submission
|
|
will support different phones / gsm chipsets
|
|
Various HTC devices with Linux
|
|
Motorola EZX phones using OpenEZX
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%page
|
|
OpenMoko
|
|
Difference
|
|
|
|
Difference from other Linux phones
|
|
'others' discourage third parties from writing apps
|
|
you need explicit permission? WTF!
|
|
'others' try to make customers pay for a device that's still under manufacturer / GSM operator control
|
|
'others' use proprietary kernel modules
|
|
locks you into some old kernel version
|
|
'others' use proprietary bootloaders
|
|
'others' dont give you JTAG/serial access
|
|
'others' use proprietary UI toolkits
|
|
vendor lock-in
|
|
'others' dont give out their build system
|
|
'others' dont give out their firmware update tools
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%page
|
|
OpenMoko
|
|
Hardware ahead
|
|
|
|
GTA02
|
|
Same case / physical size
|
|
Same screen
|
|
Same GPS
|
|
Samsung S3C2442 at 400MHz
|
|
More NAND (256MB)
|
|
Will have WiFi (802.11b/g)
|
|
Might have EDGE
|
|
Better Power management
|
|
Dedicated graphics processor
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%page
|
|
OpenMoko
|
|
Hardware ahead
|
|
|
|
GTA03
|
|
not public yet :)
|
|
GTX01
|
|
not public yet :)
|
|
GTX02
|
|
not public yet :)
|
|
|
|
All of them really exciting. Stay tuned :)
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%page
|
|
OpenMoko
|
|
Thanks
|
|
|
|
Thanks to
|
|
Alan Cox, Alexey Kuznetsov, David Miller, Andi Kleen
|
|
for implementing (one of?) the world's best TCP/IP stacks
|
|
Paul 'Rusty' Russell
|
|
for starting the netfilter/iptables project
|
|
for trusting me to maintain it today
|
|
Astaro AG
|
|
for sponsoring parts of my netfilter work
|
|
Free Software Foundation
|
|
for the GNU Project
|
|
for the GNU General Public License
|
|
FIC
|
|
for funding OpenMoko
|
|
|
|
|