====== 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