====== Volkszaehler auf einem Pogoplug V2 mit Archlinux installieren ======
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.
=====Installation von Archlinux=====
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:
* mit **o** alle Partitionen löschen
* mit **p** die leere Partitionstabelle anzeigen lassen
* mit mit **n** eine neue Partion anlegen, dabei p für primär und 1 für die erste auswählen
* mit **ENTER** die weiteren default Eingaben akzeptieren
* und mit **w** fdisk verlassen
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
=====Kernel aktualisieren=====
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.
=====vlogger installieren=====
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):
* pkg-config
* libjson >= 0.9
* libcurl3 >= 7.19
* libmicrohttpd >= 0.4.6
===libsml===
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 ..
===vzlogger===
Wenn ''libsml'' erfolgreich kompiliert und installiert wurde, kann ''vzlogger'' folgen.
Da Archlinux Arm standardmäßig relativ wenig Pakete aus dem Stand mitbringt, wird ''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
=== vzlogger mit systemd starten====
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