Noch eine coole Anwendung für einen Raspberry Pi: mit einem Display und etwas Kleinkram im Koffer eingebaut ergibt das eine portable Retro-Spielstation. Unabhängig davon muss ich mir dringend mal EmulationStation ansehen, das ist die Benutzeroberfläche mit der hier Emulatoren wie MAME gesteuert werden.
Alfresco auf Debian installieren
Haken an der Sache: das ist eine Java-Anwendung, und die drückt ganz schön auf mein kleines Heimserverchen. Um es nicht zu sehr ausarten zu lassen möchte ich nach Möglichkeit kein volles KVM installieren, sondern in einem OpenVZ-Container (wir erinnern uns: ich habe Proxmox auf meinem Server installiert). Problem dabei: in OpenVZ habe ich nur 32-Bit-Gäste, und der vergleichsweise einfach zu bedienende Installer von Alfresco läuft nur auf 64 Bit.
Also zu Fuss. Und da ich zwar mehrere Anleitungen gefunden habe, keine davon aber wirklich alle meine Probleme gelöst hat, schreibe ich hier mal zusammen was ich gemacht habe. Ich installiere erstmal nur das Basispaket, Zusatzmodule kommen bei Bedarf später nach.
Noch ein Disclaimer vorweg: alles was hier steht ist gefährliches Halbwissen! Meine Erfahrungen mit Alfresco beschränken sich auf wenige Stunden Spielerei, auch Java und Tomcat sind für mich kein Heimspiel. Was ich aufgeschrieben habe hat zumindest auf den ersten Blick für mich funktioniert. Mit dem Ergebnis habe ich noch nicht viel Zeit verbracht. Es kann also durchaus sein dass ich Quatsch geschrieben habe. Falls jemandem Fehler oder Verbesserungen einfallen wäre ich sehr dankbar für einen kurzen Hinweis. Falls mir noch was auffällt werde ich einen entsprechenden Nachtrag schreiben.
- Maschine anlegen. Ich gebe erstmal nur 1,5GB RAM, dazu 5GB Festplatte.
- Debian installieren. Debian 7.0 ist mittlerweile so gut wie stabil, also gibt es direkt Wheezy. Dazu das übliche: Apt-Cache eintragen und alles erstmal aktualisieren.
- Datenbank anlegen. Ich nutze MySQL, die Datenbank liegt auf einem anderen Server. ‚
create database alfresco
‚. - Benötigte Pakete installieren:
apt-get install libreoffice openjdk-7-jre imagemagick tomcat7 mysql-client libmysql-java zip
‚. Die Java-Version scheint wirklich wichtig zu sein, mit Version 6 hatte ich kein Glück beim vollständigen Anlegen der Datenbank. - Die SWFTools kennt Debian zwar als Paket, hier fehlt dann allerdings das essentiell wichtige pdf2swf. Wir ziehen uns die Sourcen (Version 0.9.1, 0.9.2 bringt einen Fehler bei der Installation) und compilieren klassisch mit
./configure && make && make install
. Voraussetzung hierfür:apt-get install zlib1g-dev libjpeg62-dev libgif-dev libfreetype6-dev g++ make
. - Alfresco herunterladen. Wir brauchen das Paket für die manuelle Installation, aktuell also alfresco-community-4.2.c.zip.
- Den Inhalt des Paketes unter /opt/alfresco auspacken.
- Sicherstellen dass Tomcat nicht läuft, damit der uns nicht in die Quere kommt:
/etc/init.d/tomcat7 stop
- Dateien und Verzeichnisse vorbereiten:
# cp -r /opt/alfresco/web-server/shared/ /var/lib/tomcat7/
# cp -r /opt/alfresco/web-server/webapps/ /var/lib/tomcat7/
# cp -r /opt/alfresco/bin/ /var/lib/tomcat7/
# ln -s ../../java/mysql-connector-java.jar /usr/share/tomcat7/lib/
# mv /var/lib/tomcat7/shared/classes/alfresco-global.properties.sample /var/lib/tomcat7/shared/classes/alfresco-global.properties
# mv /var/lib/tomcat7/shared/classes/alfresco/web-extension/share-config-custom.xml.sample /var/lib/tomcat7/shared/classes/alfresco/web-extension/share-config-custom.xml
# mkdir /opt/alfresco/alf_data
# chown -R tomcat7:tomcat7 /var/lib/tomcat7/ /opt/alfresco/alf_data/ - Konfigurationsdatei
/var/lib/tomcat7/shared/classes/alfresco-global.properties
anpassen. Hier nur die geänderten Zeilen:
dir.root=/opt/alfresco/alf_data
db.username=alfresco
db.password=GEHEIMESPASSWORT
ooo.exe=/usr/bin/soffice
ooo.enabled=true
jodconverter.officeHome=/usr/lib/libreoffice/
jodconverter.portNumbers=8101
jodconverter.enabled=true
img.root=/usr
img.exe=/usr/bin/convert
swf.exe=/usr/local/bin/pdf2swf
db.driver=org.gjt.mm.mysql.Driver
db.url=jdbc:mysql://DATENBANKSERVER/alfresco?useUnicode=yes&characterEncoding=UTF-8 - Speichermanagement für Tomcat anpassen, in /etc/default/tomcat7 folgende Einstellungen hinzufügen:
JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=512m -Xms128m -Xmx768m -Dalfresco.home=/opt/alfresco -Dcom.sun.management.jmxremote"
- Tomcat starten:
/etc/init.d/tomcat7 start
Danach kann man seinen Browser ganz vorsichtig auf http://SERVERNAME:8080/share oder http://SERVERNAME:8080/alfresco loslassen. Nicht vorschnell aufgeben, der erste Aufruf kann durchaus mehrere Minuten dauern. Die Zeit kann man sich zum Beispiel damit vertreiben, in der Datenbank nachzusehen ob tatsächlich die nötigen Tabellen angelegt werden. Direkt nach dem Laden der Startseite sind in der DB schon 102 Tabellen und mehrere Tausend Datensätze vorhanden.
Genau hier hat mich übrigens der Fehlerteufel eine Weile in Schach gehalten: in meinen ersten Anläufen hatte ich openjdk-6-jre installiert, so wie die meisten (zugegeben: teils alten) Howtos raten. Das führt neben einem Riesenhaufen Logs — die für einen nicht-Java-affinen Menschen erstmal nichtssagend sind — zu genau 20 Tabellen in der Datenbank, und dazu dass man unter /alfresco nur eine Fehlermeldung präsentiert bekommt. Darauf, das mal mit Java 7 zu testen muss man erstmal gestossen werden…
Wenn die Startseite (endlich!) sauber lädt kann man sich mit admin:admin anmelden und anfangen zu überlegen was man mit so einem schönen, neuen, großen Spielzeug anfangen kann… Aber das ist eine andere Geschichte, und die soll ein anderes Mal erzählt werden…
Geholfen haben mir bei der Installation hauptsächlich diese beiden Anleitungen, sowie dieser Thread im Support-Forum. Den Rest habe ich mir zusammengegoogled. Danke an alle die Ihr Wissen im Netz teilen!
Nachtrag (05.03.): Aufgrund eines Fehlers im Zusammenspiel zwischen Flash und dem Browser habe ich Flash-Upload abgeschaltet. Sonst hätte ich in der Weboberfläche keine Dateien hochladen können. Nutzen kann man Alfresco auch anders, aber wenn schon… Um abzuschalten in der Datei /var/lib/tomcat7/shared/classes/alfresco/web-extension/share-config-custom.xml
den Wert adobe-flash-enabled
auf false
setzen und den Tomcat durchstarten.
Massive Multiplayer Online Bomberman Game
Als friedliebender Mensch habe ich immer schon gerne Bomberman gespielt. Insbesondere im Multiplayer-Modus macht das echt Spass. Wer von Multiplayer nicht zu viel bekommen kann spielt hier gegen bis zu 1.000 Gegner gleichzeitig.
QR-Uhren
OK, da kann ich mit meiner Binäruhr einpacken: Heutzutage hat man offenbar Uhren die die Zeit per QR-Code anzeigen…
(Sehr cool, das einfach mit LEDs zu machen, BTW.)
1992er „Handy“ wiedererweckt
Cooles Projekt: da hat ein Neuseeländer sein mehr als 20 Jahre altes Motorola Ultra Sleek 9660 mit Hilfe eines Arduinos, eines GSM-Moduls und viel Eigenbau wieder zum Leben erweckt. Ich bin beeindruckt!
Danke, Haba!
Meine ältere Tochter hatte Geburtstag. Sie hat sich gefreut, sogar mit der Post Geschenke zu bekommen. Ihre Tante hat ihr ein Spiel geschickt. Es war Ratz Fatz — Ich und Du, eben von besagter Firma Haba. Nach Durchsicht der Schachtel fiel aber ziemlich schnell auf dass keine Spielanleitung dabei war. Und der Inhalt — ein paar Holzfiguren und eine Menge Bilderkarten — war nicht direkt selbsterklärend.
Ich habe die Firma angeschrieben und um Hilfe gebeten. Mir wurde umgehend die Spielanleitung als PDF zugeschickt. Man kann die zwar auch auf der Seite herunterladen, aber das hat schon von Hilfsbereitschaft gezeugt. Leider bin ich nicht im Besitz eines Farbdruckers, und selbst wenn wäre so eine lose-Blätter-Sammlung nicht wirklich Kinderzimmer-kompatibel. Also habe ich nochmal nachgefragt. Die freundliche Mitarbeiterin hat lediglich nach der Adresse gefragt, sie hat mir umgehend die Anleitung per Post versprochen.
Heute — gerade drei Tage später — lag der Brief im Kasten. Ich habe den Absender gesehen und meine Tochter öffnen lassen. Sie hat sich fast so sehr gefreut wie über das Päckchen zum Geburtstag.
Leider war fast Schlafenszeit, daher konnten wir bis jetzt nur eine der Spielvarianten ausprobieren, und das auch nur für eine Runde. Ich bin mir aber sicher dass wir das noch öfter spielen, und insbesondere wenn auch noch andere Kinder im ähnlichen Alter dabei sind wittere ich Spaß (… für die Kinder. Ich muss zugeben dass mich das Spiel intellektuell nicht wirklich fordert, aber ich bin auch mehr als drei Mal so alt wie die empfohlene Zielgruppe… :-D).
Ich selbst könnte mich vielleicht noch für die Kugelbahnen begeistern, insbesondere mit Blick auf die vielen Zusatzpackungen… aber ich fürchte dass dafür auch erstmal wieder Budget beantragt werden müsste…
Multisystem: universellen Boot-Stick bauen
Ideal fände ich eine Lösung bei der ich nur noch ISO-Files auf den Stick legen muss, meinetwegen noch mit einem Skript das die ISOs dann beim Bootloader anmeldet. So etwas scheint es aber nicht zu geben, und das scheint mit den gängigen Bootloadern auch nicht ohne weiteres möglich zu sein.
Jetzt habe ich mir aber ein Programm angesehen das der Lösung zumindest nahe kommt: mit Multisystem kann man sich einen Stick erstellen von dem mehrere Systeme gebooted werden können.
Größter Haken beim Bau des individuellen Sticks ist dabei die Benutzeroberfläche. Von weitem sieht die zwar nett aus, damit zu arbeiten ist aber wirklich eine Herausforderung. Und damit meine ich nicht dass es eine steile Lernkurve gibt weil das Programm komplex ist, sondern schlicht weil die Oberfläche nichts taugt. Dass man die Größe der meisten Fenster nicht verändern kann ist dabei das kleinste Übel…
Aber mit einem kleinen HowTo — wie es sich zum Beispiel im Ubuntu-Wiki findet — kommt man doch zum Ziel. So habe ich jetzt einen kleinen aber stabilen 8GB-Stick (SanDisk Cruzer Pop) im Portemonnaie von dem ich wahlweise Ubuntu, einen Debian-Installer oder mein bevorzugtes ich-muss-was-machen-ohne-von-CD-zu-booten-System Grml starten kann. Letzteres wird nicht aktiv von Multisystem unterstützt, das hat erst Probleme gemacht: die 96-Bit-Variante (ja, Grml hat sowas! :-D) tut’s nicht, stattdessen habe ich jetzt die 32- und die 64-Bit-Version auf dem Stick. Kommt am Ende auf’s gleiche raus.Multisystem ‚weiß‘ wie es die einzelnen ISOs behandeln muss um sie mit einem zentralen Bootloader starten zu können. Dazu ist für jedes unterstützte ISO eine Konfiguration hinterlegt, man kann dem Programm also auch nicht beliebige Systeme vor werfen. Die Ubuntu-Images liegen jetzt einfach als ISO auf dem Stick, ich weiss nicht ob ich die einfach austauschen könnte. Grml wird wie ein ‚richtiges‘ Debian behandelt und komplett ausgepackt auf den Stick gelegt. Der Traum vom Stick mit mehreren bootfähigen ISOs ist also immer noch nicht erfüllt.
Alternativ habe ich mir übrigens auch MultiCD angesehen, aber nicht wirklich ausprobiert. Wenn ich das richtig verstehe kann man damit nur CDs oder DVDs bauen, keine Sticks.
Falls doch noch jemand eine Idee hat wie man den Stick so bestücken kann wie ich mir das vorgestellt hatte: immer her damit!
Arduino am Raspberry Pi
Zwei Fliegen mit einer Klappe: vorhin habe ich erst meinen neuen Arduino darauf getrimmt, mittels eines DHT11 die Luftfeuchtigkeit und die Temperatur zu messen. Um das mal ein paar Tage zu beobachten habe ich das Ding jetzt an meinen — ebenfalls neuen — Raspberry Pi gehängt.
Den Raspberry hatte ich schon vor ein paar Tagen in Betrieb genommen. Das Betriebsssytemimage (Raspbian, ein spezielles Debian-Derivat) ist schnell von der Homepage heruntergeladen, entpackt und auf die SD-Karte installiert. Eigentlich dachte ich, dass ich einen Samstagabend mit der Inbetriebnahme totschlagen könnte, die ganze Aktion war aber nach zwanzig Minuten durch. Fast schon enttäuschend…
Mit dem Arduino hat das Ding jetzt sein erstes kleines Ämtchen bekommen: es misst Temperatur und Luftfeuchtigkeit. Die Daten werden dann von meinem Zabbix gesammelt und bei Bedarf visualisiert.
Das ist erstmal nur eine Spielanwendung, das ist keine dauerhafte Installation. Dafür wäre das mit Kanonen auf Spatzen geschossen. Sowohl für den Raspberry als auch für den Sensor habe ich andere Pläne. Aber trotzdem finde ich es nett zu sehen, dass man sich auf die Weise schnell mal eine netzwerkfähige Sensorik zusammenbauen kann. Nett!
Erste Arduino-Erfahrungen
Kürzlich habe ich eine Hand voll Sensoren gekauft, um damit zu spielen. Unter anderem einen DHT11, der hat eine Art One-Wire-Interface und gibt darüber die Temperatur und die Luftfeuchtigkeit aus. Dummerweise ist das nicht wirklich One-Wire, also nicht kompatibel zu dem was Dallas spezifiziert hat. So konnte ich das mit meinem Bus Pirate nicht ohne weiteres auslesen.
Um einfach mal zu sehen was der Sensor von sich gibt ist ein Arduino die perfekte Lösung: mit dem Arduino Nano und einem Steckbrett ist die Schaltung schnell zusammengesteckt (geplant hatte ich die ja letzte Woche schon ). Die IDE ist auf meinem Arch Linux einfach aus dem AUR zu installieren, und die Bedienung ist trivial. Speziell für diesen Sensor hat Lady Ada ein hervorragendes Tutorial samt passender Bibliothek veröffentlicht, so konnte ich Heute nach kurzem Einlesen die Messwerte von der seriellen Schnittstelle ablesen.
Ich denke wenn ich wirklich ein Projekt verwirklichen will werde ich auch in Zukunft lieber selber basteln. Um aber nur mal schnell was auszuprobieren scheint so ein Arduino aber wirklich eine prima Plattform zu sein. Und für Einsteiger in die Materie sowieso. Meine Empfehlung!
Elektronik im Wassermodell
Dass ich eigentlich keine Ahnung von (analoger) Elektronik habe ist kein Geheimnis. Ich denke gerade über eine Schaltung nach in der offenbar eine Spule benötigt wird. Die Funktion, bzw. den Effekt einer Spule konnte ich mir aus dem Stand nicht erklären. Die Wikipedia hat mir einen Link auf die Grundlagen der Elektrotechnik — in 30 Minuten ausgespuckt. Sehr schöne Erklärung aller grundlegenden Bausteine.