Open Source embedded development: My Gumstix Story

I recently got a new embedded Linux device to decorate my desk. This is like my childhood dream. :-)) I'm incredibly happy to have the opportunity to work with such a range of awesome stuff at Trolltech. And working on embedded devices is like bringing me back to the days when I was hacking graphics demos on a home made 386 SX 33MHz with a CGA screen ;-) (INF). Here's my new baby:

My Gumstix

It's running a simple Graphics View demo app. I'm hereby dedicating my Creative Fridays to play around with this device, it's actually great fun to see how fast you can make it go. And I must say, speaking as an open source developer, it pleases me to know how easy it is for anyone to get hooked up with one of these babies.

First, Brad and I went onto the Gumstix web site and ordered two LCD packs. This is a decent piece of embedded hardware: you get a 600MHz XScale CPU, with a 10/100MBit ethernet plug, USB and serial connectors, and a nice big 4.3" touchscreen 18bit display, at around $450. Delivery was swift. Now Brad got his device up in no-time, but me being completely new to this game, I needed some help with getting the screws into the right spot. It took us 15 minutes (now that Brad had figured out how to connect the LCD ;-)).

My Gumstix 2

After assembling the device, we booted it up. It gave us the Linux console prompt out-of-the box, and immediately hooked onto the network/DHCP, so I had ssh access right away. Following the instructions on I quickly got the basic setup for running cross compilation, and I installed some of the basic tools I need to have a decent console (e.g., bash). I installed my build root under ~/gumstix-buildroot, and added the bin dir of the cross compiler to my PATH:

export PATH=$HOME/gumstix-buildroot/build_arm_nofpu/staging_dir/bin:$PATH

Then I configured Qt 4.4 for Embedded Linux ( gives you the free edition, Qtopia Core source packages). Turned out to be pretty straight forward. I created a qt-4.4 directory on my device in my user's home dir, and configured Qt like this:

$ ./configure -release -embedded arm -no-webkit
-prefix /home/ahanssen/qt-4.4 -hostprefix
&& make

Notice how I skipped webkit, you probably want to skip all the modules you aren't planning to deploy on the device. Space counts :-).

After this, I copied the lib files onto the device, and copied an example over, and ran it on the host like this:

$ ./collidingmice -qws

That's it! For Linux developers, working on a Gumstix device like this is really really fun. I strongly encourage more people to throw themselves into this game. These devices also come in boxed versions, with Wifi and GPS expansion boards, audio chipsets, and more.

Next step: I'm planning to get KDE4 and Plasma to run on this device. Oh yes. ;-)

Blog Topics: