Chemitzer Linux-Tage 2007

Am 3. und 4. März finden die wieder einmal Chemnitzer Linux-Tage statt. Eine Eintrittskarte kostet wie in den letzten Jahren 5 EUR bzw. ermäßigt 3 EUR und ist an beiden Veranstaltungstagen gültig. Karten können ohne Anmeldung direkt beim Besuch der Veranstaltung erworben werden. Die Veranstaltung umfasst an beiden Tagen jeweils 6 Vortragsstränge und viele Präsentationen.

Chumby

Chumby (Bilder hier), ein kompaktes Gerät das sich wie ein Wecker verhalten kann, ist ein Eingebettetes System mit WLAN-Anschluss. Das Hardware-Layout für das Gerät ist frei und sollte bei Anmeldung zugänglich sein. Leider wird in den Bedingungen der Anmeldung zu viel von Payment geredet, so das ich mich nicht angemeldet habe.

Hauptzweck des Gerätes soll sein, kleine Applikationen, die in Adobe Flash entwickelt, sind anzuzeigen. Beispielapplikationen sind ein Wecker, Wetteranzeige, Flickr-Bilder, Google-News usw.

Technisch setzt das Gerät auf einen Freescale iMX21 266MHz ARM9 controller, hat 32MB SDRAM, 64 MB NAND FLASH, einen 320×240 3.5-inch Touchscreen mit 12Hz, Stereo 2W Lautsprecher, einen Audio-Ausgang und Mikrophone-Eingang, einen USB-Anschluss und eine WLAN-Karte.

Auf dem Gerät läuft Linux 2.4.20, eine Toolchain und die Kernelquellen sind auch verfügbar. Weitere Experimente habe ich noch nicht durchgeführt, da ich keine Hardware besitze. Chumby Industries scheint aber Probeexemplare unter das Volk zu bringen oder bringen zu wollen, auf der Seite gibt es ein entsprechendes Angebot für “alpha-geek hacker”

Was mir bei Analyse der Chumby-Seiten fraglich geblieben ist, ist das Format der Images für Chumby und das integrierte System zum Digital-Rights-Management. Ziel ist wohl, einen Abomechanismus mit dem Gerät zu verkaufen.

Irgendwann im März soll es das dann auch zu kaufen geben. Das könnte durchaus ein Hype werden, wenn der angestrebte Preis von 150$ erreicht wird und es auch ohne Abo geht.

Serielle Schnittstelle am AVR Butterfly

Um die serielle Schnittstelle am AVR Butterfly nutzen zu können ist nicht viel Arbeit erforderlich. Ein serieller Pegelwandler von Low-Voltage-Seriell auf den höheren Pegel an der seriellen Schnittstelle eines PCs ist bereits auf dem Butterfly integriert.
Es bietet sich an den Butterfly mit Stiftleisten zu bestücken um Kabel einfach anschließen zu können. Ich habe ein paar günstige Bauteile von Reichelt genutzt, dieses Material gibt es aber auch bei anderen Elektronik-Händlern.

  • 3 Stifte einer 36-poligen, einreihigen geraden Stiftleiste mit Rastermaß 2,54 (SL 1X36G 2,54)
  • eine 3-poligen Platinensteckverbinder gerade, weiss (PS 25/3G WS)
  • D-SUB-Buchse, 9-polig, Lötkelch zum PC-Anschluss (D-SUB BU 09)

Das ganze ist schnell verlötet, die PIN-Belegung ist aus der Grafik ersichtlich und ist im User-Manual des Butterfly dokumentiert. (RXD an Pin 3, TXD an Pin 2 und GND an Pin 5)

butterfly_serial_1

butterfly_serial_2

Das Ganze kann man dann in der Beispielanwendung bei der Namenseingabe mit dem Terminalprogramm Minicom testen. Die genaue Vorgehensweise ist unter Punkt 2.2.2 des Usermanual beschrieben. Zur Kommunikation unter Linux stellt man am besten als Supernutzer den Default von Minicom mit

minicom -s

unter “Serial Port Default” auf Serial Device /dev/ttyS0, Communication Parameter auf 19200 8N1 und keine Hardware- und Software-Flusskontrolle. Das ganze speichert man als Default dfl. Nun kann man entsprechend der Anleitung einen ersten Test der Kommunikation durchführen, der eingegebene Name sollte auch wenn kein Echo im Terminal eingestellt ist oder vom Butterfly zurückgegeben wird nach Bestätigen mit Enter auf dem Display erscheinen.

Blog Harvester

Der Blog-Harvester ist eine Webseite von Astro, die ausgewählte Weblogs und Bookmarklisten von verschiedenen Hackern im Umfeld des Dresdner C3D2 zusammenfasst. Der Harvester ist in einem Ruby-Skript implementiert und wird als Aggregator auch weiterhin gepflegt.

Asus WL-500g Premium mit OpenWrt Kamikaze

Ich habe zu Testzwecken einen WLAN-Router von Asus erworben. Es handelt sich um das Modell Asus WL-500g Premium mit 8 MB Flash-Speicher und 32 MB RAM sowie zwei USB-Ports. Preislich liegt das Gerät bei ungefähr 70 Euro bei Ebay. Der WLAN-Router lässt sich mit OpenWRT unter Linux betreiben.

asus_wl_500g_premium

Betrieben wird das Gerät von mir unter der neuen Entwicklungsversion von OpenWrt mit dem Namen Kamikaze.
Die Quellen dafür bekommt man durch einen Checkout aus dem Subversion-Repository.

svn co https://svn.openwrt.org/openwrt/trunk/

Anschließend führt man im trunk/-Verzeichnis die Konfiguration des Firmware-Build-Prozesses mit

make menuconfig

aus und baut die Firmware mit

make

Um den Router zu Flashen benötigt man einen tftp-client, es wird atftp empfohlen. Unter Gentoo installiert man

emerge atftp

Nun muss man als Erstes den Router in den Diagnose-Modus versetzen:

  1. Entfernen der Versorgungsspannung.
  2. Drücken des RESET-Tasters (nicht der rote EZSETUP) mit einem Stift/Feinschraubenzieher während des Einschaltens für ein paar Sekunden.
  3. Loslassen des RESET-Tasters.

Man erkennt das der Router im Diagnosemodus ist daran, dass die POWER-LED langsam blinkt. Der Router befindet sich nun im Bootloader CFE (Common Firmware Environment). Nun führt man folgendende Eingaben in dem Verzeichnis durch, in dem das Image der Firmware liegt ( z.B. trunk/bin )

# atftp
connect 192.168.1.1
mode octet
trace
timeout 1
put openwrt-brcm-2.4-squashfs.trx

Das Image wird jetzt auf den Router übertragen.

Achtung: Nach Übertragung muss der Router noch mindestens 6 Minuten eingeschaltet bleiben, da das Image erst nach dem übertragen in den Flash geschrieben wird. Der Router startet nach Beenden des Schreibvorgangs nicht automatisch neu: Man wartet also lieber ein wenig länger und führt dann einen Reset durch.

Nun sollte man sich mit telnet auf 192.168.1.1 verbinden können und mit passwd ein root-Passwort für die Nutzung von ssh setzen können. Das Default-Passwort für root ist nicht gesetzt, der Zugang über ssh funktioniert aber erst nach dieser Aktion.
Wenn alles funktioniert bekommt man einen Prompt und ein kleines eingebettes Linux-System für wenig Geld:

# uname -a
Linux OpenWrt 2.4.34 #2 Thu Feb 15 20:47:24 CET 2007 mips unknown

Um den vollständigen Leistungsumfang des Gerätes nutzen zu können muss man noch ein paar spezielle Aktionen durchführen, zum Beispiel muss noch die volle Menge des Speichers nutzbar gemacht werden.

Mathematik ist.

Es scheint ja in letzter Zeit Mode zu sein, mit Google herauszufinden, was die Dinge sind, beziehungsweise wie sie den Webautoren erscheinen. Deshalb habe ich einmal bei Google nach “Mathematik ist” gesucht:

  1. Mathematik ist nützlich.
  2. Mathematik ist faszinierend.
  3. Mathematik ist eine der ältesten Wissenschaften überhaupt.
  4. Mathematik ist in allen Wissenschaften anwendbar.
  5. Mathematik ist mehr als Zahlen.
  6. Mathematik ist geprägt von Mustern.
  7. Mathematik ist nicht alles, aber ohne Mathematik ist alles nichts.
  8. Mathematik ist ein kleines, aber feines Fach.
  9. Mathematik ist dem Liebestrieb nicht abträglich.
  10. Mathematik ist überall.
  11. Mathematik ist ein sozial-kulturelles, diskursives Konstrukt.
  12. Mathematik ist nicht jedermanns Sache.

Ich kann mich da nur anschließen. Fehlt nur noch der Beweis.

Arithmetik ohne Begrenzungen

Selbst wenn man nur einfache Probleme in Theoretischer Informatik, Zahlentheorie oder Diskreter Mathematik bearbeitet und durch Programme in C zu erschließen versucht, gelangt man schnell an die Grenzen der darstellbaren Wertebereiche für ganze Zahlen. Das Implementieren einer eigenen Bibliothek für große Zahlen ist zwar möglich, mit GMP (GNU Multi Precision Arithmic Library) gibt es aber bereits eine freie und gut gepflegte Implementierung.

Eine einfache, experimentelle Erkundung des Syracuse-Problems könnte so aussehen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <stdio.h>
 
int main()
{
    int a;
 
    scanf("%d", &a);
 
    while (a != 1) {
	printf("%d ", a);
	a = syracuse(a);
    }
 
    printf("1\n");
 
    return 0;
}
 
int syracuse(int n)
{
    if (n % 2) {
	return 3 * n + 1;
    } else {
	return n / 2;
    }
}

Mit der GNU MP Bignum Library wird daraus:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <stdio.h>
#include <gmp.h>
 
void mpz_syracuse(mpz_t n);
 
int main()
{
    mpz_t a;
    mpz_init(a);
 
    mpz_inp_str (a, NULL, 0);
 
    while ( mpz_cmp_si(a,1) ) {
	mpz_out_str (NULL, 0, a);
	printf("\n");
	mpz_syracuse(a);
    }
 
    printf("1\n");
 
    return 0;
}
 
void mpz_syracuse(mpz_t n)
{
    if (mpz_divisible_ui_p(n,2)) {
	mpz_divexact_ui (n, n, 2);
    } else {
	mpz_mul_ui (n, n,3);
	mpz_add_ui (n, n, 1);
    }
}

Damit kann man dann auch für sehr große natürliche Zahlen die Zahlenfolge bestimmen, kompiliert wird wie gewohnt, allerdings muss man mit -lgmp linken.

syracuse

Photos mit Flickr

Ich habe mich heute bei Flickr angemeldet. Meine Photoseite findet man unter flickr.com/photos/aquo und natürlich gibt es auch einen Photo-Feed. Die drei neuesten Photos werden als Vorschau in der Randspalte angezeigt, dazu benutze ich FlickrRSS für Wordpress.

AVR Butterfly

Der AVR Butterfly ist eine Evaluationsumgebung für den Mikroprozessor ATmega169 von Atmel.

avrbutterfly_front

Die Ausstattung an Schnittstellen und Sensor ist für so ein kleines und günstiges System recht beachtlicht. Für um die 20 Euro bekommt man ein 6-stelliges LCD, einen 4-Wege-Taster mit Druckknopf, 512 kByte Flash-Speicher, Licht- und Temperatursensor, einen Piezo-Schallwandler und einen Zugang über serielle Schnittstelle (mit Pegelwandler auf dem Board). Als weitere Kommunikationspfade mit dem System kann man JTAG, SPI und I2C nutzen. Zudem arbeitet der Butterfly sehr stromsparend und ist mit einer Lithium-Batterie autark spannungsversorgt.

Das System ist in C programmierbar, einen entsprechenden Compiler und Werkzeuge zur Datenübertragung auf das System gibt es auch für Linux.

Chemnitzer Spielenacht

Am 12.01.2007 findet in Chemnitz die 3. Chemnitzer Spielenacht statt. Los geht es, bei freiem Eintritt, um 18 Uhr in der Mensa der TU Chemnitz. An diesem Abend sind alle bekannten und weniger bekannten Spiele auszuleihen, die auf dem Spielemarkt erhältlich sind. Es finden vier Turniere statt, Turnierspiele sind: “Siedler von Catan”, “Carcassonne”, “Mensch ärgere dich nicht” und “6 nimmt”.