====== Volkszaehler-Image für Raspberry Pi selbst erstellen ====== Anleitung wie ein Image für den Raspberry Pi selbst erstellt werden kann, für: [[/howto/raspberry_pi_image#image_aufspielen|Image aufspielen]] ===== Folgende Schritte: ===== - Image downloaden: Vorzugsweise die [[https://www.raspberrypi.org/downloads/raspbian/|Raspbian Lite]] Version und nicht die Desktop-Version! - Mit Win32DiskImager Image auf __4GB__ SD-Karte schreiben - Im Verzeichnis "boot" leere Datei mit Namen "ssh" mit Notepad++ erzeugen - Karte in den Raspi stecken - Versorgungsspannung anlegen, Netzwerkleitung anschließen - Darauf achten, dass das Netzteil genügend Strom liefern kann. 2,5A besser 3A Netzteile verwenden - IP des Raspi im Router ermitteln oder per Netzwerkscanner ermitteln - Mittels Putty per SSH mit dem Raspi verbinden - Raspbian auf den neuesten Stand bringen: ''sudo apt update && sudo apt upgrade'' - Dann verschiedene Konfigurationseinstellungen vornehmen mit: - ''sudo raspi-config'' - ''S6 Wait for Network at Boot: Yes'' - ''L2 Change Timezone : Europe, Berlin'' - ''L4 Change Wi-fi Country : DE Germany'', Alternative: ''sudo iw reg set DE'' - ''I2 SSH Enable SSH'' - ''I4 SPI Disable SPI'' - ''I5 I2C Enable I2C'' - ''I6 Serial Disable Shell and Enable serial Hardware'' - ''I7 1-Wire Disable one-wire interface'' - ''I8 Remote GPIO Disable remote access'' - Reboot - Edit "config.txt" - ''sudo nano /boot/config.txt'' - folgende zwei Zeilen am Ende der Datei hinzufügen: - ''max_usb_current=1'' - ''dtoverlay=pi3-disable-bt'' - Edit "modules" - ''sudo nano /etc/modules'' - folgende zwei Zeilen am Ende der Datei hinzufügen: - ''ds2482'' - ''w1-therm'' - Edit "rc.local" - ''sudo nano /etc/rc.local'' - Folgende Zeilen zwischen " fi " und " exit 0 " hinzufügen: - ''# Part of DS2482 I2C 1-Wire Master to Volkszaehler 'RaspberryPI deamon'.'' - ''echo ds2482 0x18 > /sys/bus/i2c/devices/i2c-1/new_device'' - ''# Register I2C RTC bei grosser neuer Erweiterung'' - ''# echo ds1307 0x68 > /sys/bus/i2c/devices/i2c-1/new_device'' - GPIOs exportieren und Datenrichtung einstellen, 'Schaltausgang_new' - ''echo 4 > /sys/class/gpio/export'' - ''echo 17 > /sys/class/gpio/export'' - ''echo 18 > /sys/class/gpio/export'' - ''echo 22 > /sys/class/gpio/export'' - ''echo 23 > /sys/class/gpio/export'' - ''echo 24 > /sys/class/gpio/export'' - ''echo 25 > /sys/class/gpio/export'' - ''echo 27 > /sys/class/gpio/export'' - ''echo out > /sys/class/gpio/gpio24/direction'' - ''echo out > /sys/class/gpio/gpio25/direction'' - RTC (Erweiterung) vorbereiten - ''# hwclock -s'' - Danach ''reboot'' - composer unter ''/usr/local/bin'' installieren - ''sudo apt install php'' - ''cd /tmp'' - ''curl -sS https://getcomposer.org/installer | php'' - ''sudo mv composer.phar /usr/local/bin/composer'' - ''sudo chmod +x /usr/local/bin/composer'' - Dann [[/software/controller/vzlogger/installation_cpp-version?|vzlogger]] installieren, unter User ''vzlogger'' ausführen lassen. - Die [[/software/middleware/installation|Middleware]] per Script installieren und Webserver (PHP-PM mit Apache als Proxy) einrichten. - Git "Benutzer" einrichten um die Anpassungen der Middleware bei Upgrade stashen zu können - ''nano ~/.gitconfig'' - Folgende Zeilen eintragen: - ''[user]'' - '' email = „nomail@here“'' - '' name = noName'' - [[/howto/datenmengen#performance_der_middleware_erhoehendatenaggregationcache|Middleware Aggregation]] einrichten - Ev. unten genannte Optionen einrichten - Image der SD-Karte erstellen - Image verkleinern - [[https://github.com/Drewsif/PiShrink]] auf anderem Linux-System installieren - ''sudo pishrink.sh vz_big.img vz_small.img'' ===== Optionen und Vorschläge ===== === Logrotate === ''sudo nano /etc/logrotate.d/vzlogger'' /var/log/vzlogger.log { rotate 1 size=100k copytruncate missingok notifempty create 0664 vzlogger root } Wichtig ist ''copytruncate'', weil die Datei sonst erst gelöscht und dann neu erstellt wird. Damit kommt vzlogger nicht klar. ''rotate 0'' geht natürlich auch, dann wird die alte Datei nicht rotiert sondern gleich gelöscht. === Push-Server === [[/software/middleware/push-server|Push-Server]] aktivieren/Einrichten. === GoLang installieren === cd ~ sudo apt remove golang sudo apt autoremove wget https://golang.org/dl/go1.15.8.linux-amd64.tar.gz sudo tar -C /usr/local -xvf go1.15.8.linux-amd64.tar.gz mkdir go echo 'export GOPATH=$HOME/go' >> ~/.profile echo 'PATH="$PATH:/usr/local/go/bin:$GOPATH/bin"' >> ~/.profile source .profile === PHP Beispielscript === ===== Quellen ===== Mailingliste vz-dev {{http://volkszaehler.org/pipermail/volkszaehler-dev/2017-December/005997.html}} \\ Github Issue#555 {{https://github.com/volkszaehler/volkszaehler.org/issues/555}}