Arduino!

„War ich Dir eigentlich bisher ein guter Ehemann?“ Mit dieser leicht suggestiven Frage habe ich Schöne darauf vorbereitet, dass ich ihr heute einfach übers Wochenende nach Köln verschwunden bin – auf das Computersportfreundetreffen Sigint 09. Die Verlockung: Einen ganzen Tag unter Geeks – und dann auch noch: selber machen.Nach Jahren der 8bittigen Enthaltsamkeit mal wieder selbst mit Mikrocontrollern herumspielen – das klappt am besten, wenn man nicht allein ist dabei. Und ich werde, wie sich zeigen soll, alles andere als allein sein.

r9u Auch Seminarleiter Philip – er betreibt unter anderem das Bausteinbastler-Blog bausteln.de – ist vom Andrang überascht – er hatte sich das Ganze wohl ein wenig intimer vorgestellt. Aber er lässt sich nicht abschrecken. Zunächst theoretisch, dann praktisch will er den Neugierigen den „Arduino“-Mikrocontroller nahe bringen – und hat eine ganze Kiste der Controller dabei: Learning by doing. (Eine Kiste Lötkolben hat Philip auch dabei, die aber aus Zeitgründen nicht zum Einsatz kommen werden.)

Das Großartige an der Arduino-Hardware ist, dass sie nicht von Geeks entwickelt wurde (naja – nicht von hauptberuflichen), sondern von Künstlern. Die wollten nicht möglichst mächtige Hardware haben, sondern einen einfachen, robusten, billigen Controller. Der sich in einer Art Küchen-C programmieren lässt – wie sagte doch der grimmige Security-Hacker heute morgen in seiner Keynote? Ein Großteil aller Sicherheitsprobleme leiten sich ab von dem Satz: „Echte Männer programmieren in C“? Anyway: der sich unkompliziert programmieren lässt und für den es eine wunderbar einfache Entwicklungsumgebung gibt. Für Windows, MacOS und Linux. Und damit fangen die Probleme an.

Wie es nämlich bei einer solchen Veranstaltung auch nicht anders zu erwarten ist, sind die Linuxer stark in der Überzahl. Philip wiederum entwickelt normalerweise nicht mit einer Linux-Maschine, und kann bei der Installation des Entwicklungssystems leider nicht helfen. Das erwartet eine Reihe von Paketen, die (a) herausgefunden und (b) nachinstalliert werden wollen; da sich in nullkommanix verschiedenste Systemstände ergeben und auch noch genau in diesem Moment dasWorkshop-WLAN ächzend zusammenbricht, entwickelt die nun folgende kleinkollektive Lösungssuche eine gewisse fröhliche Dynamik. (Der Vollständigkeit halber: Ein Linux-Howto am Ende dieses Artikels.)

Knobeln an Arduino-Library-Problemen auf der Sigint 09

Darüber wäre fast die Mittagspause verstrichen – gemeinsam mit ein paar sehr sympathischen Mitgliedern der „Piratenpartei“ rette ich mich as dem Raum in die nächst gelegene Pizzeria.

Vor Jahr und Tag war ich in Berlin mal auf einem ganz ähnlichen Workshop. Ein Wien Musiker und Künstler, der auf dem Medienkunst-Fest „Transmediale“ einen Workshop für Gameboy Hacking anbot (er selbst produzierte mit gehackten Gameboys Tanzmusik). Der Workshop richtete sich gezielt an Kinder – und die Kids waren schneller. Aber es muss ja nicht immer ein großes Projekt sein – wie sagte einer der sympathischen Piraten: „Nocch nie habe ich mich so über eine blinkende Leucchtdiode gefreut!“ Und ich fahre zufrieden mit einem Arduino samt Ethernet-Board nach Hause und kann von daher nur ein uneingeschränkt positives Fazit ziehen: In der Gruppe war die Berührungsangst mit der neuen Hardware im Nu verflogen. Mal sehen, ob der vom geschätzten Kollegen Klein moderierte Talk über Games Culture ein ebensolches Highlight wird.

Nachtrag, 24.5.: Bericht eines versierten Arduino-Enthusiasten aus demselben Workshop hierund: die „Freeduino“-Seite der dahinter stehenden User Group enthält nützliche Einsteiger-Tipps, Beispiele und viele Hacks.

Womit wir bei diesem Thema wären: Hier noch die versprochenen Zusatzinfos für Arduino-Interessierte. Weiterlesen

Böse, böse!

Zufallsfund: Hatte in meinem letzten Post das <!em>-Tag im Fließtext vergraben, diesen aber durch ein <!–more–>; abgetrennt, und was? Plötzlich war das gesamte Untergeek-Blog kursiv. Das könnte man sicher auch mit Kommentaren spielen – man müsste nur das Closing Tag eines beliebigen Befehls hinter die 120-Zeichen-Grenze schubsen, bei der die meisten Blogs den Kommentarauszug abschneiden… (Bitte hier in Gedanken diabolisches Jamesbondbösewichtgelächter einblenden.)

In other news (a.k.a. „Kommen wir nun zu etwas völlig anderem): Aus dem „I’m-a-PC-I’m-a-Mac“- Videowettbewerb der Linux Foundation.

Füg dich, Flip! Die Formaterialschlacht

Zu sagen, dass die Pure Digital Flip so ihre Eigenheiten hat, ist wie die Aussage, dass Dieter Bohlen so seine Feinde hat. Die Flip-Filmchen im Rechner weiterzuverarbeiten gestaltet sich unerwartet schwierig – zumindest unter Linux: auf dem Mac funktioniert alles ohne, unter Windows fast ohne Schwierigkeiten.

Will man einen Film aus der Flip direkt bei Youtube sehen, ist alles ganz einfach: einstöpseln, den AVI-File vom Flashspeicher direkt hochladen, fertig. Auch vorne und hinten abschneiden ist ohne weiteres möglich, mithilfe der Software, die der Hersteller direkt selbst auf der Kamera hinterlegt hat, und die unter Windows und Mac (meistens) läuft – bei mir tat sie’s unter XP mit eingeschränkten Benutzerrechten schon mal nicht.

Am Mac dagegen funktioniert’s: die Software bietet zunächst die Installation des nötigen 3ivX-Codecs an – ein grausamer Verwandter von DivX und XVid – und dann eine Einfachst-Oberfläche, mit man Videos auswählen, ansehen, vorn und hinten zuschneiden kann. Was damit leider nicht geht: das Video auch drehen. Nun rächt es sich, dass ich die Flip überkopf mit meinem Fahrrad vergummibandelt habe.

Flip über Kopf

Flip über Kopf

Normalerweise bearbeite ich unter Linux so etwas in Cinelerra – eine Software, die etwa so stabil läuft wie die Abwehr von Eintracht Frankfurt, aber immerhin Hausschwein-Qualitäten hat, weil sie fast alles frisst und in ordentliches Material verwandeln kann. Aber Cinelerra ist überfordert – es hält die AVI-Filmchen aus der Flip für irgendwas mit Quicktime und gibt nach einigen Klötzchen auf.

Wie gut, dass es Avidemux gibt – eine Universal-Umcodier- und Schneidesoftware, die ebenfalls Open Source ist und sich in Linux zuhause fühlt – unter Windows funktioniert sie übrigens ebenso gut. Mit Avidemux kann man Bilder umdrehen, Formate ändern, die Framerate konvertieren – theoretisch.

Die Praxis: Avidemux kann die Flip-Files lesen und anzeigen – nur beim Neu-Codieren tut sich die Einfach-Software sehr schwer. Die neu codierten H.264- und MP4-Files bekomme ich in Youtube und Sevenload nicht gelesen – ähnliche Schwierigkeiten hatte ich schon, als ich auf Windows-Systemen versucht hatte, sie in ein fernsehtaugliches Format zu bekommen. Da half am Ende das Universal-Codec-Frontend Super von Enrightsoft – mit Codierung ausgerechnet ins Alt-Camcorder-Format DV – aber was tue ich unter Linux?

Am Ende hilft nur Gewalt: Laden in AVIDEMUX, recodieren als MJPEG-Datei. Das Ergebnis sieht, nachdem Youtube es nochmals konvertiert hat, grausam aus – aber es ist wenigstens sichtbar. Auch eine Umcodierung in DV (Achtung! Riesige Dateien!) oder in MPEG2 (Video-Codec-Setting: DVD, Format-Setting: MPEG-PS) ist gangbar.

Einfach: Windows?

Der erste Versuch, die Flip in ihrem angestammten Revier anzubauen, scheitert: mit eingeschränkten Benutzerrechten läuft die Software von der Flip gar nicht erst los. Was auch logisch ist – der erste Schritt ist, dass sie den 3ivX-Codec ins System spielen will, sonst können die installierten Mediaplayer mit den Flip-Dateien ziemlich wenig anfangen (der unverwüstliche Allesfresser VLC mal außen vor). Also einmal mit Admin-Rechten gestartet – Danke, MachMichAdmin! – und die Sache läuft.

Zum Schnitt habe ich das Einfachst-Programm Cyberlink Power Director 3 benutzt – war mal bei einem DVD-Brenner dabei. Es spuckt am Ende MPEG-Dateien aus – natürlich auf europäisches PAL-Fernsehformat runterkonvertiert mit 25 Frames pro Sekunde, siehe oben. Also nicht unbedingt eine Qualitätsgarantie – aber ein gangbarer Weg.

  • Morgen Teil 3: Die Grenzen erweitern – Hacking the Flip

Edit, 7.1.09: hauen wir doch mal ganz schamlos einen Pingback zu Markus bei netzpolitik.org raus. Der hatte nämlich ähnliche Probleme, zudem noch unhörbaren Sound – ob’s mit der Stereo-Codierung zu tun hat? ;)

Macht eine SWAP-Partition meinen EEE PC kaputt? – Never Mind…

Achtung!

Auch wenn aktuelle SolidStateDisks {de} wie die des Eee PC sehr leistungsfähig sind sollte man die Schreibzugriffe minimieren, da diese langfristig die Disk zerstören.

Aus diesem Grund vermisse ich den Hinweis, dass man keine Swap Partition nutzen darf, denn diese macht den Speicher schnellst möglich kaputt.

(Quelle: Ubuntuusers-Wiki)

Uhuhu, gruselig! Aber, um mit meinem alten Freund Johnny Rotten zu sprechen:

Johnny Rotten, painted by Mark Hebblewhite

Never mind…

Und bollocks ist IMHO schon das eine oder andere, was geschrieben wird. Aber der Reihe nach: im Raum steht die dringende Warnung, keine Swap-Partition einzurichten, sintemalen diese den internen Flash-Speicher abnutze und somit den EEE-PC schrotte. Wohl meinende Menschen rechnen einem vor, dass sie schon nach einigen Stunden Einhandsegeln am Firefox auf die zehntausend Schreibvorgänge kommen, die ein Flash-Speicher nur abkönne.

Ich denke, dass das so nicht stimmen kann. Meiner Meinung nach haben sich da ein paar Irrtümer eingeschlichen:

Weiterlesen

eeeXubuntu: Netter Versuch! [Update 4.4.08]

Schön ausgedacht. Hübsch umgesetzt. Und dann kommt die hässliche Praxis. Beim EEE PC unter eeeXubuntu liegt die Tücke im Detail.

Um das vorneweg klarzustellen: es geht nicht nur um den Fuchsschwanz-Faktor. Der EEE-PC soll mein Begleiter sein in Alltag und Berufsleben; ich will ein System, das so sicher ist und komfortabel wie (X)Ubuntu, aber so schnell da wie Xandros, oder wenigstens fast: Notiz machen, Rechner zuklappen = Akku sparen, eine Stunde später die nächste Notiz. Außerdem hätte ich gern ein bisschen mehr Speicher als die knapp 200MB, die die Xubuntu-Installation auf sda1 vom internen Flash-Speicher übrig lässt. Deshalb der Hassel mit internem 8GB-Aufrüststick und der Swap-Partition, sonst könnte ich mich ja auch mit einem normalen Boot zufrieden geben.

Die interne USB-SolidStateDisk - an für sich eine gute Idee…

Nun passiert beim Suspend-to-disk-Tiefschlaf offenbar folgendes (wilde Theorie): die Swap-Partition wird auf Platte geschrieben – auf sda5, im internen Speicher also -, dann geht der EEE schlafen und meldet dabei die USB-Anhängsel ab. Da er sie nach dem Aufwachen wieder ordentlich anzapft, ist das soweit kein Problem.

Außer dass der 8GB-Speicher dann als sdd angemeldet wird, nicht als sdc. Was soweit nicht weiter wild wäre, wenn ich ihn nicht in Form der sdc3-Partition als /home-Verzeichnis gemounted hätte. Das Home-Verzeichnis ist also weg, und der Desktop läuft nicht mehr rund.

Versuche, den Rechner auszutricksen, haben auch nichts gefruchtet:

  • ein Skript in /etc/acpi/suspend.d/ – Ordner, das die Partition abmeldet, ein weiteres, das sie wieder anmeldet,
  • ein Mounten der sdc3-Partition über die UUID statt über den Namen /dev/sdc3.

Und nun? Ein Linux-Übergeek wüsste sicher sofort, was faul ist und was man tun kann. Der Untergeek muss weiter experimentieren.

(Da fällt mir auf, ich habe noch gar nicht geschaut, ob das beim normalen Suspend-to-RAM auch passiert… ts, ts…)

Nachtrag, 4.4.08:
Wie hat der hamburgische Kollege Detlef Schwarzer immer gebrummelt? „Versuch macht kluch!“ In der Tat. Das Problem tritt auch bei Suspend-to-RAM auf und lässt sich daher auch gut per dmesg im Log nachlesen: der SCSI-Treiber versucht, die Laufwerke anzusprechen, die sind aber abgeschaltet worden. Der Treiber weiß sich nicht anders zu helfen, als für die wiedergefundenen USB-Laufwerke neue SCSI-Kanäle anzumelden. Deshalb ist mein /home-Verzeichnis plötzlich auf sdd5 statt sdc5, was den Fenstermanager natürlich aus dem Takt bringt.

Immerhin funktioniert ein Trick:

(1) Ins Verzeichnis /etc/acpi/suspend.d eine ausführbare (Skript)-Datei anlegen namens 12-unmount-usb.sh, die den Befehl umount /home ausführt.

(2) Die FSTAB so anpassen, dass das /home-Laufwerk nicht über /dev/sdc5 gemountet wird, sondern über seine UUID.

(3) Im Verzeichnis /etc/acpi/resume.d ein weiteres Skript namens 89-remount.sh, das – naja – mit mount -a alles remounted. Damit ist das home-Verzeichnis immerhin wieder verfügbar, leider gehen einem irgendwann die Laufwerksbuchstaben aus, weil der SCSI-Controller wie gesagt dauernd neue Kanäle registriert, sodass man schon beim zweiten Resume plötzlich das Laufwerk sdf im System hat.

Der Trick ist also keine Lösung – die Skripten müssen also das USB-Laufwerk ordentlich abmelden, damit es an alter Stelle wieder einsortiert wird. Ein erster Anlauf brachte keine Lösung, aber ich arbeite dran.

Asus EEE PC: Xandros oder Xubuntu?

Fuchsschwanzmofa

Hat man ein Mofa nicht nur, damit man den Auspuff aufbohren kann – und einen Fuchsschwanz an den Lenker binden? Für junge Männer trifft das sicher zu. Von daher ist ein Alternativ-Betriebssystem für den Kleinst-Laptop EEE sicher eine feine Sache, die einem das Gerät noch näher bringen kann. Ubuntu bietet sich an – das ist verbreitet, komfortabel und in der gut angepassten Variante eeeXubuntu zu bekommen. Aber hat das Ganze über den Fuchsschwanz-Wert hinaus noch praktischen Nutzen?

Xubuntu-Einstellmöglichkeiten

Ein paar grundsätzliche Überlegungen

Bestandsaufnahme: im direkten Vergleich mit der EEE-Standardinstallation ist (X)Ubuntu-Linux unbestritten

Und da ist das dickste Argument noch gar nicht erwähnt: die riesige Ubuntu-Community, die noch das obskurste Problem längst gelöst hat. Allerdings sind riesige Gewinner-Communities eher abstossend – der „Bayern-München-Effekt“. Die wirklich coolen Säue sitzen in der EEE-Gemeinde, oder? Und sie haben nicht nur (einige wenige) Freunde bei Asus in Taiwan, sie haben auch gute Argumente, lieber am vorinstallierten EEE-Xandros-Linux weiterzuschrauben – trotz aller berechtigten Kritik an der lieblosen Linuxerei auf dem Standard-EEE.

Denn das Xandros hat drei schwergewichtige Argumente für sich:

  • Speed
  • Speed
  • Speed.

Mein schon heftig verbasteltes Xandros kreidlert ab wie ein Epo-Radler. Nach 12 Sekunden ist der Cursor da, nach spätestens weiteren 21 Sekunden ist der Desktop einsatzbereit, nach weiteren 11 Sekunden steht die WLAN-Verbindung. Um komplett abzuschalten, benötigt das System sage und schreibe 10 Sekunden – in dieser Zeit hat eeeXubuntu kaum den Tastendruck ausgewertet.

Die eeeXubuntu-Vergleichswerte für einen normalen Bootvorgang: 42 Sekunden bis zum Login-Bildschirm, der Standard-Desktop steht nach weiteren 11 Sekunden, bis der völlig überflüssige 3D-Schickibuntifuchsschwanz-Fenstermanager compiz übernommen hat, sind noch einmal 42 Sekunden vergangen (ist Warten der wahre Sinn des Lebens?) Heruntergefahren ist Xubuntu in 22 Sekunden.

Etwas besser sieht der Vergleich aus, wenn man eeeXubuntu nicht kaltstartet, sondern in den Tiefschlaf schickt (a.k.a. suspend-to-disk oder hibernate) und wieder aufweckt. 32 Sekunden, bis der Rechner alles gesichert hat und den Winterschlaf erreicht, 30-35 Sekunden, bis er arbeitsfähig wieder vor mir steht. Das ist doch schon besser.

Eine Tiefschlafstudie

Die Tiefschlaffunktion ist sicher der grösste Leckerbissen auf der Palette der eeeXubuntu-Spezialitäten; im Xandros -Kernel ist sie gar nicht hineinkompiliert, was nicht nur Robert Basic Nerven raubte. Mich wiederum kostete es einige Nerven, bis eeeXubuntu wirklich winterschlafen wollte. Letztes Problem war, dass nach dem „Hibernate“die swap-Partition regelmässig verschwunden war – und das ist bei allen so, die die Standardinstallation nutzen. Das Problem liegt interessanterweise im Bootmanager: die entsprechende Grub-Zeile wurde um „resume=/dev/sda5“ ergänzt, und das Problem war behoben. Ein bekannter Bug der Standard-Installation mit ubiquity. (Mehr Details hier. )

Die Installation war auch kein Zuckerschlecken: für eine fuchsschwanzige Xubuntu-Experience rät es sich, die Schrauber-Liste im eeeUser-Wiki Punkt für Punkt abzuarbeiten. – Nun denn: Nachdem Xubuntu nun also rund läuft, ist eins im direkten Vergleich nicht mehr zu übersehen: hübsch, aber fett. Ein rundes halbes Gigabyte mehr als meine vergleichbare Xandros-Installation, und da sind die 560MB für die nötige Swap-Partition noch gar nicht gerechnet. (Zum Sinn und Unsinn von Swap auf Flash-Karten hier bald mehr.) Schöne Spielereien wie Compiz verbrennen wertvollen Akku-Strom, ebenso wie all die hübschen Helferlein, die man sich zwangsläufig ins Haus holt – selbst auf dem schlanken XFCE-Desktop.

Halten wir fest: es macht sich bezahlt, dass Asus sein Taschenlinux liebevoll klein und schnell optimiert hat; man spart sich endlose Headerdateien und ganze Regale voller Bibliotheksdateien, die für den EEE ohnehin irrelevant sind. Die Vorteile der Optimierung durch Asus scheinen die grössere Ubuntu-Community auszugleichen – das Xandros bleibt die Nummer eins. Wenn man nicht doch einen Fuchsschwanz will.

Nachsatz

Der grosse Vorteil am Tiefschlaf ist unbestritten: man arbeitet genau da weiter, wo man aufgehört hat. Das Xandros ist zwar wie gesagt schneller, wenn man es komplett herunter- und wieder hochfährt, verbraucht in der Zwischenzeit dann auch keinen Strom, nervt aber, weil man alles, was Office offen hatte, erst mal wieder herstellen muss. Eine Projektidee: alle aktiven Userspace-Programme wie Firefox, Ooo und Mail über so was hier in eine Datei sichern und über ein Startskript wieder aufrufen? (Noch nicht getestet; die Software scheint nicht weiterentwickelt zu werden.)

Noch ein allerletztes PPS: gerade will ich diesen Artikel speichern, da schaltet der EEE ohne Vorwarnung ab. Der Akku war leer, und xubuntu hat’s nicht gemerkt. Da ist wohl noch Bastelei fällig.