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
|
||
|
|
||
|
|