好久不見! Three weeks passed within a blink. Last sunday, we smoothly landed in Frankfurt/Main after 14 hours of a calm flight. 4/5 of the Openmoko Framework Team (while Stefan was on vacation in .au and missed all the fun) met in Taipei to tackle some outstanding issues and synchronize with the plans for the next major Openmoko release.
For a start, please refer to the blog postings of Charlie and Daniel, who mentioned some of the things we did in detail. Let me cover the current status and what we are going to work on in the remainder of this year and then step back and talk a bit about the meaning of all this. Right now the framework offers you support for the following tasks, everything accessible via consistent and convenient DBus interfaces:
- Device control (Backlight, Peripheral Power, Real Time Clock, USB, Switches, Buttons, Audio) covers the basics for embedded systems. Thanks to kernel 2.6, most of these interfaces are working on all devices — adding a new device should require almost 0 work. In fact the only machine specific module we have in odeviced is neo-powercontrol which takes care of the Openmoko specific peripheral devices.
- GSM Telephony (SIM access, SMS, Network, Calls, Supplemental Services, GPRS) is more or less feature complete minus some of the more esoteric features such as advice of charge (AOC) and GSM time (zone) reporting, which are only supported by few providers. Right now we have support for the following modems:
- Generic singleline and multiplexed multiline, serving as start points for your customizations,
- TI Calypso, as found in Openmoko devices and some HTC ones,
- Sierra USB, as found in Lenovo Thinkpads,
- Freescale Neptune, as found in Motorola EZX phones.
Support for the SIEMENS / Cinterion MC75i as well as for the Qualcomm-based HTC devices is on our list next.
- Resource Control for peripheral subsystems, such as GSM, GPS, Bluetooth, Wifi, etc. This provides you with reference counted resource management allowing for a maximum of user level power management (kernel level power management is not covered here).
- (A)GPS support covering NMEA and UBX devices with downloadable ephemeris and almanac for greatly improved warm- and coldstart performance.
- Preferences, Events, and Rules. This triade supports a simple way of configuring application preferences as well as defining system behaviour (display dimming, ringtones, sms notifications, battery notifications, and much more) using a set of extendable and customizable rules.
The two major things missing until we officially declare a 0.9 release are PIM and Networking. For the former, we’re attempting to integrate the results of a Google Summer of Code project (opim API), for the latter, we’re (still) evaluating whether NetworkManager, Moblin Connman, or Exalt can fit our usecases and needs — plus a very limited set of convenient calls on top.
All of the above is of course complementing the freedesktop.org initiative and should serve as a natural addition in order to help standardizing important Linux-based embedded APIs, as found in Maemo, Openmoko, LiMo, Moblin, OpenEZX, etc. We are commited to cooperate with said platforms to help defragmenting the mobile device world so that application programmers have it easier to target multiple platforms.
Along this line, the recently posted weekly Openmoko engineering newsletter adressed the issue of Openmoko and its relationship to freesmartphone.org. The bottom line is that Openmoko is funding the freesmartphone.org initiative to help fighting fragmentation. Previously Openmoko’s strategy was breadth-first to show the amazing versatility of open devices. Their next strike is going deep in one direction to create something that is both attracting developers (thanks to the dbus service level framework) as well as users (thanks to a pleasingly simple, extensible, phone application). We will see both of this in the forthcoming Openmoko 2009 distribution which is going to be the first FSO-compliant distribution ever — with more (e.g. Debian with pkg-fso, SHR and Rasterman’s work) being underway. Lots of them built out of OpenEmbedded, of course. (Speaking of OpenEmbedded — the long awaited switch to git is happening this week. Open the flood gates and embrace our new revision control system :))
Last but not least some personal remarks. With me being part of the Openmoko family for more than two years now, it was time to reevaluate and redefine our relationship. I’m really glad to announce that Openmoko supports my direction of stepping a bit back from being overall Openmoko platform architect, allowing me to concentrate on the freesmartphone.org framework — making this part of the Openmoko platform as strong as possible.
As said, the three weeks passed too quickly and we found out we need to synchronize more often — hence I’m looking forward to increase the frequency a bit and next year stay more often at the Openmoko headquarters. 乾杯!
Read more →