Pogoplug V2 ist ein auf ARM-Architektur basierender Kleinstrechner der in einem kleinen Gehäuse 4x USB-Schnittstellen, 1x 1GBit/s Ethernet, 1,2Ghz Prozessor, 256MB RAM und Netzteil vereint. Er eignet sich daher sehr gut um einen Datenlogger aufzubauen. Weil mein einen USB-Port für das Speichermedium auf dem das Betriebssystem benötigt, verbleiben 3 Ports frei, an welche man z.B. 3 USB-IR-Köpfe ohne externen Hub einstecken kann.
Der Betrieb der Middleware wurde hier nicht untersucht, sollte aber möglich sein. Aufgrund des Datenbankbetriebs und der damit verbundenen vielen schreibenden Zugriffen sollte man sich aber genau überlegen ob man nicht doch eine USB-Festplatte anstelle des USB-Memory-Sticks verwendet.
Die Installation des Archlinux auf einem neuen Pogoplug V2 verläuft gemäß http://archlinuxarm.org/platforms/armv5/pogoplug-v2-pinkgray sehr einfach, wenn dieser im Netzwerk erreichbar ist und bereits ein USB-Memory-Stick eingesteckt ist (Mindestgröße 1GB, auf Qualität achten!):
1) Mittels SSH als User root
mit Passwort ceadmin
einloggen.
2) Die Pogoplug-Software mit killall hbwd
stoppen.
3) Die folgenden Befehle ausführen:
cd /tmp wget http://jeff.doozan.com/debian/uboot/install_uboot_mtd0.sh chmod +x install_uboot_mtd0.sh ./install_uboot_mtd0.sh /usr/sbin/fw_setenv usb_rootfstype ext3
Dabei wird ein neuer Bootloader installiert, der es dann erlaubt von einem USB-Memory-Stick zu booten.
4) Der USB-Memory-Stick muss entsprechend partitioniet werden. Hierzu lauten die Befehle
/sbin/fdisk /dev/sda
Am fdisk-Promt löscht man alle vorhandenen und erstellt eine neue Partition:
5) Jetzt noch mit ext3
formatieren:
wget http://archlinuxarm.org/os/pogoplug/mke2fs chmod 755 mke2fs ./mke2fs -j /dev/sda1 mkdir usb mount /dev/sda1 usb
6) Arch Linux ARM auf dem Stick downloaden und installieren (braucht relativ viel Zeit!):
cd usb wget http://archlinuxarm.org/os/ArchLinuxARM-armv5te-latest.tar.gz tar -xzvf ArchLinuxARM-armv5te-*.tar.gz sync
7) Aufräumen und Neustart
cd .. umount usb /sbin/reboot
8) System Aktualisieren
pacman -Syu
8) Neuesten Kernel installieren
Da es bei älteren Kernel Probleme mit der Initialisierung des CP2104 gib, welche die Nutzung des IR-Kopfs verhindern, soll auf einem aktuellen Kernel umgestellt werden. Das lässt sich glücklicherweise schnell beheben, vorausgesetzt, dass man den neuesten uboot
installiert hat. Dazu einfach folgende Befehle als root
ausführen (das Skript weist darauf hin, falls man schon einen aktuellen uboot
installiert hat).
cd /tmp wget http://projects.doozan.com/uboot/install_uboot_mtd0.sh chmod +x install_uboot_mtd0.sh ./install_uboot_mtd0.sh
Im Anchluss reicht ein
pacman -S linux-kirkwood
um nach kurzer Zeit und einem Neustart, mit einem aktuellen Kernel arbeiten zu können. Zum Zeitpunkt dieses Eintrags (2013-01-05) war das 3.6.11-0-ARCH #1 PREEMPT Mon Dec 31 21:16:06 UTC 2012 armv5tel GNU/Linux
. Damit konnte der IR-Kopf problemlos am Pogoplug betrieben werden.
Um vzlogger zu installieren sollte man wie folgt vorgehen, da die Variante mit cmake nicht kompiliert (Stand 2013-01-09.). Benötigt werden unter anderen folgende Pakete (siehe auch Hinweis weiter unten):
Die Installation läuft relativ gerade aus. Dazu aus einem beliebigen Verzeichnis folgende Befehle eingeben und auf deren Ausgaben achten:
git clone https://github.com/dailab/libsml.git cd libsml make cp sml/lib/libsml.* /usr/lib cp -r sml/include/sml /usr/include cp sml.pc /usr/lib/pkgconfig cd ..
Wenn libsml
erfolgreich kompiliert und installiert wurde, kann vzlogger
folgen.
configure
relativ häufig fehlende Pakete reklamieren, Diese lassen sich aber einfach mittels pacman -Ss
suchen und pacman -Sy
installieren.
git clone https://github.com/mysmartgrid/vzlogger.git cd vzlogger ./configure
Ist configure
ohne Fehlermeldungen durch, wird es ernst
make && make install
Jetzt kann/muss /etc/vzlogger
konfiguriert und der vzlogger
gestartet werden.
nano /etc/vzlogger.conf vzlogger -v20 # verbose modus
Archlinux Arm startet Dienste mittels systemd, daher bietet es sich an, vzlogger entsprechend zu konfigurieren. Hierzu einfach Datei vzlogger.service
im Verzeichnis /usr/lib/systemd/system/
erzeugen
nano /usr/lib/systemd/system/vzlogger.service
und wie folgt befüllen. Die Pfade unten sollten sicherheitshalber im Vorfeld überprüft werden:
[Unit] Description=vzlogger After=syslog.target network.target [Service] ExecStart=/usr/local/bin/vzlogger -f /etc/vzlogger.conf ExecReload=/bin/kill -HUP $MAINPID StandardOutput=null [Install] WantedBy=multi-user.target
Ab jetzt kann man vzlogger mit dem Befehl systemctl
starten, stoppen oder dessen Status prüfen:
~]# systemctl start vzlogger ~]# systemctl status vzlogger ~]# systemctl stop vzlogger
Wenn alles geklappt hat, kann man vlogger automatisch mit dem System starten lassen:
~]# systemctl enable vzlogger