Benutzer-Werkzeuge

Webseiten-Werkzeuge


software:controller:vzlogger:installation_cpp-version

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
software:controller:vzlogger:installation_cpp-version [2019/09/16 19:19] – vzlogger unter anderem Benutzer laufen lassen joekokkersoftware:controller:vzlogger:installation_cpp-version [2024/02/04 11:25] (aktuell) – [Build von Hand] cmake Syntaxfehler jau
Zeile 14: Zeile 14:
 </code> </code>
  
-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.+Die meisten Erfahrungen mit dem Bau des vzloggers bestehen mit Debian und verwandten Distributionen (Ubuntu, Raspbian). Die folgenden Anleitungen wurden im April 2022 mit Debian 11 "Bullseye" verifiziert; Informationen für ältere Versionen finden sich in der Historie dieser Seite.
  
 ===== Systemvoraussetzungen zur Kompilierung des vzlogger ===== ===== Systemvoraussetzungen zur Kompilierung des vzlogger =====
Zeile 43: Zeile 43:
 === Debian Pakete === === Debian Pakete ===
  
-Für auf Debian 9 "stretch" basierende Distributionen können die meisten dieser Abhängigkeiten mit:+Für auf Debian basierende Distributionen können die meisten dieser Abhängigkeiten mit:
  
-<code>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</code>+<code>sudo apt-get install build-essential git 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</code>
 installiert werden. Eventuell erstmal <code>sudo apt-get update</code> ausführen. installiert werden. Eventuell erstmal <code>sudo apt-get update</code> ausführen.
  
Zeile 57: Zeile 57:
  
 Das Script bietet auch die Möglichkeit, nur einzelne Module zu übersetzen. Details dazu findet man als Kommentar im Script. Das Script bietet auch die Möglichkeit, nur einzelne Module zu übersetzen. Details dazu findet man als Kommentar im Script.
 +
 +Möchte man den vzlogger mit optionaler Funktionalität MQTT bauen lautet der Aufruf für das Script:
 +<code>
 +./install.sh vzlogger libjson libsml mqtt
 +</code>
  
 === Hintergrunddienst === === Hintergrunddienst ===
Zeile 62: Zeile 67:
  
 === Aktualisierung === === Aktualisierung ===
 +
 +Ist in der Regel aber nicht nötig, aber die zugrundeliegende SML Bibliothek kann (vorher) für sich aktualisiert werden, indem:
 +<code>
 +cd vzlogger/libs/libsml
 +git pull
 +cd ../..
 +./install.sh libsml
 +</code>
  
 Zum Aktualisieren des vzlogger dient diese Prozedur: Zum Aktualisieren des vzlogger dient diese Prozedur:
Zeile 72: Zeile 85:
 </code> </code>
  
-Die zugrundeliegende SML Bibliothek kann (vorher) aktualisiert werden, indem:+Mit optionaler Funktionalität MQTT lautet hier der Aufruf für das Script:
 <code> <code>
-cd vzlogger/libs/libsml +./install.sh mqtt vzlogger
-git pull +
-cd ../.. +
-./install.sh libsml+
 </code> </code>
  
Zeile 104: Zeile 114:
  
 === Building vzlogger === === Building vzlogger ===
 +<note>Hier können bei Bedarf weitere Funktionen dazu kompiliert werden z.B. MQTT, dazu den cmake-Befehl anpassen:\\ ''cmake -DBUILD_TEST=off -DENABLE_MQTT=on ..''</note>
 <code> <code>
 git clone https://github.com/volkszaehler/vzlogger.git git clone https://github.com/volkszaehler/vzlogger.git
Zeile 109: Zeile 120:
 mkdir build mkdir build
 cd build cd build
-cmake ..+cmake -DBUILD_TEST=off ..
 make make
 sudo make install sudo make install
Zeile 187: Zeile 198:
  
  
-====== vzlogger als anderer Benutzer (z.B.: pi) ausführen ======+====== vzlogger als anderer Benutzer ausführen ======
  
 === Elevated privileges für vzlogger binary setzen === === Elevated privileges für vzlogger binary setzen ===
Zeile 195: Zeile 206:
 sudo setcap 'cap_sys_nice=eip' /usr/local/bin/vzlogger sudo setcap 'cap_sys_nice=eip' /usr/local/bin/vzlogger
 </code> </code>
 +
 +<note>Auf Raspberry können dennoch Zugriffsprobleme beim Konfigurieren der GPIO auftreten. Frühzeitiger export in ''/etc/rc.local'' umgeht das Problem.</note>
 +
 +=== Dienst-User anlegen ===
 +
 +Man kann für den Dienst einen separaten User (z.B. ''vzlogger'') ohne Homeverzeichnis anlegen und Passwort vergeben.
 +<code>
 +sudo useradd -M vzlogger
 +sudo passwd vzlogger
 +</code>
 +
 +Auf einem Raspberry den neuen User diversen Gruppen hinzufügen.
 +<code>
 +sudo usermod -aG gpio vzlogger
 +sudo usermod -aG dialout vzlogger
 +sudo usermod -aG staff vzlogger
 +</code>
 +
 +Für das Logfile ein Unterverzeichnis mit passenden Schreibrechten anlegen.
 +<code>
 +sudo mkdir /var/log/vzlogger
 +sudo chgrp staff /var/log/vzlogger
 +sudo chmod g+w /var/log/vzlogger
 +</code> 
 +
 +=== vzlogger.conf anpassen ===
 +
 +Der neue Ort fürs Logfile muss natürlich auch vzlogger bekannt gemacht werden. ''/etc/vzlogger.conf'':
 +<code>
 +"log" : "/var/log/vzlogger/vzlogger.log",
 +</code>
 +
  
 === Systemd Startscript anpassen === === Systemd Startscript anpassen ===
Zeile 200: Zeile 243:
 Nun muss nur noch im Systemd Startscript (siehe anderer Paragraph) der User, mit welchem vzlogger ausgeführt werden soll, hinzugefügt bzw. geändert werden. Nun muss nur noch im Systemd Startscript (siehe anderer Paragraph) der User, mit welchem vzlogger ausgeführt werden soll, hinzugefügt bzw. geändert werden.
  
-Unter der Kategorie [Service] fügt man eine weitere Zeile hinzu. Für den User pi lautet es zum Beispiel:+Unter der Kategorie [Service] fügt man eine weitere Zeile hinzu. Für den User vzlogger lautet es zum Beispiel:
  
 <code> <code>
-User=pi+User=vzlogger
 </code> </code>
  
-Nun muss der Service nur neu gestartet werden und vzlogger läuft unter dem angegebenden Benutzer:+Nun muss der Service nur neu gestartet werden und vzlogger läuft unter dem angegebenen Benutzer:
  
 <code> <code>
software/controller/vzlogger/installation_cpp-version.1568654366.txt.gz · Zuletzt geändert: 2019/09/16 19:19 von joekokker