02 Jul 2008
Planet OpenEZX
Michael Lauer: FSO meets EZX
28 Jun 2008
Planet OpenEZX
Michael Lauer: GTK, ASU, FSO? TMTLA!
With the new Openmoko Framework initiative (as posted in previous installments of this column) facing its first milestone release (nothing but solid phone calls, so don't be disappointed. If you have no Openmoko device, check out the video in the same directory), we are now facing three different major software stacks for the Neo family (there are special-purpose variants, but I won't go into details here).
As there is quite a chance that developers might be confused about that, I want to use this chance to sketch the big picture and answer some of the questions around the future of these stacks.
Products
Openmoko is selling hardware products. Openmoko funds work on software stacks, so that the actual hardware can be more than just a developer board, but rather approaching a useful mobile compagnion. As with all kinds of products, Openmoko products have a - more or less specific - target audience. However, as we learned during all these months since we sketched the first product in the nice summer of 2006, even this specific target audience is not completely homogenous. The existance of the three software stacks is both due to the fact that we all are still learning how to write software for mobile devices, but also because there are quite substantial differences in what people expect from and want to do with their Openmoko devices.
Stacks
So - what are these three stacks, where are the actual differences and who should run which stack? In a nutshell, it boils down to the following:
- The Openmoko 2007.2 Stack, utilizing GTK+ and assorted applications. 2007.2, since it was the 2nd iteration of the GTK+ user interface that we released in 2007.
- The ASU Stack, the combination of a classical smartphone stack based on Trolltech's Qtopia ported to X11 and enhanced with an EFL-based launcher and new applications. You may have seen the term Illume which is the launcher of ASU.
- The FSO Stack, also known as the Openmoko Framework initiative. This one is called FSO, because it's an implementation of the freesmartphone.org APIs. You may also have seen the term Zhone which describes the framework testing user interface and is a minor part of this stack.
Openmoko 2007.2 is for people who are familiar with the GNOME Mobile initiative and who want to write applications that run on multiple devices running (parts of) GNOME Mobile. This includes Maemo, which runs on the Nokia Internet Tablets. The strength of the GTK+ stack is a UI and programming environment similar to what you run on your Linux desktop, if you're into GNOME. The GTK+ has PIM applications based on the Evolution Data Server and runs the gsmd phone server. Although you can use them, the applications are still pretty rough und unfinished. Some people have problems with the stability of the phone server.
ASU has been started to integrate the Qtopia stack - ported to X11 - with a new set of graphically pleasing applications based on the Enlightenment Foundation Libraries. Qtopia is a more mature product than the GNOME Mobile stack and you can expect all the standard feature phone applications to work in a solid way. It uses the Qtopia phone server. Since - contrary to standard Qtopia - it does not directly use the framebuffer, non-Qt applications can safely share the screen with Qt applications, that is until you are writing applications that do not communicate with the framework. If you want to integrate, then you're back to C++ and Qt.
FSO has been started to overcome the deficiencies both of the 2007.2 and the ASU stack, namely to come up with an extensible framework that gives developers the infrastructure they need to create solid and exciting software products based on the Openmoko platform. An infrastructure that supports competing UIs while we can collaborate on developing services, making the framework strong . Here, the focus is on stable highlevel services that you can access from whatever language or UI that supports dbus. People report that despite its infancy, e.g. the phone server part in FSO is already more solid than anywhere else.
Future
Right now, Openmoko's priority is getting the ASU to a point where it is stable and satisfies the every-day use with the FreeRunner product. In parallel, Openmoko recognizes the framework initiative as critical for further iterations of their software stacks. The goal is to be able to take one application from one stack and replace it with an application from another stack. Once all applications are framework-aware, this goal can be reached - which also implies userdata compatibility between software stacks, of course!
In practice, this means once the framework has reached a certain extent (see http://trac.freesmartphone.org for our tasks, issues, and milestones), we can expect it to be seen in all kinds of products, likely including further releases of the ASU. Until then, the FSO image is already your best bet if you want to write something that is tailored for your special usecase. If you want, you could also help us shaping our framework-testing-toy Zhone into something that fulfills the daily needs ![]()
Of course, Openmoko would also love to see Openmoko 2007.2 getting more love, but they don't have the resources to do it. If you are interested in working on it, here's a strategy I'd recommend:
- Remove neod, gsmd, and phonekit.
- Integrate the framework phone subsystem and make the dialer talk fso.org OTAPI (substituting gsmd and phonekit).
- Integrate the framework device subsystem and make the launcher use it (substituting neod).
- Debug and polish the PIM applications.
- (optional and only when it's ready) Integrate the framework PIM subsystem and make the PIM applications talk framework.
I hope that answered most of your questions. If not, feel free to add more via commenting this article.
28 Jun 2008 6:15am GMT
15 Jun 2008
Planet OpenEZX
Michael Lauer: Momentum
Momentum is something really strange! It's hardly predictable and you have to run to catch it before it goes away - but when it's there, things are progressing like there's no tomorrow ![]()
There's a whole lot of momentum present in some of the projects I care about:
OpenEmbedded
- OpenEmbedded will abandon monotone and move to git as its primary SCM. This will increase the wide-spread adoption of OE and attract new people. We will have more (shortlived) branches and merges will be easier. We will also revamp the commit policies a bit to introduce more stability to both the stable and the unstable branches.
- Setting up the non-profit organization (german registered association e.V.) is progressing and we will soon have our legal entity.
- Some couraged people are revamping our website into something that's more accurate, structured, (and pretty). Good for both OE-novices and experts.
OpenEZX
- OpenEZX developers started to push for mainline inclusion. This will greatly increase the visibility of our project.
- OpenEZX developers are working on a 2nd stage bootloader that overwrites the MOTO kernel, but leaves the rest of the flash file system untouched - by this we can boot both an OpenEZX kernel from SD as well as the original system (with its kernel on SD), which makes testing a relief.
- We found security holes in the MOTOMAGX kernel, which may enable us to put our own code on these systems.
- Motorola has released new devices, apparantly running EZX. More devices for the platform!
- Openmoko's Framework and Zhone phone UI is going to provide a slick looking - working - featurephone userland for OpenEZX - the first releases are just a couple of days away. It's now important we get kernel work finished, so we can release something that is a real alternative to the closed source MOTO system on EZX devices.
Openmoko
- Openmoko successfully went into mass production of the Neo FreeRunner (GTA02) device. Finally, people will have the 2nd generation of the first truly open source hardware platform in their hands.
- The Qtopia/Enlightenment based next generation software update is progressing nicely. I expect a release in the next couple of weeks.
- The new dbus-centric Openmoko framework initiative as well as the Zhone bread-and-butter application will see a release within the next 48 hours.
Exciting times for Linux on mobile platforms, n'est-ce pas?
15 Jun 2008 11:11pm GMT
12 Jun 2008
Planet OpenEZX
Stefan Schmidt: TechWeek in Vachdorf
Over the last week, directly after LinuxTag, I was in Vachdorf. If you like to know more about this small village take a look at OSM. Of course we mapped the whole village while being there.
The reason for being there was the TechWeek from Pengutronix, a company from my area doing a lot linux embedded projects for the industry. I already known some of the people working there privately. While being there I got known to the other ones. I must admit that it is a nice bunch of smart people loving what they are doing. What I actually appreciate a lot is their work to get their patches into mainline, even if it costs a lot of time and money. This is a not-so-common practice in the industry linux embedded world.
While hanging out there and having good talks about git, patch handling and submission workflows I spend most of my time working on geting some of the EZX patches mainline ready. We now have a svn branch that contains patches sitting directly on top of the arm git tree pxa branch. While working on this I also started to submit three one-line fixes upstream to get used to the arm-linux workflow. 2 Are already in the git tree, one is acked and waiting in incoming.
I enjoyed the week. Smart people, good food and hacking on stuff you like. Life could be that easy...
12 Jun 2008 3:28pm GMT
08 Jun 2008
Planet OpenEZX
Michael Lauer: State Machines — Resistance is Futile
So I'm rewriting the call handling in the Open Phone Daemon for the second time now. Cowardly, twice I tried to get away without implementing a full state machine, but it always came back to me.
Telecommunication stuff is all about state machines, and honestly… they are your friend, not your enemy.
Yet another reason to see that my third semester in university with all the finite state machines was not superflous ![]()
08 Jun 2008 10:55pm GMT
22 May 2008
Planet OpenEZX
Michael Lauer: Froscon Submission Deadline in 10 days
I just realized it's only 10 days until the Froscon call for papers has its deadline. You should better get started submitting a paper - I will do the same. Looking forward to seeing you at one of germany's nicest OSS conferences!
22 May 2008 10:54pm GMT
Stefan Schmidt: Talk and Radio Interview at the LinuxTag 2008
Next tuesday I'll be on my way to Berlin for the LinuxTag. It will be some busy days between giving a talk, an interview for Radio Tux and hanging out at the booth of my ex-employer.
Still I'm looking forward to it. This time I hopefully have some time to attend the technically talks. I look at you kernel track. And let Harald de-mystify the security of the micro waves around us.
22 May 2008 10:37pm GMT
09 May 2008
Planet OpenEZX
Stefan Schmidt: SCM changes
Over the last days I did some changes to the SCMs for my private projects. Some got migrated from svn to git. Also some git repos changed the location. Please refer to the overview websites if you run into trouble:
http://svn.datenfreihafen.org/$PROJECT_NAME
http://git.datenfreihafen.org/
09 May 2008 2:24pm GMT
08 May 2008
Planet OpenEZX
Stefan Schmidt: Recent OpenEZX progress
Since I left OpenMoko I have found some time to work on OpenEZX again. There are two nice things that happened since then.
The first one was that I got an 18bpp patch for all the second generation devices working. At least pxafb and fbcon are working fine now. I still need to test X more. :) The patch was from the gumstix patchset. Thank you guys.
The second was the boot_usb 0.2.0 release. We use this little tool a lot and SVN is stable most of the time. Especially after Daniel Ribeiro added support for initrd, commandline and setting the machine ID a release was needed.
08 May 2008 11:27pm GMT
Stefan Schmidt: OpenMoko Framework Initiative goes live
Mickey already blogged about it. This is something we talked about a lot lately. Sometimes frustrated sometimes with hope. It is something we never got right since the beginning.
Ease the development of new applications and services. Build your kick ass stuff on top of a good fundament. And if it does not give you what you need, extend it. It's not like other commercial frameworks where you have to deal with what you get. It's open, take it, extend it, send patches. :)
Let's hope the framework team get the resources they need for getting it done. I also have some private ideas how to contribute here. Once I have something ready I let you know.
As code is better then words, take a look at their git repos.
08 May 2008 10:40pm GMT
05 May 2008
Planet OpenEZX
Michael Lauer: Openmoko Framework Initiative
I have not been posting about my work for Openmoko for quite a while. There are multiple reasons for that, ask me privately if you want to know… Today though, I want to post about a high-priority project inside Openmoko, Inc. - the new framework and middleware initiative which me and some guys will be working on.
I have been talking privatly about this to people on conferences, but now it's going to be an official project. It's something we attempted to do when we started back in 2006, but for some reason, we did it the wrong way. We tried taking existing components to make them fulfill our usecases and to fit our needs, which in some cases turned out to be impossible. This time we're moving the other way round. We will take our usecases as the goal and create the necessary infrastructure to make it happen. If - while we're on the way - can integrate existing efforts, even better. If not, we will eventually see how to merge with existing efforts. The goal is to get things done - now!.
Basically all this is about two components, which are independent, but closely related.
- The framework.
- A bread-and-butter application.
The Framework
The purpose here is:
- Give people the infrastructure to create solid and exciting software products based on the Openmoko platform,
- Support competing UIs while collaborating on developing services, and
- Encourage framework users (e.g. application developers) to also contribute to the framework.
With this in mind, we define the following requirements:
- Make it simple,
- Concentrate on core services,
- Be programming language agnostic,
- Be UI toolkit agnostic, and
- Try to reuse existing technologies as much as possible, but not at the cost of a bad API.
Our way to achieve this on a technical level is through dbus:
- Chose dbus as the collaboration line. Below dbus, we can work together. Above dbus, we can differentiate.
- Expose features through dbus APIs implemented by UI-agnostic and language-agnostic services (daemons).
- Optimize for Openmoko devices, but support multiple architectures (OpenEZX, Xanadu, …) and purposes through plugin interfaces and suitable hardware abstraction mechanisms.
- Be not afraid of reinventing the wheel for a wheel-barrow if all the existing wheels are made for sports cars.

The framework is not going to cover everything but the kitchen sink though, especially it's not about:
- Bootloader, Kernel, or System Init.
- X-Window-System, Window Manager, UI Toolkits,
- Application Launchers, Applications, or Fancy UIs.
The Bread-and-Butter application
The framework initiative is related to developing an application that uses the framework to turn a Linux-phone into a usable feature phone. The main goals for this application are:
- Make it simple,
- Concentrate on core features,
- Have a beautiful, efficient and consistent UI,
- Be easily extensible through scripting, and
- Show the power of the framework.
This application is developed in tandem with the framework, because when you write framework APIs, it's important to have existing API consumers. Without API consumers, APIs are just specs, could be awkyard, or plainly unusable - that's why this bread-and-butter application is of central importance to the framework project.
I'm looking forward to spend a lot of time on this project and I invite all of you to participate. Most of the discussions will happen on the Openmoko developers mailing list and the FreeSmartPhone standards list We already have achieved some important basics thanks to great contributions by the moko underground people that are grouped around the neo1973-germany.de site and the IRC channel #neo1973-germany. I'm also looking forward to great results from this years' Openmoko Google Summer of Code.
As for the current status, we will update the wiki page OpenmokoFramework frequently and sent status updates once and then to the mailing lists.
Good speed!
05 May 2008 4:02pm GMT
22 Jan 2008
Planet OpenEZX
Michael Lauer: Conferences Ahead
So I have promised to travel much less this year, however some trips are inevitable. For the first two quarters in this year I'm looking forward to participate at least at the following conferences:
- February: Fosdem'08 (Brussels) - standing at the OpenEmbedded booth.
- March: OpenExpo'08 (Bern) - giving a talk and standing at the OpenMoko booth.
- March: Bossa'08 (Recife) - EFL/OE code camp.
- May: LinuxTag'08 (Berlin) - applied for a talk, but visit anyways.
- August: Froscon'08 (St.Augustin) - will apply for a talk and visit anyways.
If you have a chance, then drop by and lets have a chat. Don't be shy - people say, I'm a nice guy ![]()
22 Jan 2008 1:56am GMT
31 Dec 2007
Planet OpenEZX
Michael Lauer: Tempus Fugit
2007 was a very busy year for me. There has been great progress in the projects I care about, e.g. OpenEmbedded, OpenMoko, OpenEZX, Enlightenment, Maemo, Ångström, and some more. In 2007 I travelled more than in all the previous years in sum - lets see whether I recall where I have been:
- Berlin (CCC, to meet colleagues),
- Bermingham (once for GUADEC),
- Bonn (for FROSCON),
- Brunswick (twice, to meet colleagues),
- Brussels (for FOSDEM),
- Denmark (for Mobile Developer Days),
- Siegen (to meet colleagues),
- Taipei (to work at OpenMoko Inc.),
- Zürich (for OpenExpo),
- and some more which I forgot about

A couple of weeks have been spent by my wife and me moving into a new apartment, my office room drowned and dried, I received dozens of parcels, and I saw (too) many new PCBs.
I saw a 3-man project growing into a company (with some unfortunate collateral losses on the way) and did a tiny little share to bring the Asimo robot forward. I met many interesting people on various conferences and in Taipei, and made some good new friends. Oh, and last but not least I (finally) got my doctoral degree.
It was a good year, albeit a bit too hectic for my taste. For next year, I'm trying to focus on less things, but more intense. Bringing forward my dreams of ubiquitous computing, high level application frameworks, and fluid user interfaces…
I wish all of you who read this a blessed 2008 - may health and success be with you. See you next year!
31 Dec 2007 6:39pm GMT
10 Dec 2007
Planet OpenEZX
Stefan Schmidt: Which wifi chip drives the Spectec SDW-82{1,2,3} SDIO cards?
Dear Lazyweb,
I'm interested in SDIO wifi cards that could be supported within a 2.6 linux kernel. Using them to add wifi connectivity to my EZX devices would be nice. EZX devices are based on PXA270 with full SD or microSD slots.
It would now be interesting to know if the Spectec SDIO cards are based on the Atheros 6000 SDIO chip. OpenMoko is working on a GPL driver for this chip. That would hopefully reduce the amount of work to get it running on other devices.
So anybody knows more about the chip Spectec use?
regards
Stefan Schmidt
10 Dec 2007 4:28pm GMT
08 Dec 2007
Planet OpenEZX
Michael Lauer: Framebuffer vs. X11
Putting some new fuel to the neverending fire - whether the (undebatable) performance drawback of using a full-blown window system like X11 outweighs the benefits in flexibility; Just recently I built the Expedite benchmark utility (from the Enlightenment project) for my Neo1973 (266MHz armv4, VGA display, unaccellerated framebuffer).
Thanks to the Evas canvas abstraction, Expedite has tons of rendering backends, including ones for the framebuffer and X11. And here are the results of the jury:
I this is is quite shocking (I expected the framebuffer to win, but not by that far). With an average frame-per-seconds of 17 for the framebuffer backend and 11 for the X11 backend, this looks like X11 introduces an overhead of about 50% on my platform.I wonder how the directfb and SDL backends would score - I'm going to do these eventually. I'm also curious in the results of Gtk+/X11 vs. Gtk+/fb as well as Qt/X11 vs. Qt/Embedded. I'll do that once I have nice benchmark utilities for the respective toolkits.
Surely this result only applies to unaccellerated framebuffers, hardware-accellerated xrender may win by far, but this is what we don't have right now. The question is, did we bet on the wrong horse here? Do we really need all the goodies X11 give us? Do we really need a windowing system abstraction on a phone? Do we really need to run multiple toolkits in parallel? What do you think?
08 Dec 2007 7:46pm GMT
05 Dec 2007
Planet OpenEZX
Michael Lauer: Usability through Bling
Let me point you to two publications I found interesting:
- Interaction Designer Peter Sikking shows the necessity of a holistic approach in order to create stellar UIs.
- Gustavo Sverzut Barbieri compares UI toolkits for "fancy embeded interfaces".
05 Dec 2007 1:17pm GMT






