First look at OpenMoko software
Jul 14, 2008 — by Eric Brown — from the LinuxDevices Archive — viewsThe OpenMoko Neo FreeRunner lives up to its billing as a completely open source, hackable hardware platform, says an Ars Technica first look. Yet that very openness, including its choice of three mobile stacks, adds to the confusion for Linux developers, says the article.
(Click for larger view of the OpenMoko Neo FreeRunner)
In “First Look: OpenMoko's Linux-based open smartphone platform,” Ars Technica writer Ryan Paul takes a close look at the software now available for the Linux-based Neo FreeRunner mobile phone, which shipped on July 4th. Paul was not yet able to acquire one of the phones itself, which incorporate a 400MHz Samsung S3C2442 (ARM9 core), 128MB of RAM, 256MB of flash, and a 2.8-inch 640 x 480 TFT display, but he tried out the first of three software stacks that will be available for the phone.
Paul's experiences with the original Gnome Mobile & Embedded Initiative (GMAE)-based stack, which includes GTK+ (GIMP Toolkit), are largely positive. Yet, he is concerned the FreeRunner could stall due to the confusion caused by upcoming arrival of OpenMoko's new Trolltech Qtopia-based stack, as well as an alternative stack still under development that is based on FreeSmartphone.org (FSO) APIs. The FreeRunner currently ships only with the Gnome/GTK+ stack, but users can flash it with the Qtopia-based stack, while the FSO is still in early stages of development.
Neo FreeRunner |
According to Paul, OpenMoko switched to Qtopia when it decided it wanted to sell the Neo FreeRunner as a mass market consumer phone, as well as being a hacker's platform such as its earlier Neo 1973 phone or Trolltech's defunct Linux-based Greenphone. Qtopia's phone communications features appear to more stable and reliable than those of the Gnome/GTK+-based stack, he suggests, making it a better choice for a mass-market phone.
The Gnome/GTK+ stack (om2007.2)
According to Paul, the Gnome/GTK+ stack, which ships with the FreeRunner and is officially called om2007.2, offers a variety of applications, a “moderately conventional finger-oriented interface” and a “reasonably intuitive environment” that “adheres to a very high level of visual consistency.” Like Nokia's Maemo, which runs on its Internet Tablets, the stack uses GTK+, as well as OpenedHand's lightweight Matchbox window manager, says Paul. Like the latest version of Trolltech's Qt, it incorporates Apple's open source WebKit rendering engine. Paul praises the GTK+ WebKit port, especially for its “small footprint and excellent support for standards.”
The Gnome/GTK+ stack offers a full list of smartphone applications, says Paul, including an on-screen keyboard. It also offers full root access to BusyBox “with all of the standard scripting tools like sed and awk.” Other apps include games, a media player, a calculator, and a package manager. The OpenMoko wiki is said to provide om2007.2 developers with instructions on how to set up a cross-compilation Linux toolchain, and then compile and package a program, he adds.
The platform supports the OpenEmbedded environment as a build engine for generating package sets. Phone features are said to be exposed through the gsmd daemon, which receives instructions via standard UNIX sockets. The libgsmd library is said to wrap the instruction protocol with a simple API, and a gsmd command shell tool can be used for testing, debugging, and interactive control over the daemon. Although not officially supported, Python can be used for rapid prototyping, he adds.
All in all, he concludes, the om2007.2 offers “a pretty strong user experience.”
Gnome Mobile/GMAE architecture
The Qtopia ASU stack
According to Paul, “the limitations of GTK+ and the incompleteness of gsmd” compelled the OpenMoko developers to switch to Qtopia. Offering a “complete phone server component that is more stable and reliable than gsmd,” the Qtopia-based stack is called the April Software Update (ASU). The ASU stack is said to use Qtopia's X11 port, enabling it to support existing GTK-based applications, he writes.
The ASU stack also incorporates some components from Enlightenment's lightweight E17 desktop environment, which Paul lauds for its “rich touchscreen applications.” He adds, “The ASU stack offers a visually sophisticated application launcher interface called Illume that takes full advantage of touchscreen interaction.” Although still a work in progress, Illume's “interaction paradigm is quite innovative,” he writes.
Paul notes that Nokia, which recently acquired Trolltech, will be making Qt libraries available for third-party applications in future Maemo platforms. He predicts that Nokia may also “bring Qt support to its new open source Symbian platform.”
The downside of moving to ASU at this point, said Paul, is that it's not fully compatible with the Gnome/GTK+ stack. “Software applications designed to integrate with om2007.2 and gsmd won't fully integrate with the ASU environment,” he writes, adding that developers will need to call upon Qt and C++ “for proper integration.”
The FSO stack
Although OpenMoko plans to focus primarily on Qtopia ASU, it also plans to continue supporting the Gnome/GTK+ stack, writes Paul. Integrating these two “very different platforms” to avoid “fragment[ing] the OpenMoko application ecosystem” requires a third toolkit, he adds, namely the FSO stack.
OpenMoko's FSO framework initiative, which implements the FreeSmartphone.org spec, is clearly the company's long-term phone stack of choice, suggests Paul. It is said to offer a “standardized D-Bus API for providing high-level access to the GSM functionality and other phone-related parts of the stack,” he writes. In this way, applications written in any toolkit using a programming language that has D-Bus bindings will be fully integrated in both stacks.
The FSO stack is “still in very early stages of development,” writes Paul. However, developers working with the stack inform him that its phone server is “already better than gsmd or the Qtopia phone server.”
A Neo FreeRunner GTK+-based application screen |
Too many stacks?
Paul appears to suggest that OpenMoko is in danger of hobbling itself by trying to reach developer and consumer audiences at once while also trying to keep both the Gnome/GTK+ and Qtopia developers happy. The Neo FreeRunner “is obviously a powerful tool for prototyping mobile software,” he writes, “but it isn't clear yet whether it's also ready for adoption as a personal smartphone.” Meanwhile, the sloppy organization of the OpenMoko wikis and the overabundance of options is enough to give some developers pause, he writes. Some may consider focusing instead on other platforms such as Android, he adds.
“OpenMoko's platform strategy mirrors the diversity of the Linux desktop software ecosystem,” writes Paul. “There are a multitude of parallel options with many layers and varying degrees of overlap. This provides end users with an enormous amount of flexibility, but it also creates a lot of complexity. The choices are difficult to navigate, and the lack of a cohesive direction contributes to fragmentation and redundancy.”
The Qtopia ASU stack will likely be a popular choice since it offers the highest level of portability, writes Paul, and also offers the Enlightenment/Illume technology. Yet he adds that the Gnome/GTK+ stack “will enable third-party software to visually integrate with the platform. It will also enable developers to port some popular GTK-based Linux desktop applications.”
Meanwhile, Google makes life easier for Android developers with its single, standardized software stack. Yet many developers may not be comfortable with Android's “top-down approach,” which “completely eschews native code,” he writes. “Google's approach vastly simplifies development and neatly avoids fragmentation and portability problems, but it also imposes extreme constraints on flexibility. By comparison, OpenMoko's software enthusiastically embraces the power and diversity of Linux but does so at a high cost in performance, consistency, reliability, and ease of development.”
OpenMoko's current dilemma, he writes, is that “none of the three stacks are really fully functional at this stage of development.” If the company's plans pan out, however, Paul predicts that the Neo FreeRunner could follow in the footsteps of Nokia's Maemo-based Internet Tablet, which has attracted ports from an “impressive variety of Linux desktop environments and graphical shells.” He notes that KDE developers have already started working on experimental OpenMoko ports.
Paul concludes, “Users who absolutely need reliability in a programmable smartphone right now are better off looking for more mature options, but enthusiasts who appreciate the potential of a truly hackable smartphone and are willing to be patient with some of the current inadequacies will probably find the current platform acceptable.”
The full Ars Technica story on OpenMoko should be available here.
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.