The origins of gsmd

Harald Welte laforge at
Wed Aug 15 16:13:13 CEST 2007

On Wed, Jul 18, 2007 at 07:26:09AM -0600, Alan Jones wrote:
> So I am sure nobody cares for a new guy asking "why?", but I cannot
> seem to find any discussion about the origins of gsmd and its lib. 

It originated from thoughts that I had quite some time ago.

> First, I am interested in the origins of the libgsm<->gsmd protocol.
> The wiki clearly states that it is undocumented, which is perfectly
> reasonable. My question comes in as the "official" IPC mechanism in
> openmoko appears to be DBus. Was

I am a big believer in proper layering that doesn't violate layer
barriers.  So while the 'official' openmoko programs are mostly UI
related, and based on the Linux desktop world, it is perfectly fine that
they depend on dbus.

However, gsmd is something that makes a lot of sense even without any
UI, and actually without any of openmoko.  It is intended as a quite
generic free software implementation of a GSM modem (sorry, wally)
abstraction.  When gsmd development was started, there was no free
software anywhere close to the scope of what it is supposed to

> there a reason that a proprietary socket protocol was desired for IPC
> between gsmd client and gsmd?

'proprietary' is good ;)  Now you will certainly start calling
everything proprietary that uses sockets for inter-process
communication?  Go ahead, start with the linux netlink socket family,
continue with thigs like the syslog socket, etc.

Those people who need to understand the last bits of how the protocol on
that socket looks like are perfectly capable of reading the source code.

> Second, I am looking to understand the benefits to developing our own
> AT command daemon from the ground up. This project seems very
> interested in leveraging existing technologies, and it surprised me to
> see such ground-up development on this front. 

because there was no existing technology.  Any other free software that
I could find at the time (almost 12 months ago now) was modeled around a
single process using the GSM modem at any given time, obviously not
suitable for a multi-application mobile communications device.

> One project which seems to implement a ton of the things which this
> project needs to leverage (albeit with a Nokia focus) is gnokii. It is
> even implemented on top of glib, and includes a pretty reasonable UI
> on X/GTK. Especially on the SMS front, there is a ton of work involved
> in implementing a robust SMS client, and it has been done several
> times before. 

gnokii, to the best of my knowledge, doesn't have any client/server
model, and it is again tied to user interfaces.  In order to properly
support an open smartphone, you need a quite poewrful daemon to handle
the GSM side.  It's not only the voice call and SMS side.  It's about
getting the communication and cooperation of various processes right,
both UI programs such as our dialer and messages appliation, as well as
the GSM preferences, the various panel-apps, the GPRS connection
setup/teardown, integrating properly with the kernel-level GSM multiplex

Yes, gsmd is still quite far from reaching those goals.  But it is
definitely easier to start something with that kind of mindset, rather
than trying to tear apart a single UI application, split it out in
library and daemon, making all this acceptable to the existing
maintainers (if they actaull want to go towards multi-application and

> The other body of code which I am aware of is gsmlib. I have
> personally worked with it, and seems like it might provide
> a very good subset of the functionality desired for this project and a
> good foundation to work from. One area of concern with gsmlib is the
> license was home-brew, so there have been a few questions over time
> about its compatibility with GPL.

Well, the gsm daemon could possibly have been built on top of gsmlib,
but that still doesn't remove the neccessity to have a daemon, some kind
of IPC and a client-application side API/library.

And yes, having some home-brew license is definitely not particularly
encouraging either :(

- Harald Welte <laforge at>         
Software for the world's first truly open Free Software mobile phone

More information about the gsmd-devel mailing list