Embedded Linux


Das SheevaPlug ist einfach gesagt ein Linux-Computer im „Steckernetzteil-Format“. Im Inneren werkelt eine 1,2 GHz ARM CPU mit 512MB RAM, 512MB Flash, USB 2.0 Anschluss, Ethernet und einem SD-Kartenleser. Das Ganze gibt es nun für 99,95EUR bei PlugComputer.eu auch in Europa.

Ich hatte das Vergnügen, den SheevaPlug bereits beim Bausteln oder auf dem 26C3 in Aktion zu sehen. Das kleine Kästchen eignet sich eigentlich für alle Serveranwendungen, die auf einen Monitor verzichten können. Von vielen wird der SheevaPlug bereits als „NSLU-2 Killer“, also als Fileserver mit externer Festplatte, gehandelt.

Ein HA-Cluster aus SheevaPlugs wäre doch mal ein interessantes Projekt.

Eine erste deutschsprachige Seite mit Projekten  rund um den Stecker findet man übrigens unter sheevaplug.de.

Wenn man eine Plattform wie die von mir beschriebene Open Capture Platform schaffen möchte, benötigt man zunächst ein Grundsystem. Damit meine ich Prozessor, Speicher und was dazu gehört. Hier kann man entweder komplett bei Null beginnen oder schauen, ob es bereits fertige Komponenten gibt.

Zunächst stellt sich jedoch eine ganz andere Frage. Wie viel „Power“ braucht man? Was soll darauf laufen? Reicht es einen eigenen kleinen Kern zu schreiben oder nimmt man ein Vollständiges Betriebssystem wie Linux oder Windows CE/Embedded? Auch Android könnte eine interessante Alternative sein. Der Vorteil der Betriebssysteme ist, dass man schon vieles fertig bekommt. Möchte man später z.B. eine Datenbank auf dem Gerät am Laufen haben, bietet sich Linux an, für das es ja viele fertige Lösungen gibt.

Ich möchte zunächst ein fertiges System mit Linux oder vielleicht Android probieren. Es gibt mittlerweile viele fertigen Systeme, die auf der ARM-Platform basieren und mit Linux betrieben werden können. Warum sollte man also hier etwas neues kreieren? Schon vor Jahren habe ich ein wenig mit der Gumstix Plattform herumgespielt. Ich fand es damals schon faszinierend, wie man ein komplettes System auf einem so kleinen „Kaugummi“ unterbringen kann. Nun gibt es seit kurzer Zeit die neue Overo-Linie, die sogar schon WiFi und Bluetooth mitbringt. Die technischen Daten sind vielversprechend. Die Boards sind nicht grösser als eine AA Batterie. Darüber hinaus sind die Schaltpläne unter der CC Lizenz erhältlich. Es gibt bereits fertige Boards und ein nettes 4,3″ Display mit Touch-Unterstützung.

Was mich bei den neuen Overo-Boards am Meisten interessiert ist der Strombedarf mit Display, WiFi oder Bluetooth. Entsprechende Daten sind schwer zu finden. Um dieses herauszufinden und zu sehen, ob dies ein guter oder schlechter Kandidat für das Basissystem darstellt, werde ich mir so ein System bestellen und berichten.

On thursday I went to a hands-on workshop held by taskit here in Berlin to learn more about the Panel-Card which is developed and sold by taskit. The Panel-Card is an embedded system that is a bit bigger than a 3,5″ LCD containing a complete embedded Linux system with 3,5″ TFT display, optional ethernet and touch panel.

It was the first workshop held by taskit. At the begining every participant got a virtual machine containing a ready-to-use Linux with devloper tools and examples. In addition everyone got an evaluation kit of the Panel-Card equiped with a touch panel and ethernet.

After we spend some time to make the virtual machine run on every notebook, we were able to implement our first example application. It was a typical embedded „Hello World“ by letting some LEDs blink. This application was implemented as a Linux application with memory mapping and direct access to the IO registers of the Atmel ARM chip. The IDE was based on eclipse which I’m using for my Java development since years. So I felt very comfortable right from the beginning. Source level debugging was also integrated into the IDE so the whole compile-deploy-debug cycle could be executed inside the IDE. By the way one delegate used a Netbook and execution speed of the virtual machine and development tools was very good.

In the second part we learned about how to build a custom kernel. In this case we added a driver for the touch screen mounted on the display of our Panel-Card. This was quite easy since all tools were already installed on the development system and on the target system so we only had to issue one or two commands.

The third part was a short introduction to Qt development with a practical exercise. We had our first application up in less than five minutes. Although it only consisted of an empty window I was excited how fast and easy this basic application worked including a mouse pointer that could be moved by using the touch screen.
A few minutes later we were able do turn the LEDs on the board on and off by tapping buttons on the screen.

The workshop was a bit problematic at the beginning but was at all very good. I’ve learnd a lot and will definitively look more into Qt on embedded systems. I had never expected that it is so easy to get started with UI based applications on an embedded platform.