OpenMoko/es

From Openmoko

Jump to: navigation, search

Openmoko es una distribución que estamos creando para telefonos, y eventualmente otros dispositivos móviles.

Mira Trademark Policy(en inglés) para obtener información sobre las pautas de Openmoko como marca registrada.

Openmoko tiene las siguientes caractirísticas en el software:

http://people.openmoko.org/sean/specifications/images/software_stack2007.png

Una versión para imprimir puede se encontrada aquí.


NOTE: Esta artículo necesita se actualizado para reflejar la arquitectura actual.

Contents

Espacio para el Kernel

El espacio para el Kernel consiste en el Cargador de arranque, el Kernel y el administrador de energía.

Cargador de arranque

El cargador de arranque es u-boot. Tendremos los siguientes requisitos:

  • Firmware Update – Es necesaria una manera de descargar código ejecutable usando USB DFU
  • RAM Loader – Provee un método para ejecutar código directamente de la memoria RAM del dispositivo.
  • Secure Memory Interface – Provee un método para proteger la intrefaz para escribir tanto en la RAM como en la memoría Flash. Esto tiene la intención de generar una protección para que el usuario final pueda evitar que otros usuarios modifiquen la información almacenada en su dispositivo. No tiene la intención de que el distribuidor lo bloqueé.
  • Backup – Proveer un método para recuperar un sistema desde un dispositivo Flash. Esto podría posibilitar la compartición de imágenes de sistema entre usuarios.

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)

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)

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:

http://people.openmoko.org/sean/specifications/images/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

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