software:controller:vzlogger:installation_cpp-version
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
software:controller:vzlogger:installation_cpp-version [2019/05/28 22:03] – zugschlus | software:controller:vzlogger:installation_cpp-version [2024/02/04 11:25] (aktuell) – [Build von Hand] cmake Syntaxfehler jau | ||
---|---|---|---|
Zeile 6: | Zeile 6: | ||
Unser Repository: https:// | Unser Repository: https:// | ||
- | 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. | + | 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, | Dies macht man praktischerweise in einem Verzeichnis, | ||
Zeile 14: | Zeile 14: | ||
</ | </ | ||
- | 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 | + | 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 |
===== Systemvoraussetzungen zur Kompilierung des vzlogger ===== | ===== Systemvoraussetzungen zur Kompilierung des vzlogger ===== | ||
Zeile 33: | Zeile 33: | ||
* libsasl2-dev | * libsasl2-dev | ||
* libuuid1 | * libuuid1 | ||
- | * libsml (for sml meters) | + | * libsml (für sml meters) |
* libmicrohttpd-dev >= 0.4.6 (for builtin " | * libmicrohttpd-dev >= 0.4.6 (for builtin " | ||
* libltdl >=0.8.0 (for OMS) | * libltdl >=0.8.0 (for OMS) | ||
Zeile 43: | Zeile 43: | ||
=== Debian Pakete === | === Debian Pakete === | ||
- | Für auf Debian | + | Für auf Debian basierende Distributionen können die meisten dieser Abhängigkeiten mit: |
- | < | + | < |
installiert werden. Eventuell erstmal < | installiert werden. Eventuell erstmal < | ||
Zeile 57: | Zeile 57: | ||
Das Script bietet auch die Möglichkeit, | Das Script bietet auch die Möglichkeit, | ||
+ | |||
+ | Möchte man den vzlogger mit optionaler Funktionalität MQTT bauen lautet der Aufruf für das Script: | ||
+ | < | ||
+ | ./ | ||
+ | </ | ||
=== 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: | ||
+ | < | ||
+ | cd vzlogger/ | ||
+ | git pull | ||
+ | cd ../.. | ||
+ | ./ | ||
+ | </ | ||
Zum Aktualisieren des vzlogger dient diese Prozedur: | Zum Aktualisieren des vzlogger dient diese Prozedur: | ||
Zeile 72: | Zeile 85: | ||
</ | </ | ||
- | Die zugrundeliegende SML Bibliothek kann (vorher) aktualisiert werden, indem: | + | Mit optionaler Funktionalität MQTT lautet hier der Aufruf für das Script: |
< | < | ||
- | cd vzlogger/ | + | ./ |
- | git pull | + | |
- | cd ../.. | + | |
- | ./ | + | |
</ | </ | ||
Zeile 85: | Zeile 95: | ||
<note warning> | <note warning> | ||
- | === Building | + | === Building |
+ | Debian bietet zwar ein Paket libsml-dev, das basiert aber leider auf veraltetem, nicht mehr gepflegtem Code. | ||
+ | < | ||
+ | git clone https:// | ||
+ | cd libsml | ||
+ | sudo make | ||
+ | </ | ||
+ | Libsml bietet kein 'make install' | ||
+ | Man macht das manuell in dem man die folgenden Dateien und Verzeichnisse kopiert: | ||
+ | < | ||
+ | sudo cp sml/ | ||
+ | sudo cp -R sml/ | ||
+ | sudo cp sml.pc / | ||
+ | </ | ||
+ | |||
+ | Zurück zum Ausgangsverzeichnis: | ||
+ | |||
+ | === Building vzlogger === | ||
+ | < | ||
< | < | ||
git clone https:// | git clone https:// | ||
Zeile 92: | Zeile 120: | ||
mkdir build | mkdir build | ||
cd build | cd build | ||
- | cmake .. | + | cmake -DBUILD_TEST=off |
make | make | ||
sudo make install | sudo make install | ||
Zeile 144: | Zeile 172: | ||
Systemd dient dazu Hintergrunddienste einzurichten und zu verwalten. | Systemd dient dazu Hintergrunddienste einzurichten und zu verwalten. | ||
- | Das Installationsscript fragt ob es ein " | + | Das Installationsscript fragt ob es ein " |
Falls du es selbst kopieren oder editieren willst findest du ein Beispiel unter: | Falls du es selbst kopieren oder editieren willst findest du ein Beispiel unter: | ||
Zeile 168: | Zeile 196: | ||
sudo systemctl enable vzlogger | sudo systemctl enable vzlogger | ||
</ | </ | ||
+ | |||
+ | |||
+ | ====== vzlogger als anderer Benutzer ausführen ====== | ||
+ | |||
+ | === Elevated privileges für vzlogger binary setzen === | ||
+ | |||
+ | Als User führt man folgenden Befehl aus, um ausreichend Rechte zum Ausführen des Programms zu erhalten: | ||
+ | < | ||
+ | sudo setcap ' | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | |||
+ | === Dienst-User anlegen === | ||
+ | |||
+ | Man kann für den Dienst einen separaten User (z.B. '' | ||
+ | < | ||
+ | sudo useradd -M vzlogger | ||
+ | sudo passwd vzlogger | ||
+ | </ | ||
+ | |||
+ | Auf einem Raspberry den neuen User diversen Gruppen hinzufügen. | ||
+ | < | ||
+ | sudo usermod -aG gpio vzlogger | ||
+ | sudo usermod -aG dialout vzlogger | ||
+ | sudo usermod -aG staff vzlogger | ||
+ | </ | ||
+ | |||
+ | Für das Logfile ein Unterverzeichnis mit passenden Schreibrechten anlegen. | ||
+ | < | ||
+ | sudo mkdir / | ||
+ | sudo chgrp staff / | ||
+ | sudo chmod g+w / | ||
+ | </ | ||
+ | |||
+ | === vzlogger.conf anpassen === | ||
+ | |||
+ | Der neue Ort fürs Logfile muss natürlich auch vzlogger bekannt gemacht werden. ''/ | ||
+ | < | ||
+ | " | ||
+ | </ | ||
+ | |||
+ | |||
+ | === Systemd Startscript anpassen === | ||
+ | |||
+ | 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 vzlogger lautet es zum Beispiel: | ||
+ | |||
+ | < | ||
+ | User=vzlogger | ||
+ | </ | ||
+ | |||
+ | Nun muss der Service nur neu gestartet werden und vzlogger läuft unter dem angegebenen Benutzer: | ||
+ | |||
+ | < | ||
+ | sudo systemctl daemon-reload | ||
+ | </ | ||
+ | |||
+ | === Verwendung === | ||
+ | |||
+ | Das Betreiben von vzlogger unter einem anderen Benutzer als root ist vor allem bei der Verwendung vom Protokol " | ||
software/controller/vzlogger/installation_cpp-version.1559073822.txt.gz · Zuletzt geändert: 2019/05/28 22:03 von zugschlus