OpenmokoFramework/Status Update 6

From Openmoko

(Difference between revisions)
Jump to: navigation, search
(Installation)
(What's new since Milestone IV)
 
(10 intermediate revisions by 3 users not shown)
Line 9: Line 9:
  
 
== People & Organization ==
 
== People & Organization ==
 +
 +
No changes here. Current team still consists of Mickey, Jan, Daniel, and Stefan.
  
 
== DBus APIs ==
 
== DBus APIs ==
  
All the public DBus API are documented on the official [http://docs.freesmartphone.org freesmartphone.org API reference] site.
+
All the public DBus API are documented on the official [http://docs.freesmartphone.org freesmartphone.org API reference] site. XML-API files for generating language bindings are available from the [http://git.freesmartphone.org/?p=specs.git;a=tree;f=xml git tree].
DBus Introspection XML files are available in the [http://git.freesmartphone.org git tree].
+
  
* The GSM API (org.freesmartphone.GSM.*) has proven very solid and will be tagged 0.9 before the next milestone.
+
* The GSM API (org.freesmartphone.GSM.*) has received minor updates and is now considered version 0.9. One notable addition is [http://git.freesmartphone.org/?p=specs.git;a=blob_plain;f=html/org.freesmartphone.GSM.Monitor.html org.freesmartphone.GSM.Monitor], which is an interface for GSM monitoring, i.e. gathering diagnostic information over the serving cell and the neighbour cells.  
  
* The Device API (org.freesmartphone.Device.*) has received some additions for power management and starts stabilizing.
+
* The Device API (org.freesmartphone.Device.*) has received minor updates and is now considered 0.8. One notably addition is [http://git.freesmartphone.org/?p=specs.git;a=blob_plain;f=html/org.freesmartphone.Device.Audio.html#PlaySound org.freesmartphone.Device.Audio.PlaySound] which gained parameters for looping and length.
  
* The Usage API (http://docs.freesmartphone.org/org.freesmartphone.Usage.html) which was merely a reference counting wrapper over the Device API has gained two companions:
+
* The Usage API got the new signal [http://git.freesmartphone.org/?p=specs.git;a=blob_plain;f=html/org.freesmartphone.Usage.html;hb=HEAD#SystemAction org.freesmartphone.Usage.SystemAction] which is sent on suspend, resume, shutdown, etc.
** The Resource API (http://docs.freesmartphone.org/org.freesmartphone.Resource.html) turns this into a full-blown resource management system with choosable policies etc.
+
** The [http://git.freesmartphone.org/?p=specs.git;a=blob_plain;f=html/org.freesmartphone.Usage.html;hb=HEAD#Suspend Suspend] call is resource-aware and gives all resources a chance to prepare for a suspend and to recover after a suspend.
+
  
* org.freesmartphone.Objects.ListObjectsByInterface is using DBus-introspection now.
+
* org.freesmartphone.Objects.ListObjectsByInterface has been generalized, it gained an additional bus name parameter and is now called org.freesmartphone.DBus.ListObjectsByInterface. It's now useful also outside FSO.
  
* The Events subsystem has gained an experimental [http://git.freesmartphone.org/?p=specs.git;a=blob_plain;f=html/org.freesmartphone.Events.html;hb=HEAD DBus interface] to add and remove rules and to test triggers.
+
* org.freesmartphone.Network has been added with the call [http://git.freesmartphone.org/?p=specs.git;a=blob_plain;f=html/org.freesmartphone.Network.html;hb=HEAD#StartConnectionSharingWithInterface org.freesmartphone.StartConnectionSharingWithInterface]. NOTE: This will not be a full fledged networking interface, but rather a high level API complementing org.moblin.connman.
 +
 
 +
* The opim API has reached this milestone, although it's still too much in flux to document it. Instead, please give it a try and join our discussions at the smartphones-standards list.
 +
 
 +
* [http://git.freesmartphone.org/?p=specs.git;a=blob_plain;f=html/org.freesmartphone.Time.Alarm.html;hb=HEAD org.freesmartphone.Time.Alarm] has made its debut as an interface for registering / clearing wake up alarms.
  
 
== Implementations ==
 
== Implementations ==
  
'''Freesmartphone.org Framework Image -- '' (Milestone V)'''
+
'''Freesmartphone.org Framework Image -- 'Calling All Stations' (Milestone V)'''
 +
 
 +
This is the fifth milestone release of the framework and the diagnostic application 'Zhone'. While we announced that we are going to phase Zhone out as phone application, it found new life as a diagnostic application, i.e. for GPS and GSM monitoring. There might be more to come, depending on our spare time...
 +
 
 +
Framework milestones currently ship in three forms:
  
This is the fifth milestone release of the framework and the framework testing application 'Zhone'. With the forthcoming release of other FSO API consumers, Zhone is going to be faded out. Further framework milestone releases will ship in two forms:
 
 
# fso-console-image: An FSO-compliant image featuring no user interface manager.
 
# fso-console-image: An FSO-compliant image featuring no user interface manager.
 
# fso-illume-image: An FSO-compliant image featuring the X-Window system with the Enlightenment-based Illume window manager.
 
# fso-illume-image: An FSO-compliant image featuring the X-Window system with the Enlightenment-based Illume window manager.
 +
# fso-image: An FSO-compliant image featuring the X-Window system with the Enlightenment-based Illume and additional applications.
  
===Thanks===
+
===Purpose===
  
Thanks to all our contributors, especially the testers and the people who build stuff on top of the freesmartphone.org APIs. Thanks, guys!
+
A flashable image that implements the freesmartphone.org APIs, serving as the basis for mobile application development.
  
===Purpose===
+
===Thanks===
  
A lightweight image that turns an Openmoko phone into a featurephone and that serves as the basis for further application development using the freesmartphone.org dbus APIs.
+
Thanks to all our contributors, especially the testers and the people who build stuff on top of the freesmartphone.org APIs. Thanks, guys: You Rock!
  
 
=== What's new since Milestone IV ===
 
=== What's new since Milestone IV ===
  
 
'''Note: These are only the highlights. See the [http://git.freesmartphone.org gitweb] commit logs for the gory details...'''
 
'''Note: These are only the highlights. See the [http://git.freesmartphone.org gitweb] commit logs for the gory details...'''
 +
 +
* General:
 +
** We now register one dbus connection per subsystem to prevent objects appearing on all bus names. If you previously only used the bus name <tt>org.freesmartphone.frameworkd</tt>, you have to adjust your code.
  
 
* ogsmd
 
* ogsmd
** Implement org.freesmartphone.GSM.Network.GetCountryCode() -> ss
+
** TI-Calypso specific tweaks, such as DSP handling, and monitoring.
** Revamped callhandling. Refactored the state-based call handler from TI Calypso (and Freescale Neptune) into a generic class that will be used from all modem abstractions. Ported singleline to use the new call handler. More tests needed for TI Calypso and Freescale Neptune.
+
** Additional device support for the
** Start with CINTERION MC75 support
+
*** Freescale Neptune,
** Implement org.freesmartphone.GSM.Device.[Get|Set]SpeakerVolume
+
*** the Cinterion mc75[i],
** Implemented org.freesmartphone.GSM.Device.[Get|Set]MicrophoneMuted
+
*** and the Qualcomm MSM,
** Added 'cid' and 'lac' results to org.freesmartphone.GSM.Network.GetStatus()
+
*** Ericsson F3507g modem,
** Implemented org.freesmartphone.GSM.SIM.GetIssuer() NOTE: Clients can now show the Mobile Virtual Network Operator instead of the actual service provider, if they want to.
+
*** Option UMTS cards.
** Added codeToOperator function and a mobile network operator database
+
** Backported the state-based call handling from TI Calypso and Freescale Neptune to the generic module.
** [FREESCALE NEPTUNE] Query our MNO database to show the alphanumeric operator name.
+
** Completely revamped ppp handling to feature more stable connection setup and teardown and better handover to pppd.
** Implemented org.freesmartphone.GSM.PDP.NetworkStatus()
+
** Added a database with mobile network providers and additional country-information.
** Implemented org.freesmartphone.GSM.PDP.GetNetworkStatus()
+
** Implemented (yet officially undocumented) org.freesmartphone.GSM.Phone.[Start|Stop]AutoRegister() and its signal org.freesmartphone.GSM.Phone.ServiceStatus() as a convenient way to ensure that ogsmd always tries to unlock the SIM and register with a provider, if necessary. (Corresponding functionality for Gprs is under discussion).
** Implemented org.freesmartphone.GSM.Network.TimeZoneReport()
+
** Refactored PDP handling for more stability
+
** Implemented org.freesmartphone.GSM.Phone.[Start|Stop]AutoRegister() and its signal org.freesmartphone.GSM.Phone.ServiceStatus() This is a convenient way to ensure that ogsmd always tries to unlock the SIM and register with a provider, if necessary. (Corresponding functionality for Gprs is under discussion).
+
** Create qualcomm_msm modem abstraction based on singleline with minimal changes.
+
** Added network access type to Provider Info (WARNING, breaks API!)
+
** Support for Ericsson F3507g modem (as found in Thinkpads)
+
** Preliminary support for Option UMTS cards
+
** Refactored Modem.dataOptions() into "pppd-configuration" attribute in modem data storage.
+
** Added TI-Calypso specific configuration option "ti_calypso_dsp_mode" to configure audio enhancements. Documentation for this option has been added to the sample configuration file.
+
** Implemented org.freesmartphone.GSM.Monitoring.* as stub erroring out with org.freesmartphone.GSM.UnsupportedCommand.
+
** [TI CALYPSO] Implemented the new monitoring API: org.freesmartphone.GSM.Monitoring.Get{Serving|Neighbour}CellInformation
+
** [TI CALYPSO] DSP command gets now resent before call setup.
+
** Implemented org.freesmartphone.GSM.Phone.StartAutoOnline(apn, user, password) This works the same way as StartAutoRegister(pin), trying to keep the connection online.
+
  
 
* ogpsd
 
* ogpsd
 +
**  Add support for debugging via UDP
  
 
* odeviced
 
* odeviced
** Added kernel26 option called 'fb_blank' (default=1). If you suffer from the Om bug WSOD (white screen of death), try setting this option to 0.
+
** Misc. device-specific tweaks for Openmoko kernels and devices.
** Added two new resources: 'CPU' and 'Display': Requesting the CPU resource will prevent the idle notifier from falling into the 'suspend' state, requesting the Display resource will prevent the idle notifier from falling into the 'idle_dim' (and following) state(s). With these two resource, it now takes only one additional rule to prevent the system from suspending while on a call or a musicplayer is playing.  
+
** Added two new resources: 'CPU' and 'Display': Requesting the CPU resource will prevent the idle notifier from falling into the 'suspend' state, requesting the Display resource will prevent the idle notifier from falling into the 'idle_dim' (and following) state(s). With these two resource, it now takes only one additional rule to prevent the system from suspending while on a call or a musicplayer is playing.
** Implemented org.freesmartphone.Device.LED.SetNetworking(s,s) -> ()
+
** WiFi is now really turned off/on. This improves power consumption a lot. Remember to use org.freesmartphone.Usage before talking to WiFi.
** Substituted own kobject notification with generic KobjectDispatcher.
+
** powercontrol_neo: Use bind/unbind way of controlling ar6k power to get the maximum power saving. This obsoletes wireless.pyx. At this point of time we no longer require Cython.
+
  
 
* oeventsd
 
* oeventsd
** Serialize dbus requests with a Queue. This (and removing a race in the RingToneAction) should fix the problems with neverending vibration and audio ringtone on short calls
+
** Fixed a major bug in the RingToneAction. This (and removing a race in the RingToneAction) fixes problems with neverending vibration and audio ringtone on short calls.
  
* ouseaged
+
* ousaged
** org.freesmartphone.Usage.Suspend() now returns a value instead of timing out (call did not return before the actual suspend was triggered). As an inherent result, the suspend now occurs asynchronous.
+
** Improved resource handling, resources are properly handled on shutdown and bootup.
** Added org.freesmartphone.Usage.[Shutdown|Reboot]() -> ()
+
** Implemented the new semantics for org.freesmartphone.Usage.Suspend() and the new system actions.
** Send signal org.freesmartphone.Usage.SystemAction() before suspending, after resuming, before shutting down, before rebooting.
+
** Disabled resource on shutdown.
+
 
** Check resume reason and launch emergency shutdown, if we woke up due to low battery. NOTE: This is only supported on Openmoko devices now. As there is no standard infrastructure for that in the kernel, we have to deal with device-specific solutions in lowlevel.py
 
** Check resume reason and launch emergency shutdown, if we woke up due to low battery. NOTE: This is only supported on Openmoko devices now. As there is no standard infrastructure for that in the kernel, we have to deal with device-specific solutions in lowlevel.py
** Add config option 'sync_resources_with_lifecycle' for specifying whether all Resources should be disabled on "startup", "shutdown", "always" (default), or "never".
 
  
 
* opimd
 
* opimd
** Fixed dbus objects not appearing since they were registered on the initial dbus connection, the subsystems use individual connections though.
+
** Misc. fixes to make it work with the current state of the framework implementation.
  
 
* onetworkd
 
* onetworkd
** Simple connection sharing now works
+
** Simple connection sharing now works.
  
 
* otimed
 
* otimed
** Add simple timesync to NTP and GPS
+
** Add simple automatic timesync to NTP and GPS.
** Add config options for time and zone sources. Set to "NONE" to disable this feature.
+
** Add configuration options for time and zone sources. Set to "NONE" to disable these features.
 
+
* misc
+
** We now register one dbus connection per subsystem to prevent objects appearing on all bus names. If you previously only used the bus name 'org.freesmartphone.frameworkd', you have to adjust your code.
+
  
 
* zhone
 
* zhone
Line 125: Line 115:
 
# Read the [[FSO UI Tutorial]] and have fun. Note though that this has not been updated yet for milestone 5 (which looks a bit differently and has more features).
 
# Read the [[FSO UI Tutorial]] and have fun. Note though that this has not been updated yet for milestone 5 (which looks a bit differently and has more features).
  
===What you can expect from this release===
+
===Feedback===
 
+
* Telephony
+
* Phonebook
+
* SMS
+
* Messagebook
+
* GPS
+
* frameworkd implementing the following dbus APIs:
+
** org.freesmartphone.GSM.*
+
** org.freesmartphone.Device.*
+
** org.freesmartphone.Usage
+
** org.freesmartphone.Resource
+
** org.freesmartphone.Events
+
** org.freedesktop.Gypsy
+
 
+
===What we expect from you===
+
  
* Feedback and comments for the dbus APIs. This is your chance to take an active role into shaping the application programming interface for all your forthcoming cool applications.
+
* Please provide feedback and comments for the dbus APIs. This is your chance to take an active role into shaping the application programming interface for all your forthcoming cool applications.
  
* Focus on using the services. Zhone is just our testing-UI and bears little functionality. It's the services that matter.
+
* Focus on using the services. Zhone is a diagnostic utility and not a phone application.
  
* The best way to interact with the framework is by exploring the dbus APIs. For that you can use these two tools, which are already installed:
+
* The best way to interact with the framework is by exploring the dbus APIs. For this, you can use these two tools, which are already installed:
 
** [[OpenmokoFramework/mdbus|mdbus]] -- a dbus introspection and interaction utility,
 
** [[OpenmokoFramework/mdbus|mdbus]] -- a dbus introspection and interaction utility,
 
** [[OpenmokoFramework/cli|cli-framework]] -- a python dbus command line interface.
 
** [[OpenmokoFramework/cli|cli-framework]] -- a python dbus command line interface.
Line 165: Line 140:
 
# log in via ssh (yes, again)
 
# log in via ssh (yes, again)
 
# export DISPLAY=:0.0
 
# export DISPLAY=:0.0
# run your favourite client (zhone, cli-framework, ...)
+
# run your favourite client (SHR, zhone, cli-framework, ...)
  
 
Attach the logs to the tickets, please.
 
Attach the logs to the tickets, please.
Line 171: Line 146:
 
==What's next==
 
==What's next==
  
* PIM
+
* More work on opimd.
* Networking
+
* Connman integration.
 +
* Bluetooth4 Networking.
 
* Unit Tests
 
* Unit Tests
 
* High Level Documentation
 
* High Level Documentation
* More Device Support (GTA03, HTC, EZX)
+
* More Device Support (GTA03, HTC)
  
 
==The Team==
 
==The Team==

Latest revision as of 15:08, 11 February 2009

Openmoko Framework Team Status Report 2009.2.2

Hi guys! This is the sixth Openmoko Framework Team Status update, featuring our fifth milestone release and more.

For the general motivation, the goals, and the way we are doing our work, please see OpenmokoFramework.

Key pages on:
FSO

(Other distributions)



Contents

[edit] People & Organization

No changes here. Current team still consists of Mickey, Jan, Daniel, and Stefan.

[edit] DBus APIs

All the public DBus API are documented on the official freesmartphone.org API reference site. XML-API files for generating language bindings are available from the git tree.

  • The GSM API (org.freesmartphone.GSM.*) has received minor updates and is now considered version 0.9. One notable addition is org.freesmartphone.GSM.Monitor, which is an interface for GSM monitoring, i.e. gathering diagnostic information over the serving cell and the neighbour cells.
  • The Device API (org.freesmartphone.Device.*) has received minor updates and is now considered 0.8. One notably addition is org.freesmartphone.Device.Audio.PlaySound which gained parameters for looping and length.
  • org.freesmartphone.Objects.ListObjectsByInterface has been generalized, it gained an additional bus name parameter and is now called org.freesmartphone.DBus.ListObjectsByInterface. It's now useful also outside FSO.
  • The opim API has reached this milestone, although it's still too much in flux to document it. Instead, please give it a try and join our discussions at the smartphones-standards list.

[edit] Implementations

Freesmartphone.org Framework Image -- 'Calling All Stations' (Milestone V)

This is the fifth milestone release of the framework and the diagnostic application 'Zhone'. While we announced that we are going to phase Zhone out as phone application, it found new life as a diagnostic application, i.e. for GPS and GSM monitoring. There might be more to come, depending on our spare time...

Framework milestones currently ship in three forms:

  1. fso-console-image: An FSO-compliant image featuring no user interface manager.
  2. fso-illume-image: An FSO-compliant image featuring the X-Window system with the Enlightenment-based Illume window manager.
  3. fso-image: An FSO-compliant image featuring the X-Window system with the Enlightenment-based Illume and additional applications.

[edit] Purpose

A flashable image that implements the freesmartphone.org APIs, serving as the basis for mobile application development.

[edit] Thanks

Thanks to all our contributors, especially the testers and the people who build stuff on top of the freesmartphone.org APIs. Thanks, guys: You Rock!

[edit] What's new since Milestone IV

Note: These are only the highlights. See the gitweb commit logs for the gory details...

  • General:
    • We now register one dbus connection per subsystem to prevent objects appearing on all bus names. If you previously only used the bus name org.freesmartphone.frameworkd, you have to adjust your code.
  • ogsmd
    • TI-Calypso specific tweaks, such as DSP handling, and monitoring.
    • Additional device support for the
      • Freescale Neptune,
      • the Cinterion mc75[i],
      • and the Qualcomm MSM,
      • Ericsson F3507g modem,
      • Option UMTS cards.
    • Backported the state-based call handling from TI Calypso and Freescale Neptune to the generic module.
    • Completely revamped ppp handling to feature more stable connection setup and teardown and better handover to pppd.
    • Added a database with mobile network providers and additional country-information.
    • Implemented (yet officially undocumented) org.freesmartphone.GSM.Phone.[Start|Stop]AutoRegister() and its signal org.freesmartphone.GSM.Phone.ServiceStatus() as a convenient way to ensure that ogsmd always tries to unlock the SIM and register with a provider, if necessary. (Corresponding functionality for Gprs is under discussion).
  • ogpsd
    • Add support for debugging via UDP
  • odeviced
    • Misc. device-specific tweaks for Openmoko kernels and devices.
    • Added two new resources: 'CPU' and 'Display': Requesting the CPU resource will prevent the idle notifier from falling into the 'suspend' state, requesting the Display resource will prevent the idle notifier from falling into the 'idle_dim' (and following) state(s). With these two resource, it now takes only one additional rule to prevent the system from suspending while on a call or a musicplayer is playing.
    • WiFi is now really turned off/on. This improves power consumption a lot. Remember to use org.freesmartphone.Usage before talking to WiFi.
  • oeventsd
    • Fixed a major bug in the RingToneAction. This (and removing a race in the RingToneAction) fixes problems with neverending vibration and audio ringtone on short calls.
  • ousaged
    • Improved resource handling, resources are properly handled on shutdown and bootup.
    • Implemented the new semantics for org.freesmartphone.Usage.Suspend() and the new system actions.
    • Check resume reason and launch emergency shutdown, if we woke up due to low battery. NOTE: This is only supported on Openmoko devices now. As there is no standard infrastructure for that in the kernel, we have to deal with device-specific solutions in lowlevel.py
  • opimd
    • Misc. fixes to make it work with the current state of the framework implementation.
  • onetworkd
    • Simple connection sharing now works.
  • otimed
    • Add simple automatic timesync to NTP and GPS.
    • Add configuration options for time and zone sources. Set to "NONE" to disable these features.
  • zhone
    • Add gettext support
    • Add russian translation
    • Send and receive USSD messages
    • Show error/warning when SIM is full
    • Simple GSM cell monitor
    • Revamped GPS monitor
    • Display current timezone
    • Try unlocking the screen on incoming calls
    • Show the name from the phonebook during call

[edit] Installation

  1. Grab a uImage and a .jffs2 for your device from freesmartphone.org's download section.
  2. Flash it to your Neo 1973 (om-gta01) or Neo FreeRunner (om-gta02) with dfu-util.
  3. Boot and wait until the Zhone main window appears.
  4. If the Zhone main window does not appear on first boot or stays with "connecting to dbus..." longer than 1 minute, then please reboot. The base system still has some problems with dbus starting for the first time
  5. Read the FSO UI Tutorial and have fun. Note though that this has not been updated yet for milestone 5 (which looks a bit differently and has more features).

[edit] Feedback

  • Please provide feedback and comments for the dbus APIs. This is your chance to take an active role into shaping the application programming interface for all your forthcoming cool applications.
  • Focus on using the services. Zhone is a diagnostic utility and not a phone application.
  • The best way to interact with the framework is by exploring the dbus APIs. For this, you can use these two tools, which are already installed:
    • mdbus -- a dbus introspection and interaction utility,
    • cli-framework -- a python dbus command line interface.
  • Before reporting bugs against the framework, please try with cli-framework to see whether it's really a problem of the framework or rather the UI (which gets much less attention from us).
  • If you want to interact with the GSM modem, while the frameworkd is running, you can use mickeyterm -- a MUXer-aware minimal terminal emulator.

[edit] Best way to hand us debug logs

  1. log in via ssh
  2. killall python
  3. edit /etc/frameworkd.conf and add to the frameworkd section:
    1. log_level = DEBUG
    2. log_to = file
    3. log_destination = /somewhere/where/you/have/space (preferably SD or NFS, etc.)
  4. Read our documented frameworkd.conf configuration file to learn about the other options.
  5. relaunch frameworkd (/etc/init.d/frameworkd stop; /etc/init.d/frameworkd start)
  6. log in via ssh (yes, again)
  7. export DISPLAY=:0.0
  8. run your favourite client (SHR, zhone, cli-framework, ...)

Attach the logs to the tickets, please.

[edit] What's next

  • More work on opimd.
  • Connman integration.
  • Bluetooth4 Networking.
  • Unit Tests
  • High Level Documentation
  • More Device Support (GTA03, HTC)

[edit] The Team

Mickey, Jan, Daniel, Stefan.

Personal tools
Openmoko Framework Team Status Report 2009.2.2

Hi guys! This is the sixth Openmoko Framework Team Status update, featuring our fifth milestone release and more.

For the general motivation, the goals, and the way we are doing our work, please see OpenmokoFramework.

Key pages on:
FSO

(Other distributions)



People & Organization

DBus APIs

All the public DBus API are documented on the official freesmartphone.org API reference site. DBus Introspection XML files are available in the git tree.

  • The GSM API (org.freesmartphone.GSM.*) has proven very solid and will be tagged 0.9 before the next milestone.
  • The Device API (org.freesmartphone.Device.*) has received some additions for power management and starts stabilizing.
  • org.freesmartphone.Objects.ListObjectsByInterface is using DBus-introspection now.
  • The Events subsystem has gained an experimental DBus interface to add and remove rules and to test triggers.

Implementations

Freesmartphone.org Framework Image -- (Milestone V)

This is the fifth milestone release of the framework and the framework testing application 'Zhone'. With the forthcoming release of other FSO API consumers, Zhone is going to be faded out. Further framework milestone releases will ship in two forms:

  1. fso-console-image: An FSO-compliant image featuring no user interface manager.
  2. fso-illume-image: An FSO-compliant image featuring the X-Window system with the Enlightenment-based Illume window manager.

Thanks

Thanks to all our contributors, especially the testers and the people who build stuff on top of the freesmartphone.org APIs. Thanks, guys!

Purpose

A lightweight image that turns an Openmoko phone into a featurephone and that serves as the basis for further application development using the freesmartphone.org dbus APIs.

What's new since Milestone IV

Note: These are only the highlights. See the gitweb commit logs for the gory details...

  • ogsmd
    • Implement org.freesmartphone.GSM.Network.GetCountryCode() -> ss
    • Revamped callhandling. Refactored the state-based call handler from TI Calypso (and Freescale Neptune) into a generic class that will be used from all modem abstractions. Ported singleline to use the new call handler. More tests needed for TI Calypso and Freescale Neptune.
    • Start with CINTERION MC75 support
    • Implement org.freesmartphone.GSM.Device.[Get|Set]SpeakerVolume
    • Implemented org.freesmartphone.GSM.Device.[Get|Set]MicrophoneMuted
    • Added 'cid' and 'lac' results to org.freesmartphone.GSM.Network.GetStatus()
    • Implemented org.freesmartphone.GSM.SIM.GetIssuer() NOTE: Clients can now show the Mobile Virtual Network Operator instead of the actual service provider, if they want to.
    • Added codeToOperator function and a mobile network operator database
    • [FREESCALE NEPTUNE] Query our MNO database to show the alphanumeric operator name.
    • Implemented org.freesmartphone.GSM.PDP.NetworkStatus()
    • Implemented org.freesmartphone.GSM.PDP.GetNetworkStatus()
    • Implemented org.freesmartphone.GSM.Network.TimeZoneReport()
    • Refactored PDP handling for more stability
    • Implemented org.freesmartphone.GSM.Phone.[Start|Stop]AutoRegister() and its signal org.freesmartphone.GSM.Phone.ServiceStatus() This is a convenient way to ensure that ogsmd always tries to unlock the SIM and register with a provider, if necessary. (Corresponding functionality for Gprs is under discussion).
    • Create qualcomm_msm modem abstraction based on singleline with minimal changes.
    • Added network access type to Provider Info (WARNING, breaks API!)
    • Support for Ericsson F3507g modem (as found in Thinkpads)
    • Preliminary support for Option UMTS cards
    • Refactored Modem.dataOptions() into "pppd-configuration" attribute in modem data storage.
    • Added TI-Calypso specific configuration option "ti_calypso_dsp_mode" to configure audio enhancements. Documentation for this option has been added to the sample configuration file.
    • Implemented org.freesmartphone.GSM.Monitoring.* as stub erroring out with org.freesmartphone.GSM.UnsupportedCommand.
    • [TI CALYPSO] Implemented the new monitoring API: org.freesmartphone.GSM.Monitoring.Get{Serving|Neighbour}CellInformation
    • [TI CALYPSO] DSP command gets now resent before call setup.
    • Implemented org.freesmartphone.GSM.Phone.StartAutoOnline(apn, user, password) This works the same way as StartAutoRegister(pin), trying to keep the connection online.
  • ogpsd
  • odeviced
    • Added kernel26 option called 'fb_blank' (default=1). If you suffer from the Om bug WSOD (white screen of death), try setting this option to 0.
    • Added two new resources: 'CPU' and 'Display': Requesting the CPU resource will prevent the idle notifier from falling into the 'suspend' state, requesting the Display resource will prevent the idle notifier from falling into the 'idle_dim' (and following) state(s). With these two resource, it now takes only one additional rule to prevent the system from suspending while on a call or a musicplayer is playing.
    • Implemented org.freesmartphone.Device.LED.SetNetworking(s,s) -> ()
    • Substituted own kobject notification with generic KobjectDispatcher.
    • powercontrol_neo: Use bind/unbind way of controlling ar6k power to get the maximum power saving. This obsoletes wireless.pyx. At this point of time we no longer require Cython.
  • oeventsd
    • Serialize dbus requests with a Queue. This (and removing a race in the RingToneAction) should fix the problems with neverending vibration and audio ringtone on short calls
  • ouseaged
    • org.freesmartphone.Usage.Suspend() now returns a value instead of timing out (call did not return before the actual suspend was triggered). As an inherent result, the suspend now occurs asynchronous.
    • Added org.freesmartphone.Usage.[Shutdown|Reboot]() -> ()
    • Send signal org.freesmartphone.Usage.SystemAction() before suspending, after resuming, before shutting down, before rebooting.
    • Disabled resource on shutdown.
    • Check resume reason and launch emergency shutdown, if we woke up due to low battery. NOTE: This is only supported on Openmoko devices now. As there is no standard infrastructure for that in the kernel, we have to deal with device-specific solutions in lowlevel.py
    • Add config option 'sync_resources_with_lifecycle' for specifying whether all Resources should be disabled on "startup", "shutdown", "always" (default), or "never".
  • opimd
    • Fixed dbus objects not appearing since they were registered on the initial dbus connection, the subsystems use individual connections though.
  • onetworkd
    • Simple connection sharing now works
  • otimed
    • Add simple timesync to NTP and GPS
    • Add config options for time and zone sources. Set to "NONE" to disable this feature.
  • misc
    • We now register one dbus connection per subsystem to prevent objects appearing on all bus names. If you previously only used the bus name 'org.freesmartphone.frameworkd', you have to adjust your code.
  • zhone
    • Add gettext support
    • Add russian translation
    • Send and receive USSD messages
    • Show error/warning when SIM is full
    • Simple GSM cell monitor
    • Revamped GPS monitor
    • Display current timezone
    • Try unlocking the screen on incoming calls
    • Show the name from the phonebook during call

Installation

  1. Grab a uImage and a .jffs2 for your device from freesmartphone.org's download section.
  2. Flash it to your Neo 1973 (om-gta01) or Neo FreeRunner (om-gta02) with dfu-util.
  3. Boot and wait until the Zhone main window appears.
  4. If the Zhone main window does not appear on first boot or stays with "connecting to dbus..." longer than 1 minute, then please reboot. The base system still has some problems with dbus starting for the first time
  5. Read the FSO UI Tutorial and have fun. Note though that this has not been updated yet for milestone 5 (which looks a bit differently and has more features).

What you can expect from this release

  • Telephony
  • Phonebook
  • SMS
  • Messagebook
  • GPS
  • frameworkd implementing the following dbus APIs:
    • org.freesmartphone.GSM.*
    • org.freesmartphone.Device.*
    • org.freesmartphone.Usage
    • org.freesmartphone.Resource
    • org.freesmartphone.Events
    • org.freedesktop.Gypsy

What we expect from you

  • Feedback and comments for the dbus APIs. This is your chance to take an active role into shaping the application programming interface for all your forthcoming cool applications.
  • Focus on using the services. Zhone is just our testing-UI and bears little functionality. It's the services that matter.
  • The best way to interact with the framework is by exploring the dbus APIs. For that you can use these two tools, which are already installed:
    • mdbus -- a dbus introspection and interaction utility,
    • cli-framework -- a python dbus command line interface.
  • Before reporting bugs against the framework, please try with cli-framework to see whether it's really a problem of the framework or rather the UI (which gets much less attention from us).
  • If you want to interact with the GSM modem, while the frameworkd is running, you can use mickeyterm -- a MUXer-aware minimal terminal emulator.

Best way to hand us debug logs

  1. log in via ssh
  2. killall python
  3. edit /etc/frameworkd.conf and add to the frameworkd section:
    1. log_level = DEBUG
    2. log_to = file
    3. log_destination = /somewhere/where/you/have/space (preferably SD or NFS, etc.)
  4. Read our documented frameworkd.conf configuration file to learn about the other options.
  5. relaunch frameworkd (/etc/init.d/frameworkd stop; /etc/init.d/frameworkd start)
  6. log in via ssh (yes, again)
  7. export DISPLAY=:0.0
  8. run your favourite client (zhone, cli-framework, ...)

Attach the logs to the tickets, please.

What's next

  • PIM
  • Networking
  • Unit Tests
  • High Level Documentation
  • More Device Support (GTA03, HTC, EZX)

The Team

Mickey, Jan, Daniel, Stefan.