User:Panta/translate

From Openmoko

< User:Panta(Difference between revisions)
Jump to: navigation, search
m (User:Panta/indice moved to User:Panta/translate: a better name: here's the page I'm currently translating from English to Italian)
m (OpenMoko to translate)
Line 1: Line 1:
__NOTOC__
+
Openmoko is the distribution that we're creating for phones and eventually other mobile devices.
__NOEDITSECTION__
+
__NOTOC__
+
  
 +
See [[Trademark Policy]] for information on the Openmoko trademark policy.
  
<DIV ALIGN=CENTER><big>'''[[Openmoko]]™ Open. Mobile. Free.'''</big><br></DIV>
+
It has the following software stack:
<BR>
+
+
==<font color=75d806>Introduzione ad Openmoko</font>==
+
[[Image:GTA02.gif |100px|left|frontside]]
+
[[Openmoko]]™ nasce come progetto [http://it.wikipedia.org/wiki/Open_source Open Source] sotto  [[License| licenza GPL e LGPL ]] e dedicato al rilascio di uno stack open software su piattaforme mobili, ha consegnato il primo prodotto, il Neo1973, il 9 Luglio 2007 e quindi ha conferito il progetto in una start-up company con uno scopo: creare ottimi prodotti mobile utilizzando lo stack Openmoko: Open. Mobile. Free.
+
  
Lo stack Openmoko, che include un server X completo, consente ad utenti e sviluppatori  di trasformare piattaforme hardware mobile in prodotti unici. La nostra licenza fornisce a sviluppatori ed utenti la libertà dalla  tortura dell'accecamento con il  "ferro rovente sugli occhi", libertà di personalizzare esternamente i propri dispositivi o rifarli modificandoli radicalmente, di cambiare la carta da parati o ricostruire l'intera casa da zero! Gli garantisce la libertà, per esempio, di trasformare il telefono in un dispositivo medico, o in un dispositivo di vendita, o la libertà di installare semplicemente il proprio software preferito. Oltre a rendere libero il software sui nostri dispositivi, abbiamo anche rilasciato i nostri files CAD sotto licenza Creative Commons. Liberando il codice sotto GPL, abbiamo dato alla community degli sviluppatori FOSS la possibilità di "rifarlo da capo". Liberando i files CAD abbiamo dato a designers industriali ed ingegneri la stessa opportunità. 
+
{{ui_img_path}}/software_stack2007.png
  
{| class="wikitable" cellspacing="0" cellpadding="0" width=100%
+
A printer-friendly version can be found [http://people.openmoko.org/sean/files/openmokostack2007.pdf here].
! width=30% style="background:#ff6600;border-left:0px solid white;border-right:0px solid white;border-top:0px solid white;" | <font color=white></font>
+
! width=30% style="background:#ff6600;border-left:0px solid white;border-right:0px solid white;border-top:0px solid white;" |
+
|-
+
|valign="TOP" style="background:#333333;border-left:0px solid white;border-right:0px solid white;border-bottom:0px solid white;" |
+
:*[[Background]]
+
:*[[Meet_the_Core_Team/it|Il Core Team Originale]]
+
:*[[OpenmokoFramework|La Nuova Iniziativa Framework]]
+
|valign="TOP" style="background:#333333;border-left:0px solid white;border-right:0px solid white;border-bottom:0px solid white;" |
+
*[[Trademark Policy|Policy sui Marchi di Fabbrica]]
+
*[[License|Licenze]]
+
|}
+
+
  
==<font color=75d806>I Prodotti Openmoko</font>==
 
[[image:FIC-neo1973 small.jpg|100px|left|frontside]]
 
  
Il primo prodotto Openmoko, il [[Neo1973/it|Neo1973]], venduto esclusivamente tramite [https://direct.openmoko.com/ Il Negozio Online Openmoko]. Esaurito agli inizi di Febbraio 2008.  
+
{{note|This article needs to be updated to reflect our current architecture.}}
  
Openmoko commercializerà Neo FreeRunner (GTA02), la seconda generazione del Neo nella prima metà del 2008. Aggiungi il tuo nickname a quelli di coloro che sono interessati ad acquistare il Neo FreeRunner all'[[Buying_Interest_List|Elenco degli Interessati all'Acquisto]].
+
== Kernel Space ==
 +
The Kernel Space consists of the Bootloader, the Kernel, and Power Management.
  
{| class="wikitable" cellspacing="4" cellpadding="4" width=80%
+
=== Bootloader ===
! width=40% style="background:#ff6600;border-left:5px solid white;border-right:5px solid white;border-top:0px solid white; border:1px solid #ff6600; " |<font color=white>GTA01 - Neo 1973</font>
+
The Bootloader is [[u-boot]]. We will have the following requirements:
! width=40% style="background:#ff6600;border-left:5px solid white;border-right:5px solid white;border-top:0px solid white; border:1px solid #ff6600;" |<font color=white>GTA02 - Neo FreeRunner</font>
+
* '''Firmware Update''' – Need a way to download executible code using [[USB DFU]]
|-
+
* '''RAM Loader''' – Provide a method to run code directly from the device’s RAM
|valign="TOP" style="background:#333333;border-left:5px solid white;border-right:5px solid white;border-bottom:0px solid white; border:1px solid #cccccc; " |
+
* '''Secure Memory Interface''' – Provide a method to secure the interface to write into both RAM and FLASH. This is for the end user to prevent other users from modifying their own handsets. It’s not for vendor lock-in.
<div align=left>
+
* '''[[Backup]]''' – Provide a method to backup the data from flash. This could possibly allow for the sharing of images between users.
*[[Neo1973/it|Il Neo1973]]
+
*[[Getting Started with your Neo1973/it|Primo approccio al Neo1973]]
+
*[[Neo1973 hardware|L'hardware del Neo1973]]
+
=====<font color=white>Debug Board</font>=====
+
*[[Neo1973 Debug Board v2]]
+
*[[Neo1973 Debug Board v3]]
+
+
  
<font color=white> ※</font>[[: Category:Neo1973 Hardware |  Altre Informazioni sul Neo1973...]]
+
=== Kernel ===
|valign="TOP" style="background:#333333;border-left:5px solid white;border-right:5px solid white;border-bottom:0px solid white; border:1px solid #cccccc; " |
+
The Kernel is based on the 2.6.x mainline using the moko patch set. It was planned to use TomTom's patches as they did extensive work with the Samsung 2410 application processor and added great support for SD cards. Currently their patches will allow support for almost all vendors’ SD cards. Kernel work is divided into the following components:
*[[Neo FreeRunner|Il Neo FreeRunner]]
+
*[[Getting Started with your Neo FreeRunner|Primo approccio al Neo FreeRunner]]
+
*[[Neo FreeRunner GTA02 Hardware|L'hardware del Neo FreeRunner GTA02]]
+
*[[Neo1973: GTA01Bv4 versus GTA02 comparison/it|Neo1973: Confronto tra GTA01BV4 e GTA02]]</div>
+
*[[GTA02 Openness|Openness del GTA02]]
+
  
 +
==== Flash ====
 +
The flash functions as a MTD using the standard Linux access. It will run the JFFS2 filesystem over the entire flash.
 +
We would like to have some type of encryption on the user’s data. This will be configured in the User Interface at a later time. But for now, we should build the supporting framework.
  
<font color=white> ※</font>[[: Category: GTA02 Hardware |  Altre Informazioni sul GTA02...]]
+
==== Sound ====
====<font color=white>Altri Prodotti</font>====
+
The sound driver for the codec uses Advanced Linux Sound Architecture (ALSA) with the ASoC glue code. This is the standard for Linux sound cards.
*[[OpenMoko-supported hardware/it|Hardware supportato da OpenMoko]]
+
*[[HXD8]]
+
  
<font color=white> ※</font>[[:Category:Hardware Support | Altre Informazioni sul Supporto Hardware...]]
+
==== Backlight ====
 +
This is an LCD backlight class driver.
  
|}
+
==== Keypad / Buttons ====
 +
The keypad driver will use the standard Input device /dev/input.
  
 +
==== Touch Screen ====
 +
The touch screen driver uses the standard Input device /dev/input/touchscreen0.
  
 +
==== Accellerometer (GTA02 only) ====
 +
{{stub}}
  
==<font color=75d806>Sviluppa con noi Openmoko</font>==
+
==== USB ====
 +
We will need USB host / client support for Linux, OS X, and Windows. It should support the following features:
 +
* '''Mass Storage''' – To be mountable from another device
 +
* '''Host Network''' – To provide networking support over USB
 +
* '''Linux USB Gadget''' – The standard method for having the device act as a slave
  
{| class="wikitable" cellspacing="4" cellpadding="6" width=100%
+
==== NFS Root Support ====
! width=50% style="background:#ff6600;border-left:5px solid white;border-right:5px solid white;border-top:0px solid white; border:1px solid #ff6600; " | <font color="white" >Documentazione sull'Hardware e Test</font>
+
This will serve as one of our methods to develop code for the device. It will allow us to have a filesystem larger than the actual flash size. See [[Booting_from_NFS]] for setup details.
! width=50% style="background:#ff6600;border-left:5px solid white;border-right:5px solid white;border-top:0px solid white; border:1px solid #ff6600;" |<font color="white" >Documentazione sul Software</font>
+
|-
+
|valign="TOP" style="background:#333333;border-left:5px solid white;border-right:5px solid white;border-bottom:0px solid white; border:1px solid #cccccc; " |
+
===<font color=white>Per Cominciare</font>===
+
* [[Installation guide/it | Guida all'installazione]]
+
* [[Customizing the Openmoko Distribution]]
+
* [[Getting Started with your Neo1973/it | Cominciare con il Neo1973]]
+
* [[MokoMakefile/it|Costruire Openmoko utilizzando MokoMakefile]]
+
* [[Building OpenMoko from scratch (pre-BBT)]]
+
* [[Migration to bad block tolerant builds]]
+
  
<font color=white> ※</font> [[:Category:Guides|  Altre informazioni sulle Guide...]]
+
==== Bluetooth ====
===<font color=white> Documentazione di riferimento sull'Hardware</font> ===
+
Bluetooth support will be based on the Linux standard called BlueZ. We will support the following profiles:
 +
* '''Headset''' – For wireless headsets
 +
* '''OBEX''' – For file transfer
 +
* '''HID''' – For both Bluetooth keyboards and keypad emulation (such as for remote control devices)
 +
* '''Network Emulation''' – For Bluetooth-based network support
  
<font color=white>Uno sguardo sui Componenti che utilizziamo, Fotografie del PCB</font>
+
==== WiFi (GTA02 only) ====
** [[Disassembling Neo1973/it|Disassemblare il Neo1973]] <font color=white>-Storia illustrata su come disassemblare l'Hardware</font>
+
{{stub}}
* [[Debug Board/it|Scheda Debug]] <font color=white> - La scheda di Debug per il Neo1973<font>
+
** [[Connecting Neo1973 with Debug Board v2/it|Connettere il Neo1973 alla Debug Board v2]]
+
** [[Neo1973 Debug Board v1]] <font color=white>-La vecchia versione della Scheda Debug</font>
+
* [[QT2410]] <font color=white>-La scheda di debug S3C2410 utilizzata nel primo periodo di sviluppo</font>
+
  
<font color=white> ※</font>[[:Category: Hardware |  Altre informazioni sull'Hardware]]
+
==== TS07.10 ====
===<font color=white>Test</font>===
+
This is the [[GSM]] interface part. It is based on the idea of creating multiple serial devices out of one physical serial device. This code will be based work from the openEZX project and the original Motorola architecture. It will also provide ipsec for secure [[VPN]] connections.
*[[GSM unit test]]
+
*[[GSM 850 test]]
+
*[[GSM unit test]]
+
*[[Test Plans]]
+
<font color=white> ※</font> [[:Category: Test |  Altre informazioni sui Test]]
+
  
===<font color=white>Emulazione</font>===
+
The following diagram depicts the general architecture:
*[[Getting OpenMoko working on host with Xephyr]]
+
*[[Test_Openmoko Emulation with chroot image]]
+
  
|valign="TOP" style="background:#333333;border-left:5px solid white;border-right:5px solid white;border-bottom:0px solid white; border:1px solid #cccccc; " |
+
{{ui_img_path}}/gsm_interface.png
  
=== <font color=white>Documentazione di Riferimento sul Software </font>===
+
A printer-friendly version can be found [http://people.openmoko.org/sean/files/openmokogsm.pdf here].
* <font color=white>Architettura</font>
+
** [[OpenmokoFramework]] <font color=white>-Il Framework dei programmi OpenMoko</font>
+
* <font color=white>Programmi utili per l'Host</font>
+
** [[sjf2410-linux/it|sjf2410-linux]]  <font color=white>-un programma per flashare la NAND via JTAG, il ricorso all'ultima telefonata prima di romperlo</font>
+
** [[s3c2410_boot_usb/it ]]  <font color=white>-Un programma per trasferire codice nella RAM del QT2410 (non per Neo1973)</font>
+
** [[Toolchain]]  <font color=white>-La sucessione di programmi utilizzati per compilare</font>
+
** [[Neo1973 OpenOCD]]  <font color=white>-Il Debugger On-Chip utilizzato per lo sviluppo</font>
+
** [[OpenEmbedded]] <font color=white> -Il framework per costruire la distribuzione</font>
+
* <font color=white>Dispositivi Software</font>
+
** <font color=white>Basso-Livello</font>
+
*** [[u-boot]]  <font color=white>-Il bootloader utilizzato, inclusa la documentazione relativa alle nostre modifiche</font>
+
*** [[kernel/it|kernel]]  <font color=white>-Il Kernel Linux utilizzato, inclusa la documentazione relativa alle nostre modifiche</font>
+
** <font color=white>Spazio Utente</font>
+
*** [[gsmd/it|gsmd]] <font color=white> -Il demone GSM che controlla il Modem GSM</font>
+
*** [[agpsd]] <font color=white>-Il demone AGPS (Assisted GPS)</font>
+
*** [[OpenMoko/it|OpenMoko]]  <font color=white>-La distribuzione OpenMoko</font>
+
**** [[Openmoko_Core_Applications | Programmi Inclusi]]
+
**** [[OpenMoko2007/it|OpenMoko2007]] - <font color=white>Il suo primo vero rilascio</font>
+
**** [[Userspace root image]]
+
  
<font color=ffffff>※</font>[[:Category: Software |  Altre Informazioni sul Software ]]
+
===== GPRS modem=====
 +
2.5G (no EDGE) access to the Internet.
  
|}
+
==== Vibration ====
 +
This is using the LED class interface. This may be troublesome for mainline merging, but it makes no sense to invent a new subsystem which would be 100% identical to the LED class interface.
  
 +
=== Power Management ===
 +
The Power Management Unit will interface with the standard kernel I2C interface. The actual power states transitions are TBD.
  
 +
== User Space ==
  
 +
{{note|We will use glibc (not uClibC) and libX11 (full, not diet) for the first incarnation of this product. The alternatives may save more space and be more optimized, but are more likely to give us integration headaches. We will have to reconsider this decision for later releases.}}
  
 +
=== Linux Core Services ===
  
==<font color=75d806>La community Openmoko</font>==
+
Most of these core services include a daemon and a library.
Chiunque può unirsi al progetto OpenMoko e contribuire a disegnare prodotti open. Unisciti a noi e collabora ad un [[Development resources/it | progetto]], incluso il Wiki di Openmoko. Leggi la [[Help:Contents | wiki editing help]]page per ottenere informazioni su come contribuire a questo wiki.  
+
  
Puoi partire dalla pagina di [[introduction/it|introduzione]], dalle foto, dai video o dalla Openmoko Wiki Official Index Page. Come al solito possono essere d'aiuto le [[FAQ/it | Frequently Asked Questions]] (FAQ) e le [http://lists.openmoko.org/mailman/listinfo/| mailing list].  
+
==== sshd ====
 +
sshd enables a remote shell login via network.
  
{| class="wikitable" cellspacing="4" cellpadding="6" width=100%
+
==== udev ====
! width=50% style="background:#ff6600;border-left:5px solid white;border-right:5px solid white;border-top:0px solid white; border:1px solid #ff6600; " | <font color="white" >Novità</font>
+
udev is responsible for managing the device nodes in the /dev pseudo file system.
! width=50% style="background:#ff6600;border-left:5px solid white;border-right:5px solid white;border-top:0px solid white; border:1px solid #ff6600;" |<font color="white" >Community & Eventi</font>
+
|-
+
|valign="TOP" style="background:#333333;border-left:5px solid white;border-right:5px solid white;border-bottom:0px solid white; border:1px solid #cccccc; " |
+
==<font color=white>Per iniziare</font>==
+
*[[Getting Started with your Neo FreeRunner]]
+
*[[Getting Started with your Neo1973/it|Primi passi con il tuo Neo1973]]
+
==<font color=white>Snapshot</font>==
+
*<font color=white>[http://buildhost.openmoko.org/daily/neo1973/deploy/glibc/images/neo1973/ L'ultima build] è sempre disponibile qui per il download.
+
*[[Snapshot_review|Qui]] è possibile trovare le recensioni delle snapshot build giornaliere, mentre [http://downloads.openmoko.org/recommended/ qui] troverete le immagini kernel e root recensite.
+
Si noti che il set raccomandato non è sempre l'ultimo disponibile, ma il più stabile, utilizzabile e funzionale.</font>
+
|valign="TOP" style="background:#333333;border-left:5px solid white;border-right:5px solid white;border-bottom:0px solid white; border:1px solid #cccccc; " |
+
  
==<font color=white>Aggiornamenti per la Community</font>==
+
==== bluez ====
<font color=white>Per gli ultimi aggiornamenti, si vedano i [[Community_Updates|Community Updates]]</font>
+
bluez is the Linux Bluetooth subsystem.
  
<font color=ffffff> ※</font>[[:Category:Community|  Altre Informazioni sulla Community...]]
+
==== dbus ====
 +
dbus is an interprocess communication subsystem.
  
==<font color=white>Uno sguardo d'insieme al wiki</font>==
+
==== GSM ====
*<font color=white>Per un panorama generale del Wiki Openmoko, si vedano le [[Openmoko Wiki Official Index Page]].</font>
+
* '''GSM''' - handles the communication with the GSM module.
==<font color=white>Eventi</font>==
+
* '''gsmd''' - is responsible for the management of GSM backend.
*[[Summer of Code 2008]]
+
* '''libgsmd''' - will communicate with the gsmd and export an API for applications.
*[[OpenMoko Education/zh tw]]
+
*[[Events:FOSDEM 2008]]
+
*[[OpenLab]]
+
  
<font color=ffffff> ※</font>[[:Category:Event|  Altre informazioni sugli Eventi...]]
+
==== GPS ====
 +
* '''GPS''' - handles the communication with the GPS module.
 +
* '''[http://gpsd.berlios.de/ gpsd]''' - is the daemon for management of GPS backend. It will export the standard [[Gpsd|gpsd]] interface.
  
|}
+
=== Linux User Interface ===
 +
==== Matchbox ====
 +
A lightweight window manager from the [http://projects.o-hand.com/matchbox O-Hand]
  
 +
==== KDrive ====
 +
KDrive-fbdev is a lightweight X11 server that runs directly on a Linux FrameBuffer.
  
==<font color=75d806>Primi passi con il Wiki Openmoko</font>==
+
==== libX11 ====
Il Wiki Openmoko è open. Chiunque può utilizzarlo. Ci si trovano informazioni come: documentazione hardware e software, elenchi di bug, novità per la community di Openmoko e molto altro ancora. Utilizza il nostro wiki, modificalo. contribuisci con contenuti di valore, ed aiuta gli altri. Per un quadro d'insieme del Wiki Openmoko, basta visitare la [[Openmoko Wiki Official Index Page|Openmoko Wiki Official Index Page]].
+
The X11 library.
  
* Leggi le [[Openmoko Wiki Editing Guidelines]]
+
==== GTK+ ====
* [http://www.mediawiki.org/wiki/Help:Configuration_settings Configuration settings list]
+
GTK+ is a rich GUI-Toolkit. It's the foundation for the [http://gtk.org Gnome project]
* [http://meta.wikimedia.org/wiki/Help:Wikitext_reference MediaWiki Wikitext Reference]
+
* Quando si aggiunge una nuova pagina, occorre far riferimento alla [[Openmoko Wiki Categories Index Page|Openmoko Wiki Categories Index Page]] per inserirla nella giusta categoria.
+
* [http://www.mediawiki.org/wiki/Help:FAQ MediaWiki FAQ]
+
  
<font color=426fdc>※</font>[[:Category: Help | Altre Informazioni su Help ]]
+
=== Openmoko Application Framework ===
 +
{{Main|OpenMokoFramework}}
  
{{Languages|Main Page}}
+
==== Native Applications ====
 +
===== Currently Included Applications =====
 +
Currently included applications that are accessible from the application menus are found [[Openmoko_Core_Applications | here]].
 +
This consists of both Stylus-based and Finger-based applications.
  
[[Category:Information| ]]
+
===== Finger-Based Applications =====
[[Category:Categories| ]]
+
Complete specifications for all the Finger-Based Applications are found [[Applications#Finger-Based_Applications | here]].
 +
 
 +
===== Stylus-Based Applications =====
 +
Complete specifications for all the Stylus-Based Applications are found [[Applications#Stylus-Based_Applications | here]].
 +
 
 +
<span id="bottom"></span>
 +
{{Languages|OpenMoko}}
 +
 
 +
[[Category:Openmoko| ]]
 +
[[Category:Neo1973_Phase_0_related]]
 +
[[Category:Neo1973_Phase_1_related]]

Revision as of 23:18, 10 May 2008

Openmoko is the distribution that we're creating for phones and eventually other mobile devices.

See Trademark Policy for information on the Openmoko trademark policy.

It has the following software stack:

Template:Ui img path/software_stack2007.png

A printer-friendly version can be found here.


NOTE: This article needs to be updated to reflect our current architecture.


Contents

Kernel Space

The Kernel Space consists of the Bootloader, the Kernel, and Power Management.

Bootloader

The Bootloader is u-boot. We will have the following requirements:

  • Firmware Update – Need a way to download executible code using USB DFU
  • RAM Loader – Provide a method to run code directly from the device’s RAM
  • Secure Memory Interface – Provide a method to secure the interface to write into both RAM and FLASH. This is for the end user to prevent other users from modifying their own handsets. It’s not for vendor lock-in.
  • Backup – Provide a method to backup the data from flash. This could possibly allow for the sharing of images between users.

Kernel

The Kernel is based on the 2.6.x mainline using the moko patch set. It was planned to use TomTom's patches as they did extensive work with the Samsung 2410 application processor and added great support for SD cards. Currently their patches will allow support for almost all vendors’ SD cards. Kernel work is divided into the following components:

Flash

The flash functions as a MTD using the standard Linux access. It will run the JFFS2 filesystem over the entire flash. We would like to have some type of encryption on the user’s data. This will be configured in the User Interface at a later time. But for now, we should build the supporting framework.

Sound

The sound driver for the codec uses Advanced Linux Sound Architecture (ALSA) with the ASoC glue code. This is the standard for Linux sound cards.

Backlight

This is an LCD backlight class driver.

Keypad / Buttons

The keypad driver will use the standard Input device /dev/input.

Touch Screen

The touch screen driver uses the standard Input device /dev/input/touchscreen0.

Accellerometer (GTA02 only)

Stub: This is a stub. You can help OpenMokoWiki by expanding it.


USB

We will need USB host / client support for Linux, OS X, and Windows. It should support the following features:

  • Mass Storage – To be mountable from another device
  • Host Network – To provide networking support over USB
  • Linux USB Gadget – The standard method for having the device act as a slave

NFS Root Support

This will serve as one of our methods to develop code for the device. It will allow us to have a filesystem larger than the actual flash size. See Booting_from_NFS for setup details.

Bluetooth

Bluetooth support will be based on the Linux standard called BlueZ. We will support the following profiles:

  • Headset – For wireless headsets
  • OBEX – For file transfer
  • HID – For both Bluetooth keyboards and keypad emulation (such as for remote control devices)
  • Network Emulation – For Bluetooth-based network support

WiFi (GTA02 only)

Stub: This is a stub. You can help OpenMokoWiki by expanding it.


TS07.10

This is the GSM interface part. It is based on the idea of creating multiple serial devices out of one physical serial device. This code will be based work from the openEZX project and the original Motorola architecture. It will also provide ipsec for secure VPN connections.

The following diagram depicts the general architecture:

Template:Ui img path/gsm_interface.png

A printer-friendly version can be found here.

GPRS modem

2.5G (no EDGE) access to the Internet.

Vibration

This is using the LED class interface. This may be troublesome for mainline merging, but it makes no sense to invent a new subsystem which would be 100% identical to the LED class interface.

Power Management

The Power Management Unit will interface with the standard kernel I2C interface. The actual power states transitions are TBD.

User Space

NOTE: We will use glibc (not uClibC) and libX11 (full, not diet) for the first incarnation of this product. The alternatives may save more space and be more optimized, but are more likely to give us integration headaches. We will have to reconsider this decision for later releases.


Linux Core Services

Most of these core services include a daemon and a library.

sshd

sshd enables a remote shell login via network.

udev

udev is responsible for managing the device nodes in the /dev pseudo file system.

bluez

bluez is the Linux Bluetooth subsystem.

dbus

dbus is an interprocess communication subsystem.

GSM

  • GSM - handles the communication with the GSM module.
  • gsmd - is responsible for the management of GSM backend.
  • libgsmd - will communicate with the gsmd and export an API for applications.

GPS

  • GPS - handles the communication with the GPS module.
  • gpsd - is the daemon for management of GPS backend. It will export the standard gpsd interface.

Linux User Interface

Matchbox

A lightweight window manager from the O-Hand

KDrive

KDrive-fbdev is a lightweight X11 server that runs directly on a Linux FrameBuffer.

libX11

The X11 library.

GTK+

GTK+ is a rich GUI-Toolkit. It's the foundation for the Gnome project

Openmoko Application Framework

Main article: OpenMokoFramework


Native Applications

Currently Included Applications

Currently included applications that are accessible from the application menus are found here. This consists of both Stylus-based and Finger-based applications.

Finger-Based Applications

Complete specifications for all the Finger-Based Applications are found here.

Stylus-Based Applications

Complete specifications for all the Stylus-Based Applications are found here.

Personal tools

Openmoko is the distribution that we're creating for phones and eventually other mobile devices.

See Trademark Policy for information on the Openmoko trademark policy.

It has the following software stack:

Template:Ui img path/software_stack2007.png

A printer-friendly version can be found here.


NOTE: This article needs to be updated to reflect our current architecture.


Kernel Space

The Kernel Space consists of the Bootloader, the Kernel, and Power Management.

Bootloader

The Bootloader is u-boot. We will have the following requirements:

  • Firmware Update – Need a way to download executible code using USB DFU
  • RAM Loader – Provide a method to run code directly from the device’s RAM
  • Secure Memory Interface – Provide a method to secure the interface to write into both RAM and FLASH. This is for the end user to prevent other users from modifying their own handsets. It’s not for vendor lock-in.
  • Backup – Provide a method to backup the data from flash. This could possibly allow for the sharing of images between users.

Kernel

The Kernel is based on the 2.6.x mainline using the moko patch set. It was planned to use TomTom's patches as they did extensive work with the Samsung 2410 application processor and added great support for SD cards. Currently their patches will allow support for almost all vendors’ SD cards. Kernel work is divided into the following components:

Flash

The flash functions as a MTD using the standard Linux access. It will run the JFFS2 filesystem over the entire flash. We would like to have some type of encryption on the user’s data. This will be configured in the User Interface at a later time. But for now, we should build the supporting framework.

Sound

The sound driver for the codec uses Advanced Linux Sound Architecture (ALSA) with the ASoC glue code. This is the standard for Linux sound cards.

Backlight

This is an LCD backlight class driver.

Keypad / Buttons

The keypad driver will use the standard Input device /dev/input.

Touch Screen

The touch screen driver uses the standard Input device /dev/input/touchscreen0.

Accellerometer (GTA02 only)

Stub: This is a stub. You can help OpenMokoWiki by expanding it.


USB

We will need USB host / client support for Linux, OS X, and Windows. It should support the following features:

  • Mass Storage – To be mountable from another device
  • Host Network – To provide networking support over USB
  • Linux USB Gadget – The standard method for having the device act as a slave

NFS Root Support

This will serve as one of our methods to develop code for the device. It will allow us to have a filesystem larger than the actual flash size. See Booting_from_NFS for setup details.

Bluetooth

Bluetooth support will be based on the Linux standard called BlueZ. We will support the following profiles:

  • Headset – For wireless headsets
  • OBEX – For file transfer
  • HID – For both Bluetooth keyboards and keypad emulation (such as for remote control devices)
  • Network Emulation – For Bluetooth-based network support

WiFi (GTA02 only)

Stub: This is a stub. You can help OpenMokoWiki by expanding it.


TS07.10

This is the GSM interface part. It is based on the idea of creating multiple serial devices out of one physical serial device. This code will be based work from the openEZX project and the original Motorola architecture. It will also provide ipsec for secure VPN connections.

The following diagram depicts the general architecture:

Template:Ui img path/gsm_interface.png

A printer-friendly version can be found here.

GPRS modem

2.5G (no EDGE) access to the Internet.

Vibration

This is using the LED class interface. This may be troublesome for mainline merging, but it makes no sense to invent a new subsystem which would be 100% identical to the LED class interface.

Power Management

The Power Management Unit will interface with the standard kernel I2C interface. The actual power states transitions are TBD.

User Space

NOTE: We will use glibc (not uClibC) and libX11 (full, not diet) for the first incarnation of this product. The alternatives may save more space and be more optimized, but are more likely to give us integration headaches. We will have to reconsider this decision for later releases.


Linux Core Services

Most of these core services include a daemon and a library.

sshd

sshd enables a remote shell login via network.

udev

udev is responsible for managing the device nodes in the /dev pseudo file system.

bluez

bluez is the Linux Bluetooth subsystem.

dbus

dbus is an interprocess communication subsystem.

GSM

  • GSM - handles the communication with the GSM module.
  • gsmd - is responsible for the management of GSM backend.
  • libgsmd - will communicate with the gsmd and export an API for applications.

GPS

  • GPS - handles the communication with the GPS module.
  • gpsd - is the daemon for management of GPS backend. It will export the standard gpsd interface.

Linux User Interface

Matchbox

A lightweight window manager from the O-Hand

KDrive

KDrive-fbdev is a lightweight X11 server that runs directly on a Linux FrameBuffer.

libX11

The X11 library.

GTK+

GTK+ is a rich GUI-Toolkit. It's the foundation for the Gnome project

Openmoko Application Framework

Main article: OpenMokoFramework


Native Applications

Currently Included Applications

Currently included applications that are accessible from the application menus are found here. This consists of both Stylus-based and Finger-based applications.

Finger-Based Applications

Complete specifications for all the Finger-Based Applications are found here.

Stylus-Based Applications

Complete specifications for all the Stylus-Based Applications are found here.