Galleo Linux Multimedia Communicator
Always on, always connected, everywhere--a dream? Not anymore with the Galleo Linux MMC (MultiMedia Communicator), the first of a new breed of embedded devices that takes advantage of wireless mobility and internet convergence.
Imagine true Internet vs. WAP, near desktop-machine bandwidth vs. cellular base speed, a whole desktop full of applications that know how to talk between them vs. boring simplistic interfaces, and a fully open configurable user interface that gives each operator (and each user) the touch of exclusivity vs. closed monothematic interfaces. And, everything in your hand (it's only 5.27" × 3.66" × .69". Let's start by describing the main hardware and software features:
Inside the Galleo
Intel StrongARM CPU running at 206MHz
16MB Flash (Intel Strata Flash)
Color TFT LCD touchscreen with backlight
ETSI GSM Phase 2+ standard GSM module
Internal dual band 900/1800 or 900/1900MHz antenna
SIM Card interface (GSM)
SIM Card interface (third-party authentication--second SIM)
Headset with integrated microphone
IrDA interface (supporting 115200bps at at least 25cm)
MMC memory expansion (either MMC or SD)
External keys (home, phone, sleep, user-defined, etc.)
Power management/battery charging control
Battery Li-polymer (capable of 13-14 hours, standby and 3-4 hours radio operation)
Attached video camera
Another inside View of the Galleo
This hardware runs Linux as its OS, administering resources and user requests in the smooth and reliable way we are familiar with. Because we wanted not only a true mobile internet device but also a useful assistant for the user, we chose the KDE desktop as our common API for the local applications. KDE comes with one of the best browsers on the market, Konqueror, and an advanced, extensible and reliable desktop interprocess communication protocol (DCOP). Based on this API the device includes in its standard software base:
Galleo Linux MMC
A powerful personal information manager (PIM) including calendar functions, to-do lists, appointments, etc.
An e-mail client tailored to the specific needs of a small device and smart attachment handling via portal services while working within the constraints of a handheld unit.
A handy contacts manager that can be invoked from any other application that needs to access its information database.
The phone-user interface with all the functionality the user expects from any modern cellular phone device (i.e., smart phonebook, missed calls, received calls, etc.).
An MP3 player (with playlist editor).
A video player (MPEG and AVI files).
A streaming video player (that plays proprietary, compressed streaming video over the Net).
Portal messenger handler (that manages location services also).
Software keyboard with smart word completion and handwriting recognition and multilingual support (Unicode support) for more than one language at a time by using language packages.
Network and/or service provider fast dialer.
Applications quick launch.
Frame capture (can be included as a mail attachment, for example).
Java-based portal applications (operators and ISP providers fully configurable).
Included IPSec-compliant VPN for corporate and intranet solutions.
Easy and centralized user-settings application that supports standard predefined profiles and custom profiles.
Powerful mobile database manager with SQL server included, accessible from all applications.
Operator news, etc.
In addition to KDE API and applications, the device includes an embedded Java Virtual Machine that allows the browser to run a multitude of applications via Java applets and provides an open interface to service providers to give users full customization.
The Galleo MMC also integrates a proprietary compression mechanism (from Jigami Corp.) that gives a sustained rate of five times the base bandwidth of the cellular connection over HTTP and SMTP protocols and also provides high-compression rates for streaming video with operators that support this format.
Also included as an important part of the overall functionality is an SQL database server that, together with a special database API, provides services to all applications that need access to it, for example the contacts, phone, PIM, etc.
For someone with 20+ years of work under UNIX and eight years under Linux, the way to go was crystal clear; the problem was how to convince people who come from a traditional, proprietary-software corporate environment that the open-source model and Linux were the answers to our problems.
Many people coming in the past from the proprietary-software model of the corporate field tend to think that it is not only the best model, but that it's the only model. Either you think that NDAs and secrecy is the best way to protect you from competitors, or you think that because there is some company behind the product that no matter what happens they will be able to give you the support you need at the time you need it. To be fair, this was true (and it's still) in many cases, but this is not the only model anymore: the open-source approach and Linux have changed it. Support also means access to the source code, the proper license that gives you the right to modify code when you need to in order to make it work for your hardware and the fact that thousands of people are working on debugging and enhancing it, not to mention the increasing number of companies working for Linux (distributions, technical support, etc.) inside the same open model.
So, the first task was to present Linux to the decision makers. I made a comprehensive list of advantages and disadvantages and the evangelization process began. Linux was chosen because of the following reasons:
UNIX-like OS--we needed a real multitasking OS capable of handling the load of our peculiar design with many applications running at the same time in a reliable way without overloading the CPU.
Reliability and maturity--kernels 2.2.x and 2.4.x in particular were presented as the best candidates to run on StrongARM architecture.
Access to the source code--in order to make all of our hardware operational and to fine-tune the behavior of the kernel we needed to access Linux source code, for example, touchscreen driver and so on.
Development tools--the fact there is at least one (there are more) good set of cross-development tools--compiler, debugger and so on--for ARM Linux that was tested and gave good results was one of the strongest pros.
Lessons learned by others--fortunately the excellent work done on others' StrongARM-based devices was available to support my arguments.
Royalty-free--a really good thing for a startup company that doesn't know in advance how many devices will sell, which can be very risky with any kind of runtime license fee commitment.
Much of the original opposition was due to the fact that some people think that open source is free software where free equals cheap. They do not realize the high quality, and they think that this ``cheap, low-quality'' software can't cope with the job; even worse, because there is no company behind it, there is no one to ask for support if something goes wrong. This leads us to the needed change in mentality. Open source means free software in the sense of freedom of knowledge exchange, and because there is no such thing as a free lunch, this freedom doesn't come alone; responsibility comes along with it. The responsibility is to do things by yourself if nobody else can help you (because you're doing something new, for example), and therefore by understanding the code you are able to do the work yourself, not having to wait for support that may or may not come in time. This also means the development cycle is much shorter than in a closed-source model where only a few people are granted access to the code.
So, Linux was chosen, and the next step, based on our marketing requirements and the high-level design of the system's software, was the choice of an advanced, modular and extensible API. As a KDE user since 1997, I knew that the forthcoming (at the time we were thinking about our device's desktop approach) version 2.0 had most of what we needed, and as a bonus, one of the best browsers around. The problem is that KDE was intended for desktop stations and not for embedded systems, so someone with enough knowledge of KDE needed to work very hard to create an embedded version of it.
Klarälvdalens Datakonsult AB is a Sweden-based company whose president and CEO, Mathias Kalle Dalheimer, is one of the KDE core developers. His company did the job in a few months, meeting our specific requirements both for the KDE API and the Konqueror (most of the work on the browser itself was done by Steffen Hansen, one of Dalheimer's senior engineers). And they did it very well, inside the open-source model.
Based on release 2.0 of KDE, the embedded version was the basement upon which our engineers created the applications. Because our marketing people required specific features and application flow (both inside individual applications and between them), it was not possible to use the stock software that comes with KDE itself, so major code rewriting and complete redesigning was needed. Also, our device does not use X11 libraries at all; it is based entirely on the embedded Qt library (at the moment version 2.2.4 is being used) from Trolltech (a special mention to the Trolltech people for all their help, particularly the Qtawt in order to run Java applets from within the embedded Konqueror), so our applications need to be completely X11-free and work directly under the Linux framebuffer. Another big advantage of KDE is its ready-to-use, fast, extensible and powerful DCOP mechanism, which is used in our device for interprocess communication between applications and back and forth between low-level events and their corresponding event-handlers.
Due to hardware constraints (we are using 16MB of Flash), there is no space to put all the APIs, embedded JVM and applications (not to mention the kernel and system files), so there is no way we also can put the X11 system on it.
The embedded version of the Java Virtual Machine we chose for our device is the Geode from Insignia, both for development on the Linux-x86 stations and for our ARM-Linux target. With a small footprint both in size and RAM, it meets our requirements.
One of the biggest advantages of our device is the compression algorithm used for HTTP and SMTP protocols developed at another Israeli company, Jigami Corp., that also allows us to receive streaming video over the Net. The average increase in speed is about five times over the base bandwidth that permits comfortable web browsing, which also increases mail exchange at the same rate (either POP3 or IMAP). The compression client and support system are not open source; they are licensed from a third-party company.
Working with Linux not only gives you a lot of joy, it makes your life easier when managing a complex environment with many processes running at the same time. Kernel series 2.4.x is stable, fast and mature on ARM architecture, and together with the advanced cross-development environment created for that purpose, it is possible to develop under Linux/KDE for Linux/KDE as the target on a different CPU.
The development environment created for this purpose deserves a review itself and is beyond the scope of this article, except to say that I had a lot of fun designing and implementing it.
Some drivers were enhanced; the serial driver (RS-232) needed to accommodate the special needs of the GSM/GPRS modem inside the radio module when in data connection. Other drivers were created from scratch, like the touchscreen, for example. A few issues related to filesystems management (mostly cramfs) were also fixed.
At the heart of the system a high-level manager and a communication manager drive the show, redirecting events that come from the low level on one hand and user input on the other, both applications being a real achievement for our engineers at Galleo. All events pass through the high-level manager that manages them accordingly (type, priority, origin, fall-back action, etc.). Needless to say, some events need to be handled in real time, and therefore low-level and high-level work must be very fine-tuned.
The MMI (specifically application flow, data flow inside applications and the graphics, i.e., icons, backgrounds, etc.) was carefully designed to give the user maximum comfort when using a handheld device to browse the Net, make a phone call, play a game, arrange items in his/her personal agenda, PIM, etc. Since it is fully configurable either by the operator or the subscriber, each unit can be personalized.
Someone asked me if we were to redesign it, what we would do differently? Well, the combination of Linux, Qt and KDE as our core and the basis for our applications meet our requirements so well that I can't imagine putting something else in our device.
Our time-to-market is about 4-5 months from now, after a very successful society presentation at CeBIT 2001 in Hannover, Germany last March. Many operators have shown a lot of interest on the Galleo MMC, and after the alpha phase we'll be ready for type approval.
On the other hand, 3g is way behind schedule because of technical problems and mostly because of the huge amount of money needed to change the already-existing networks. Our approach, on the contrary, doesn't require this; it works with today's operators' networks either in Europe or North America (due to the dualband radio module we have). And, it gives high-speed browsing on a handheld Linux device.
Mass production is ahead for this wireless, embedded Linux multimedia communicator that will contribute even more to make Linux, without a doubt, the OS for the Internet.
Daniel Benenstein is married with three children and lives in Ra'anana, Israel. He has been working with UNIX for the past 20 years and with Linux since 1993. For the past two years he has worked in communications, first at Motorola Communications Israel and now at Galleo Ltd. as software eng. manager. Hobbies include reading (mostly sci-fi and historical books) and jogging around his beautiful city with his wife Gabriela. He can be reached at email@example.com.