Benutzer-Werkzeuge

Webseiten-Werkzeuge


software:controller:vzlogger:installation_cpp-version

vzlogger Installation

This manual is also available in english.

Repository

Unser Repository: https://github.com/volkszaehler/vzlogger

Derzeit ist vzlogger und (auf manchen Plattformen) ein paar der Bibliotheken (Libraries) nur als Quellcode verfügbar. Diese müssen vor gebrauch kompiliert (übersetzt) werden.

Dies macht man praktischerweise in einem Verzeichnis, in dem dein „normaler“ Nutzer Schreibrechte hat. Zum Beispiel dein Home-Verzeichnis:

cd ~

Die meisten Erfahrungen mit dem Bau des vzloggers bestehen mit Debian und verwandten Distributionen (Ubuntu, Raspbian). Die folgenden Anleitungen wurden im Mai 2019 mit Debian 10 „buster“ verifiziert; Informationen für Versionen älter als Debian 9 „stretch“ finden sich in der Historie dieser Seite.

Systemvoraussetzungen zur Kompilierung des vzlogger

Für eine erfolgreiche Kompilierung des vzlogger werden, neben gcc und glibc, auch diese Libraries benötigt:

Tools

  • git
  • cmake
  • pkg-config
  • subversion (für Tests mit googlemock)

Erforderliche Libraries

  • libjson-c-dev
  • libcurl4-openssl-dev
  • libgnutls28-dev
  • libgcrypt
  • libsasl2-dev
  • libuuid1
  • libsml (for sml meters)
  • libmicrohttpd-dev >= 0.4.6 (for builtin „local“ webserver)
  • libltdl >=0.8.0 (for OMS)
  • libleptonica-dev (for OCR)
  • libmosquitto-dev (for MQTT)
  • libunistring-dev (wegen Problem mit Ubuntu 18.04)

Debian Pakete

Für auf Debian 9 „stretch“ basierende Distributionen können die meisten dieser Abhängigkeiten mit:

sudo apt-get install build-essential git-core cmake pkg-config subversion libcurl4-openssl-dev libgnutls28-dev libsasl2-dev uuid-dev libtool libssl-dev libgcrypt20-dev libmicrohttpd-dev libltdl-dev libjson-c-dev libleptonica-dev libmosquitto-dev libunistring-dev dh-autoreconf

installiert werden. Eventuell erstmal

sudo apt-get update

ausführen.

Build per Script

Vzlogger bietet ein Shellscript für Download, Übersetzung und Installation der Module die nur als Quellen verfügbar sind.

git clone https://github.com/volkszaehler/vzlogger.git
cd vzlogger
./install.sh

Das Script bietet auch die Möglichkeit, nur einzelne Module zu übersetzen. Details dazu findet man als Kommentar im Script.

Hintergrunddienst

Nun sollte vzlogger vollends als Systemdienst eingerichtet werden. Details dazu weiter unten.

Aktualisierung

Zum Aktualisieren des vzlogger dient diese Prozedur:

sudo systemctl stop vzlogger
cd vzlogger
git pull
./install.sh vzlogger
sudo systemctl start vzlogger

Die zugrundeliegende SML Bibliothek kann (vorher) aktualisiert werden, indem:

cd vzlogger/libs/libsml
git pull
cd ../..
./install.sh libsml

Build von Hand

Falls das Script nicht zu den Gegenheiten passt nachfolgend die einzelnen Schritte.

Nur für geübte User! Wer wenig Erfahrung hat sollte den Build per Script machen.

Building vzlogger

git clone https://github.com/volkszaehler/vzlogger.git
cd vzlogger
mkdir build
cd build
cmake ..
make
sudo make install

Zurück zum Ausgangsverzeichnis:

cd ../..
Bau als Debian-Paket

Das vzlogger Repository enthält ebenfalls Code, um ein „sauber“ installier- und deinstallierbares Debian-Paket zu bauen.

git clone https://github.com/volkszaehler/vzlogger.git
cd vzlogger
apt build-dep ./
apt install devscripts
debuild

Building OMS

OMS erfordert openssl und libmbus >=0.8.0 z.B. von https://github.com/rscada/libmbus.git

git clone https://github.com/rscada/libmbus.git
cd libmbus
./build.sh
sudo make install

Zurück zum Ausgangsverzeichnis:

cd ..

Hintergrunddienst

Nun sollte vzlogger als Systemdienst eingerichtet werden. Details dazu weiter unten.

vzlogger aktualisieren

Falls der vzlogger aktualisiert werden soll ist wie folgt vorzugehen:

cd vzlogger
git pull
cd build
cmake -DBUILD_TEST=off ..
make
sudo systemctl stop vzlogger
sudo make install
sudo systemctl start vzlogger

Systemd Startscript

Systemd dient dazu Hintergrunddienste einzurichten und zu verwalten.

Das Installationsscript fragt ob es ein „systemd unit file“ für dich installieren soll. Falls dein System systemd nutzt (ab Debian „Jessie“) solltest du mit yes (ja) bestätigen.

Falls du es selbst kopieren oder editieren willst findest du ein Beispiel unter: ./etc/vzlogger.service

sudo cp ./etc/vzlogger.service /etc/systemd/system/vzlogger.service
Bitte stelle sicher das die Pfade zur Binary (vzlogger) und der Konfigurationsdatei (vzlogger.conf) korrekt sind.

Den vzlogger kann man dann mit dem üblichen systemctl Kommando starten, stoppen und prüfen:

sudo systemctl start vzlogger
systemctl status vzlogger
sudo systemctl stop vzlogger
Eine lauffähige Konfiguration ist dafür zwingend! Ansonsten wird vzlogger beendet und systemd meldet Fehler.

Wenn der vzlogger zufriedenstellend läuft und bei jedem boot als Hintergrunddienst gestartet werden soll:

sudo systemctl enable vzlogger

Spezielle Hinweise

Debian Paket

Um ein Debian Paket zu erzeugen:

cpack -G DEB

Cross Kompilierung

cmake -DCMAKE_TOOLCHAIN_FILE=/path/to/toolchainfile /path/to/vzlogger_sources
software/controller/vzlogger/installation_cpp-version.txt · Zuletzt geändert: 2019/05/28 22:40 von jau