Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision |
howto:building_raspberry_pi_image_for_vz [2019/03/17 16:57] – Abhängigkeiten (wg. "Buster") jau | howto:building_raspberry_pi_image_for_vz [2022/04/16 19:59] – PiShrink jau |
---|
| |
Anleitung wie ein Image für den Raspberry Pi selbst erstellt werden kann, für: [[/howto/raspberry_pi_image#image_aufspielen|Image aufspielen]] | Anleitung wie ein Image für den Raspberry Pi selbst erstellt werden kann, für: [[/howto/raspberry_pi_image#image_aufspielen|Image aufspielen]] |
| |
<note important>Der Inhalt dieses Wiki-Artikels ist noch nicht vollständig und muss angepasst werden, soll aber als Einstieg helfen! FIXME</note> | |
| |
===== Folgende Schritte: ===== | ===== Folgende Schritte: ===== |
- Karte in den Raspi stecken | - Karte in den Raspi stecken |
- Versorgungsspannung anlegen, Netzwerkleitung anschließen | - Versorgungsspannung anlegen, Netzwerkleitung anschließen |
- Darauf achten, dass das Netzteil genügend Strom liefern kann. 2A besser 2,5A Netzteile verwenden | - 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 | - IP des Raspi im Router ermitteln oder per Netzwerkscanner ermitteln |
- Mittels Putty per SSH mit dem Raspi verbinden | - Mittels Putty per SSH mit dem Raspi verbinden |
- Passwort ändern | - Raspbian auf den neuesten Stand bringen: ''sudo apt update && sudo apt upgrade'' |
- Raspbian auf den neuesten Stand bringen: ''sudo apt-get update && sudo apt-get upgrade'' | |
- Dann verschiedene Konfigurationseinstellungen vornehmen mit: | - Dann verschiedene Konfigurationseinstellungen vornehmen mit: |
- ''sudo raspi-config'' | - ''sudo raspi-config'' |
- ''B2 Wait for Network at Boot: Yes'' | - ''S6 Wait for Network at Boot: Yes'' |
- ''I2 Change Timezone : Europe, Berlin'' | - ''L2 Change Timezone : Europe, Berlin'' |
- ''I4 Change Wi-fi Country : DE Germany'' | - ''L4 Change Wi-fi Country : DE Germany'', Alternative: ''sudo iw reg set DE'' |
- ''A1 Expand Filesystem'' | - ''I2 SSH Enable SSH'' |
- ''P2 SSH Enable SSH'' | - ''I4 SPI Disable SPI'' |
- ''P4 SPI Disable SPI'' | - ''I5 I2C Enable I2C'' |
- ''P5 I2C Enable I2C'' | - ''I6 Serial Disable Shell and Enable serial Hardware'' |
- ''P6 Serial Disable Shell and Enable serial Hardware'' | - ''I7 1-Wire Disable one-wire interface'' |
- ''P7 1-Wire Disable one-wire interface'' | - ''I8 Remote GPIO Disable remote access'' |
- ''P8 Remote GPIO Disable remote access'' | |
- Reboot | - Reboot |
- Edit "config.txt" | - Edit "config.txt" |
- ''# Register I2C RTC bei grosser neuer Erweiterung'' | - ''# Register I2C RTC bei grosser neuer Erweiterung'' |
- ''# echo ds1307 0x68 > /sys/bus/i2c/devices/i2c-1/new_device'' | - ''# echo ds1307 0x68 > /sys/bus/i2c/devices/i2c-1/new_device'' |
- GPIOs exportieren und Datenrichtung einstellen, 'Schaltausgang_new' | - GPIOs exportieren und Datenrichtung einstellen, 'Schaltausgang_new' |
- ''echo 24 > /sys/class/gpio/export'' | - ''echo 4 > /sys/class/gpio/export'' |
- ''echo 25 > /sys/class/gpio/export'' | - ''echo 17 > /sys/class/gpio/export'' |
- ''echo out > /sys/class/gpio/gpio24/direction'' | - ''echo 18 > /sys/class/gpio/export'' |
- ''echo out > /sys/class/gpio/gpio25/direction'' | - ''echo 22 > /sys/class/gpio/export'' |
- ''hwclock -s'' | - ''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'' | - Danach ''reboot'' |
- PHP 7.1 (oder höher) installieren | - composer unter ''/usr/local/bin'' installieren |
- Datei anlegen ''sudo nano /etc/apt/sources.list.d/10-buster.list'' mit Inhalt <code>deb http://mirrordirector.raspbian.org/raspbian/ buster main contrib non-free rpi</code> | - ''sudo apt install php'' |
- Datei anlegen ''sudo nano /etc/apt/preferences.d/10-buster'' mit Inhalt <code>Package: * | - ''cd /tmp'' |
Pin: release n=stretch | - ''curl -sS https://getcomposer.org/installer | php'' |
Pin-Priority: 900 | - ''sudo mv composer.phar /usr/local/bin/composer'' |
| - ''sudo chmod +x /usr/local/bin/composer'' |
Package: * | - Dann [[/software/controller/vzlogger/installation_cpp-version?|vzlogger]] installieren, unter User ''vzlogger'' ausführen lassen. |
Pin: release n=buster | - Und die [[/software/middleware/installation|Middleware]] per Script installieren. |
Pin-Priority: 750</code> | - Git "Benutzer" einrichten um die Anpassungen der Middleware bei Upgrade stashen zu können |
- ''sudo apt update'' | - ''nano ~/.gitconfig'' |
- ''sudo apt install -y -t buster php7.3-fpm php7.3-gd php7.3-intl php7.3-mbstring php7.3-mysql php7.3-imap php7.3-opcache php7.3-sqlite3 php7.3-xml php7.3-xmlrpc php7.3-zip php7.3-cli libapache2-mod-php7.3 php-apcu'' | - Folgende Zeilen eintragen: |
- Abhängigkeiten Middleware installieren: ''sudo apt-get install git-core mysql-server mysql-client ca-certificates apache2'' | - ''[user]'' |
- Abhängigkeiten vzlogger aus "Buster" installieren: ''sudo apt install -y -t buster libssl-dev libgcrypt20-dev'' | - '' email = „nomail@here“'' |
- Abhängigkeiten vzlogger installieren: ''sudo apt-get install build-essential git-core cmake pkg-config subversion libcurl4-openssl-dev libgnutls28-dev libsasl2-dev uuid-dev libtool libmicrohttpd-dev libltdl-dev libjson-c-dev libleptonica-dev libunistring-dev dh-autoreconf'' | - '' name = noName'' |
- Dann [[/software/controller/vzlogger/installation_cpp-version?|vzlogger]] und die [[/software/middleware/installation|Middleware]] entsprechend Wiki per Script installieren. | - [[/howto/datenmengen#performance_der_middleware_erhoehendatenaggregationcache|Middleware Aggregation]] einrichten |
| - Image der SD-Karte erstellen |
| - Image verkleinern |
| - [[https://github.com/Drewsif/PiShrink]] auf anderem Linux-System installieren |
| - ''pishrink.sh vz_big.img vz_small.img'' |
| |
===== Optionen und Vorschläge ===== | ===== Optionen und Vorschläge ===== |
missingok | missingok |
notifempty | notifempty |
| create 0664 vzlogger root |
} | } |
</code> | </code> |
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. | 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. |
| |
=== composer === | |
''composer'' unter ''/usr/local/bin'' installieren | |
<code>cd /tmp | |
curl -sS https://getcomposer.org/installer | php | |
sudo mv composer.phar /usr/local/bin/composer | |
sudo chmod +x /usr/local/bin/composer<code> | |
| |
=== Push-Server === | === Push-Server === |
[[/software/middleware/push-server|Push-Server]] aktivieren/Einrichten. | [[/software/middleware/push-server|Push-Server]] aktivieren/Einrichten. |
| |
=== PPM-Middleware === | === GoLang installieren === |
Performance Middleware aktivieren | <code>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</code> |
| |
| === PHP Beispielscript === |
| <code php /var/www/html/info.php> |
| <?php |
| phpinfo(); |
| ?> |
| </code> |
| |
===== Quellen ===== | ===== Quellen ===== |
Mailingliste vz-dev {{http://volkszaehler.org/pipermail/volkszaehler-dev/2017-December/005997.html}} \\ | Mailingliste vz-dev {{http://volkszaehler.org/pipermail/volkszaehler-dev/2017-December/005997.html}} \\ |
Github Issue#555 {{https://github.com/volkszaehler/volkszaehler.org/issues/555}} | Github Issue#555 {{https://github.com/volkszaehler/volkszaehler.org/issues/555}} |