User:Panta/translate
From Openmoko
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: | ||
− | + | 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: | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | {{ui_img_path}}/software_stack2007.png | |
− | + | A printer-friendly version can be found [http://people.openmoko.org/sean/files/openmokostack2007.pdf 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}} | ||
− | == | + | ==== 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}} | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ==== 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: | |
− | + | ||
− | + | ||
− | + | {{ui_img_path}}/gsm_interface.png | |
− | + | A printer-friendly version can be found [http://people.openmoko.org/sean/files/openmokogsm.pdf 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. | ||
+ | * '''[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. | ||
− | == | + | ==== libX11 ==== |
− | + | The X11 library. | |
− | + | ==== GTK+ ==== | |
− | + | GTK+ is a rich GUI-Toolkit. It's the foundation for the [http://gtk.org Gnome project] | |
− | + | ||
− | + | ||
− | + | ||
− | + | === Openmoko Application Framework === | |
+ | {{Main|OpenMokoFramework}} | ||
− | + | ==== 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: | + | ===== Finger-Based Applications ===== |
− | [[Category: | + | 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 00:18, 11 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.
Languages: |
English • العربية • Български • Česky • Dansk • Deutsch • Esperanto • Eesti • Español • فارسی • Suomi • Français • עברית • Magyar • Italiano • 한국어 • Nederlands • Norsk (bokmål) • Polski • Português • Română • Русский • Svenska • Slovenčina • Українська • 中文(中国大陆) • 中文(台灣) • Euskara • Català |