summaryrefslogtreecommitdiff
path: root/2007/openmoko-technical-blr2007/openmoko-tech.mgp
blob: 56e7460f4166f1fc4e845ed655da0c8098fcd8c6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
%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


personal git repositories of Harald Welte. Your mileage may vary