OpenmokoFramework/Status Update 4

From Openmoko

Jump to: navigation, search
Openmoko Framework Team Status Report 2008.9.1

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

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

Key pages on:

(Other distributions)



  • Stefan Schmidt <> was reactivated and joined the framework team part-time -- welcome back, Stefan!


  • We have been getting a nice bunch of patches from the community now that the project is more visible. Thanks a lot, folks -- especially to the pkg-fso people from the Debian project.



Openmoko Framework Image -- 'On the Road Again' (Milestone III)

This is the third milestone release of the framework and the framework testing application 'Zhone'.


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

What's new since Milestone II

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

  • General
    • Added dbus interface to configure debug logging level and destination at runtime
    • Refactored lots of code to improve clarity and maintainability
  • odevice
    • Implements org.freesmartphone.Device.PowerSupply (almost polling free [only for CC battries though])
    • Implements org.freesmartphone.Device.PowerControl for Freerunner USB Host
  • ogsmd (renamed from ophoned)
    • Lots of bug and stability fixes based on feedback (and debug logs) from people
    • Switched SMS handling to PDU mode -- the foundation for great language support
    • For PDU mode, currently, only the 7-bit reference GSM charset is supported, UCS-2 will come soon
    • [TI Calypso] Improved GSM audio quality (thanks to anonymous)
    • [Freescale Neptune] Improved support for network status
  • oeventsd (revamped oeventd)
    • Notify on incoming SMS
    • Implement Charging LED spec
    • Change audio scenarios according to system state
    • We now have a full-fledged user-tweakable rules engine using yaml-syntax to configure system-wide behaviour.
    • Regarding granularity and verbosity we're not 100% sure yet what we want to provide as rules -- feedback appreciated.
    • See the rules file that we ship with milestone3 as an example:
trigger: IncomingMessage()
actions: MessageTone(play)
trigger: CallStatus()
filters: HasAttr(status, "incoming")
actions: RingTone(play)
trigger: CallStatus()
filters: Not(HasAttr(status, "incoming"))
actions: RingTone(stop)
trigger: CallStatus()
filters: HasAttr(status, "active")
actions: SetScenario(gsmhandset)
trigger: CallStatus()
filters: HasAttr(status, "release")
actions: SetScenario(stereoout)
trigger: PowerStatus()
filters: HasAttr(status, "Charging")
- SetLed("gta02_power_blue", "dark")
- SetLed("gta02_power_orange", "light")
trigger: PowerStatus()
filters: HasAttr(status, "Discharging")
- SetLed("gta02_power_blue", "dark")
- SetLed("gta02_power_orange", "dark")
trigger: PowerStatus()
filters: HasAttr(status, "Full")
- SetLed("gta02_power_blue", "light")
- SetLed("gta02_power_orange", "dark")
trigger: PowerStatus()
filters: HasAttr(status, "Critical")
- SetLed("gta02_power_blue","dark")
- SetLed("gta02_power_orange","blink")
trigger: InputEvent()
- HasAttr(switch, "HEADSET")
- HasAttr(event, "pressed")
actions: Command('amixer -d sset "Amp Spk" mute')
trigger: InputEvent()
- HasAttr(switch, "HEADSET")
- HasAttr(event, "released")
actions: Command('amixer -d sset "Amp Spk" unmute')
  • opreferencesd
    • Delivers configuration depending on the current profile
  • opgsd
    • Stability fixes all over the place
    • GTA01 support (GL Hammerhead)
    • Improve warmstart by making ephemeris and almanac persistent
  • zhone
    • Move some functionality into illume and improve integration
    • Move some functionality into oeventsd rules
    • Add profile switcher
    • Add aux menu
    • Add DTMF tab

Download / Installation

  1. Grab a uImage and a .jffs2 for your device.
  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 3 (which looks a bit differently and has more features).

What you can expect from this release

  • Telephony
  • Phonebook
  • Messagebook (SMS)
  • GPS
  • frameworkd implementing the following dbus APIs:
    • org.freesmartphone.Device.{Audio|Input|IdleNotifier|PowerSupply|Display|LED|PowerControl}
    • org.freesmartphone.Usage
    • org.freesmartphone.GSM.{Device|SIM|Network|PDP|CB|HZ}
    • 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 'log_level = DEBUG' into the frameworkd section.
  4. run frameworkd and pipe the log (on stderr) somewhere or keep it in your terminal buffer (warning, it's HUGE :)), like '/usr/bin/frameworkd 2> /media/card/logfile-with-date'
  5. log in via ssh (yes, again)
  6. export DISPLAY=:0.0
  7. run zhone

Attach the logs to the tickets, please.

What's next

  • Google Summer of Code project integration
    • Accellerometer Gestures
    • Bluetooth Remote
    • PIM
  • Time(zone) handling
  • Alarm support

The Team

Mickey, Jan, Daniel, Guillaume, John, Stefan.

Personal tools