Haus-Automation auf Webserver-Basis
SAS4PI-Web Version 4.00 (C)2014/15 BlueDragon

 

RaspberryPI - Schritt-für-Schritt-Installation

Der RaspberryPI ist ideal dafür geeignet, als 24/7-Rund-um-die-Uhr-Server mit geringem Stromverbrauch, SensorAndSwitch ausführen zu lassen.

Im Folgenden nun die komplette Vorbereitung und Installation für den Kleinstrechner.

Grundinstallation

Hier nun die Grundinstallation des Gerätes:

  • + Wahl des Betriebssystems

    - Wahl des Betriebssystems

    Es eignet sich besonders gut Raspbian Wheezy (Download auch direkt von raspberrypi.org) zum Betreiben als SensorAndSwitch-Server.

    Das Image 2015-01-31-raspbian.img muss aus der ZIP-Datei in ein leeres Verzeichnis ausgepackt werden.

    Danach den W32DiskImager ebenfalls in ein leeres Verzeichnis auf dem PC entpacken und den W32DiskImager durch Doppelklick auf die Datei Win32DiskImager.exe starten.

    Nun die Imagedatei auswählen, die Speicherkarte, auf die das Betriebssystem des RaspberryPI soll, am PC einstecken, den Laufwerksbuchstaben der Micro-SD-Karte auswählen und mit Write den Schreibvorgang starten. (Bitte unbedingt darauf achten, dass hier der richtige Laufwerksbuchstabe gewählt wurde, sonst überschreibt man sich womöglich ungewollt seine PC-Festplatte!)

    Ist der Schreibvorgang abgeschlossen, Micro-SD-Karte entnehmen und weiter geht es mit dem RaspberryPI.

    Davon ausgehend, dass der RaspberryPI bereits zusammengebaut ist, nun die Micro-SD-Karte einsetzen und den RaspberryPI per LAN-Kabel ans Heimnetzwerk anschließen. MicroUSB-Stromzufuhr nicht vergessen. Der RaspberryPI startet nun mit dem neu aufgespielten Betriebssystem.

  • + Fortsetzen der Installation per PuTTY

    - Fortsetzen der Installation per PuTTY

    Da zunächst die Netzwerkkarte des RaspberryPI so konfiguriert ist, dass dieser sich über DHCP eine IP bezieht, kann man diese über seinen Router ausfindig machen.

    In PuTTY (Falls nicht vorhanden, bitte auf dem PC installieren, da es als Terminalemulation auch für andere Dinge sehr nützlich ist. Dafür einfach das Verzeichnis aus der ZIP-Datei auf seinen PC kopieren und PuTTY durch Doppelklick auf PuTTYPortable.exe starten.) nun folgende Eintragungen machen:

    • Host Name (or IP-adress) - hier die für den RaspberryPI herausgefundene IP-Adresse eintragen.
    • Port - hier ist 22 einzutragen.
    • Connection type: SSH auswählen.
    • Saved Sessions - den Text RaspberryPI eintragen und mit Save sichern, da die Einstellungen noch häufiger gebraucht werden.

    Nun mit Open das Terminal starten.

    Der RaspberryPI meldet sich nun mit login as: . Hier muss beim ersten Mal pi eingegeben und bestätigt werden.

    Nun folgt die Kennwortabfrage pi@ip-adresse's password: , die beim ersten Mal raspberry lautet.

    Danach kommt ein Hinweistext des Betriebssystems und das Eingabeprompt.

    Als Erstes sollte nun der Benutzer root ein Kennwort bekommen und das von Benutzer pi abgeändert werden.

    Dies wird wie folgt erledigt:

    • sudo su root
    • passwd root
      Hier nun ein Kennwort vergeben und nochmals bestätigen.
    • passwd pi
      Hier nun ein neues Kennwort vergeben und nochmals bestätigen.

    (für Raspbian Jessie) Nun unbedingt root für ssh freischalten:

    • sudo nano /etc/ssh/sshd_config
    • Die Zeile mit dem Inhalt PermitRootLogin without-password abändern in:
      PermitRootLogin yes
    • Die Datei nun abspeichern STRG-O mit Enter bestätigen und schließen STRG-X.
    • reboot und als root neu anmelden.

    Jetzt noch Benutzer pi zum weiteren root machen, indem man:

    • nano /etc/passwd
    • Die Zeile mit dem Benutzer pi wie folgt abändern:
      pi:x:0:0:,,,:/home/pi:/bin/bash
    • Die Datei nun abspeichern STRG-O mit Enter bestätigen und schließen STRG-X.
  • + Update und Upgrade des Betriebssystems

    - Update und Upgrade des Betriebssystems

    Nun muss erst einmal das Betriebssystem auf den neuesten Stand gebracht werden. Dies erreicht man mit den Befehlen:

    • apt-get -y update
    • apt-get -y upgrade

    Gegebenenfalls noch zusätzlich:

    • apt-get -y dist-upgrade
    • reboot
    • rpi-update
    • reboot
  • + Raspberry Pi Software Configuration Tool

    - Raspberry Pi Software Configuration Tool

    Mit raspi-config nun das Raspberry Pi Software Configuration Tool aufrufen und die Grundeinstellungen vornehmen:

    • Advanced Options auswählen und aufrufen.
      Update auswählen und aufrufen.
      Das Update des Tools wird durchgeführt.
    • Expand Filesystem auswählen und aufrufen.
    • Internationalisation Options auswählen und aufrufen.
      Change Locale auswählen und aufrufen.
      Hier nun de_DE ISO-8859-1, de_DE.UTF-8 UTF-8, de_DE@euro ISO-8859-15 und en_GB.UTF-8 UTF-8 ankreuzen und Ok.
      Standard-Standorteinstellung für die Systemumgebung ist de_DE.UTF-8 auszuwählen und weiter mit Ok.
    • Internationalisation Options auswählen und aufrufen.
      Change Timezone auswählen und aufrufen.
      Geographisches Gebiet: ist Europa auszuwählen und weiter mit Ok.
      Zeitzone: ist Berlin auszuwählen und weiter mit Ok.
    • Advanced Options auswählen und aufrufen.
      Hostname auswählen und aufrufen.
      Hinweis mit Ok bestätigen.
      Please enter a hostname nun dem RaspberryPI einen Namen vergeben und weiter mit Ok.
    • Advanced Options auswählen und aufrufen.
      Update auswählen und aufrufen.
    • Mit Finish das Tool verlassen.
    • reboot
  • + Netzwerk-Konfiguration

    - Netzwerk-Konfiguration

    Der RaspberryPI kann über LAN oder WLAN (mit USB-WLAN-Adapter) in das Heimnetzwerk eingebunden werden.

    Hat man einen USB-WLAN-Adapter (meist einen Stick mit einem Chip des Typs RTL8188CUS, der keine zusätzlichen Treiber benötigt) an seinen RaspberryPI angeschlossen, so empfiehlt es sich, zunächst folgende Dinge zu überprüfen. Besonders der Edimax EW-7811Un hat die Angewohnheit, bei einigen Momenten der Nichtnutzung in einen Sleepmodus zu wechseln und daraus von außen unansprechbar zu werden. Dies kann man jedoch folgendermaßen verhindern:

    • Prüfen, welcher WLAN-Stick verwendet wird:
      lsusb
    • Wenn es der Edimax ist, prüfen, ob der Sleepmodus aktiviert ist:
      cat /sys/module/8192cu/parameters/rtw_power_mgnt
    • Kommt dort eine 1 (ein) statt einer 0 (aus) zurück, muss folgender Befehl verwendet werden:
    • nano /etc/modprobe.d/8192cu.conf
    • options 8192cu rtw_power_mgnt=0 rtw_enusbss=0
    • Die Datei nun abspeichern STRG-O mit Enter bestätigen und schließen STRG-X.

    Weiter geht es mit der Netzwerkanbindung.

    Als Beispiel ist hier das Heimnetzwerk mit seinem Router auf IP-Adresse 192.168.123.1 zu finden. Der RaspberryPI wird demzufolge für LAN die IP-Adresse 192.168.123.10 und für WLAN 192.168.123.11 erhalten. Natürlich muss dies, genauso wie die SSID und der Schlüssel des eigenen WLAN-Netzes an die Gegebenheiten individuell angepasst werden. Es empfiehlt sich auf jeden Fall eine statische Adresse und keine über einen DHCP-Server.

    Wenn man ein WLAN nutzen möchte, so empfieht es sich, vorher noch schnell folgenden Befehl auszuführen, um statt später das Kennwort im Klartext in verschlüsselter Form angeben zu können:

    • wpa_passphrase "SSID des Netzwerks" "Kennwort des Netzwerks"
    • Der ausgegebene Block beinhaltet unter psk=... eine Buchstabenzahlenfolge, die das Kennwort in verschlüsselter Form darstellt und im Folgenden statt des Kennworts im Klartext verwendet werden kann. Zu beachten ist, dass die Buchstabenzahlenfolge ohne in Anführungszeichen zu stehen verwendet wird.

    Die Vorarbeiten sind nun erledigt, nun geht es für die Netzwerkeinrichtung an die wichtigste Datei:

    • nano /etc/network/interfaces
    • auto lo
      iface lo inet loopback

      iface eth0 inet static
      address 192.168.123.10
      netmask 255.255.255.0
      gateway 192.168.123.1

      auto wlan0
      allow-hotplug wlan0
      iface wlan0 inet static
      address 192.168.123.11
      netmask 255.255.255.0
      gateway 192.168.123.1
      wpa-scan-ssid 1
      wpa-ap-scan 1
      wpa-key-mgmt WPA-PSK
      wpa-proto RSN WPA
      wpa-pairwise CCMP TKIP
      wpa-group CCMP TKIP
      wpa-ssid "SSID des Netzwerks"
      wpa-psk verschlüsseltes Kennwort des Netzwerks

      iface default inet dhcp

    Die Datei nun abspeichern STRG-O mit Enter bestätigen und schließen STRG-X. Um die Eintragungen wirksam werden zu lassen, muss nun das System neu gestartet werden:

    • reboot

    Nun mit dem PuTTY erneut mit der neu festgelegten IP-Adresse als root mit dem zuvor neu vergebenen Kennwort anmelden.

Weitere Software auf den RaspberryPI installieren

Nun kommen noch einige benötigte Softwarepakete auf das Gerät:

  • + FTP-Installation

    - FTP-Installation

    • mkdir /home/pi/FTP/
    • apt-get -y install proftpd
    • Ggf. hier nun Servermodus auswählen.
    • cd /etc/proftpd/
    • nano /etc/proftpd/proftpd.conf
    • Dort folgenden Inhalt am Ende der Datei anfügen:
      DefaultRoot ~
      AuthOrder mod_auth_file.c mod_auth_unix.c
      AuthUserFile /etc/proftpd/ftpd.passwd
      AuthPAM off
      RequireValidShell off
    • Die Datei abspeichern und schließen.
    • ftpasswd --passwd --name pi --uid 33 --gid 33 --home /var/www/ --shell /bin/false
    • Passwort vergeben und bestätigen.
    • /etc/init.d/proftpd restart
  • + apache2-Installation

    - apache2-Installation

    • apt-get -y install apache2 php5 libapache2-mod-php5 php5-curl php5-imap php5-sqlite php5-gd
    • (Wheezy) nano /etc/apache2/sites-enabled/000-default
    • (Jessie) nano /etc/apache2/sites-enabled/000-default.conf
    • <VirtualHost *:80>
      ServerAdmin webmaster@localhost

      DocumentRoot /var/www
      <Directory />
      Options FollowSymLinks
      AllowOverride None
      </Directory>
      <Directory /var/www/>
      Options Indexes FollowSymLinks MultiViews
      AllowOverride all
      Order allow,deny
      allow from all
      </Directory>

      ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
      <Directory "/usr/lib/cgi-bin">
      AllowOverride None
      Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
      Order allow,deny
      Allow from all
      </Directory>
      ErrorLog ${APACHE_LOG_DIR}/error.log

      # Possible values include: debug, info, notice, warn, error, crit,
      # alert, emerg.
      LogLevel warn

      CustomLog /dev/null combined
      </VirtualHost>

      Diese Datei oben sollte genau so ohne Änderungen das Pendant auf dem RaspberryPI ersetzen. Dadurch wird gewährleistet, dass kein ständiges Beschreiben der SD-Karte durch ein Zugriffs-Log erfolgt, was auf Dauer die SD-Karte zerstören könnte.
    • Die Datei abspeichern und schließen.
    • (Wheezy) nano /etc/apache2/sites-enabled/000-default-ssl
    • (Wheezy)
      # Define an access log for VirtualHosts that don't define their own logfile
      #CustomLog ${APACHE_LOG_DIR}/other_vhosts_access.log vhost_combined

      Diese Datei oben sollte genau so ohne Änderungen das Pendant auf dem RaspberryPI ersetzen. Dadurch wird gewährleistet, dass kein ständiges Beschreiben der SD-Karte durch ein Zugriffs-Log erfolgt, was auf Dauer die SD-Karte zerstören könnte.
    • (Wheezy) Die Datei abspeichern und schließen.
    • (Wheezy) nano /etc/apache2/sites-available/default
    • (Wheezy)
      ...
      CustomLog /dev/null combined
      ...

      Diese Zeile oben suchen und genau so abändern. Dadurch wird gewährleistet, dass kein ständiges Beschreiben der SD-Karte durch ein Zugriffs-Log erfolgt, was auf Dauer die SD-Karte zerstören könnte.
    • Die Datei abspeichern und schließen.
    • (Wheezy) nano /etc/apache2/sites-available/default-ssl
    • (Wheezy)
      ...
      CustomLog /dev/null combined
      ...

      Diese Zeile oben suchen und genau so abändern. Dadurch wird gewährleistet, dass kein ständiges Beschreiben der SD-Karte durch ein Zugriffs-Log erfolgt, was auf Dauer die SD-Karte zerstören könnte.
    • (Wheezy) Die Datei abspeichern und schließen.
    • nano /etc/php5/apache2/php.ini
    • ...
      max_execution_time = 0
      ...
      post_max_size = 0
      ...

      Diese Zeile oben suchen und genau so abändern. Dadurch wird gewährleistet, dass ein PHP-Script keine Zeitbegrenzung zur Ausführung hat.
    • Die Datei abspeichern und schließen.
    • nano /etc/php5/cli/php.ini
    • ...
      max_execution_time = 0
      ...
      post_max_size = 0
      ...

      Diese Zeile oben suchen und genau so abändern. Dadurch wird gewährleistet, dass ein PHP-Script keine Zeitbegrenzung zur Ausführung hat.
    • Die Datei abspeichern und schließen.
    • Nun noch das Webverzeichnis apache2 übergeben:
      cd /var/
      chown www-data www
      chgrp www-data www
    • nano /etc/apache2/apache2.conf
    • ...
      # Global configuration
      #
      ...

      Dies Zeile oben suchen und darunter einfügen:
      ServerName localhost

      # unbegrenzte Script-Zeit
      RLimitCPU max max
      RLimitMEM max max
      RLimitNPROC max max
    • Die Datei abspeichern und schließen.
    • Dass alle Änderungen wirksam werden, apache2 neu starten:
      service apache2 restart
  • + Cron-Dienst-Konfiguration

    - Cron-Dienst-Konfiguration

    Jetzt kann bereits der Cron konfiguriert werden. Dazu muss folgender Befehl eingegeben werden:

    • mkdir /var/cron
    • nano /var/cron/shstart.sh
    • Dort folgenden Inhalt einfügen:
      #!/bin/bash
      # SensorAndSwitch HGR zur automatischen Schaltsteuerung und Cache-Bildung
      sasPfad="/var/www/sas"
      tmpPfad="${sasPfad}/tmp"
      #
      cronPfad=$(cd $(dirname $0);pwd)
      # WLAN-Refresh wenn down
      #/sbin/ifup wlan0
      # SAS-Cache
      if [ ! -f $tmpPfad/sasag.status ];
      then $cronPfad/sascache.sh $sasPfad & disown
      fi
      # SAS-Schaltung
      if [ ! -f $tmpPfad/sasap.status ];
      then $cronPfad/sasswitch.sh $sasPfad & disown
      fi
      #EOF
    • Wenn der RaspberryPI per WLAN im Heimnetz hängt, sollte dieser Inhalt eingefügt werden, sodass er sich auch bei Verbindungsverlust erneut automatisch verbindet:
      #!/bin/bash
      # SensorAndSwitch HGR zur automatischen Schaltsteuerung und Cache-Bildung
      sasPfad="/var/www/sas"
      tmpPfad="${sasPfad}/tmp"
      #
      cronPfad=$(cd $(dirname $0);pwd)
      # WLAN-Refresh wenn down
      /sbin/ifup wlan0
      # SAS-Cache
      if [ ! -f $tmpPfad/sasag.status ];
      then $cronPfad/sascache.sh $sasPfad & disown
      fi
      # SAS-Schaltung
      if [ ! -f $tmpPfad/sasap.status ];
      then $cronPfad/sasswitch.sh $sasPfad & disown
      fi
      #EOF
    • Die Datei abspeichern und schließen.
    • chmod 0777 /var/cron/shstart.sh
    • nano /var/cron/sascache.sh
    • Dort folgenden Inhalt einfügen:
      #!/bin/bash
      # SensorAndSwitch GET zur Cache-Bildung
      sasPfad=$1
      cronPfad=$(cd $(dirname $0);pwd)
      cd $sasPfad
      php -f $sasPfad/sasag.php
      sleep 1
      $cronPfad/$(basename $0) $sasPfad & disown
      #EOF
    • Die Datei abspeichern und schließen.
    • chmod 0777 /var/cron/sascache.sh
    • nano /var/cron/sasswitch.sh
    • Dort folgenden Inhalt einfügen:
      #!/bin/bash
      # SensorAndSwitch HGR zum Schalten
      sasPfad=$1
      cronPfad=$(cd $(dirname $0);pwd)
      cd $sasPfad
      php -f $sasPfad/sasap.php
      sleep 5
      $cronPfad/$(basename $0) $sasPfad & disown
      #EOF
    • Die Datei abspeichern und schließen.
    • chmod 0777 /var/cron/sasswitch.sh
    • crontab -e
    • Dort folgende Zeile einfügen:
      * * * * * /var/cron/shstart.sh
    • Die Datei abspeichern und schließen.
  • + Zeit-Dienst-Konfiguration

    - Zeit-Dienst-Konfiguration

    Wer die Fritzbox als Zeitserver eingerichtet hat, kann diese auch beim ntpd einbinden. Dazu muss folgender Befehl eingegeben werden:

    • nano /etc/ntp.conf
    • Dort folgenden Inhalt abändern:
      .
      .
      .
      # pool.ntp.org maps to about 1000 low-stratum NTP servers. Your server will
      # pick a different set every time it starts up. Please consider joining the
      # pool:
      server fritz.box iburst
      server 0.debian.pool.ntp.org iburst
      server 1.debian.pool.ntp.org iburst
      server 2.debian.pool.ntp.org iburst
      server 3.debian.pool.ntp.org iburst
      .
      .
      .
    • Die Datei abspeichern und schließen.
    • service ntp restart
  • + SAMBA-Installation und Konfiguration

    - SAMBA-Installation und Konfiguration

    Um über die Windows Netzwerkfreigabe auf den RaspberryPI zugreifen zu können, wird noch SAMBA benötigt:

    • apt-get -y install samba samba-common-bin
    • nano /etc/samba/smb.conf
    • Dort den Inhalt der Datei durch folgenden Inhalt ersetzen:
      # Global parameters
      [global]
      workgroup = WORKGROUP
      netbios name = RASPBERRYPI
      server string = Samba Server %v
      map to guest = Bad User
      log file = /dev/null
      max log size = 50
      # socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
      preferred master = No
      local master = No
      dns proxy = No
      security = User

      # Share
      [wwwdata]
      path = /var/www
      valid users = pi
      read only = No
      force user = www-data
      force group = www-data
      create mask = 0777
      directory mask = 0777
    • Gegebenenfalls WORKGROUP durch den eigenen Netzwerkgruppennamen ersetzen.
    • Die Datei abspeichern und schließen und nun den Benutzer pi für den Zugriff zulassen:
    • smbpasswd -a pi
    • Passwort vergeben und bestätigen.

    Beim nächsten Reboot taucht der RaspberryPI in der Netzwerkfreigabe von Windows auf und man kann sich mit dem Benutzer pi anmelden.

  • + Befehlsrechte für www-data

    - Befehlsrechte für www-data

    Damit in PHP-Scripten auch Betriebssystembefehle möglich sind, muss der Webuser www-data noch Rechte für sudo ... eingerichtet bekommen:

    • nano /etc/sudoers
    • Dort folgende Zeile am Ende anfügen:
      www-data ALL=(ALL) NOPASSWD: ALL
    • Die Datei abspeichern und schließen und nun das System neu starten:
    • reboot

    Die Betriebssysteminstallation und Systemvorbereitungen für SensorAndSwitch sind nun abgeschlossen.

  • + (Wheezy) SD-Kartenzugriffe verringern

    - (Wheezy) SD-Kartenzugriffe verringern

    Da SD-Karten nur eine begrenzte Zahl von Schreibzyklen haben, kann man diese versuchen, auch systemseitig so gering wie möglich zu halten.

    Um festzustellen, wer oder was da eifrig schreibt:

    • apt-get -y install iotop
    • iotop -oPak

    Folgende Maßnahmen wären nun sinnvoll:

    • Das Schreiben des Zeitstempels für letzten Lesezugriff unterbinden und eine RAM-Disk erstellen, die von SensorAndSwitch und andere Programme wie etwa dem Webserver für häufige Schreibzugriffe automatisch genutzt wird:
    • cd /var/www
    • Falls das Verzeichnis sas noch nicht existieren sollte:
    • mkdir sas
    • chown www-data sas
    • chgrp www-data sas
    • cd sas
    • Falls das Verzeichnis tmp noch nicht existieren sollte:
    • cd /var/www/sas
    • mkdir tmp
    • nano /etc/fstab
    • Dort folgende Zeile abändern:
      /dev/mmcblk0p2 / ext4 defaults,noatime,commit=86400 0 1
    • Und folgende Zeilen anfügen:
      tmpfs /var/www/sas/tmp tmpfs nosuid,size=10M 0 0
      tmpfs /var/run tmpfs nosuid,size=5M 0 0
      tmpfs /var/log tmpfs nosuid,size=5M 0 0
    • Die Datei abspeichern und schließen.
    • nano /etc/init.d/starten
    • Mit folgendem Inhalt:
      #! /bin/sh
      # /etc/init.d/starten
      #
      ### BEGIN INIT INFO
      # Provides: Verzeichnissmaker
      # Required-Start: $local_fs
      # Required-Stop: $local_fs
      # Default-Start: 2 3 4 5
      # Default-Stop: 0 1 6
      # X-Start-Before: rsyslog
      # X-Stop-After: rsyslog
      # Short-Description: vmkr
      # Description: Verzeichnismaker erstellt fehlende Verzeichnisse im RAM-Drive.
      ### END INIT INFO
      #
      echo "Verzeichnismaker"
      echo "Script /etc/init.d/starten"
      echo "=========================="
      case "$1" in
      start)
      echo "Verzeichnisse werden erstellt..."
      mkdir -p /var/log/proftpd
      mkdir -p /var/run
      mkdir -p /var/log
      mkdir -p /var/log/apache2
      mkdir -p /var/lock/apache2
      mkdir -p /var/log/dbconfig-common
      touch /var/log/wtmp
      chown www-data:www-data /var/lock
      chown www-data:www-data /var/lock/apache2
      chmod 0777 /var/log/dbconfig-common
      echo "Fertig!"
      exit 0
      ;;
      stop)
      echo "stop ohne Funktion."
      exit 0
      ;;
      *)
      echo "Benutzung: /etc/init.d/starten {start|stop}"
      exit 1
      ;;
      esac
      exit 0
    • Die Datei abspeichern und schließen.
    • chmod 0755 /etc/init.d/starten
    • update-rc.d starten defaults
    • Die Auslagerungsdatei entfernen:
      dphys-swapfile swapoff
      dphys-swapfile uninstall
      update-rc.d dphys-swapfile remove
    • Die RAM-Disk für SensorAndSwitch noch durch einen Reboot aktivieren, sodass diese dann für häufige Schreiboptionen genutzt wird:
    • reboot
  • + (Wheezy) Watchdog aktivieren

    - (Wheezy) Watchdog aktivieren

    Um ein komplettes Aufhängen des Systems zu verhindern, gibt es hardwareseitig einen sogenannten Watchdog. Dieser kann beim RaspberryPI aktiviert werden, sodass im Ernstfall das System automatisch neu gestartet wird:

    • modprobe bcm2708_wdog
    • echo "bcm2708_wdog" | tee -a /etc/modules
    • apt-get -y install watchdog
    • update-rc.d watchdog defaults
    • nano /etc/watchdog.conf
    • Dort folgende Zeilen am Ende anfügen:
      watchdog-device = /dev/watchdog
      max-load-1 = 24
    • Die Datei abspeichern und schließen.
    • /etc/init.d/watchdog restart
    • reboot

+ SensorAndSwitch-Installation

- SensorAndSwitch-Installation

Zur Installation von SensorAndSwitch die ZIP-Datei SensorAndSwitch Update Datei auf dem PC herunterladen und die darin befindliche Datei sasupdate.php über die Netzwerkfreigabe des RaspberryPI auf dem PC nach wwwdata/ in ein zuvor angelegtes Verzeichnis sas/ kopieren.

Nun im Browser (nach den Beispieldaten von oben gebildet) die URL http://192.168.123.10/sas/sasupdate.php aufrufen.

Das Script übernimmt die weitere Installation. Dabei holt es selbständig das nötige ZIP-Paket und entpackt es auf dem Server.

Ist dies geschehen, so muss auf den Button weiter geklickt werden. Daraufhin landet man auf der Eingabemaske der Einstellungen, die nun vorgenommen werden müssen.

Eingetragen wird hier z. B. Fritzboxadresse oder IP mit eventuell abweichender Portadresse, Benutzer (der in der Fritzbox für Smart Home autorisiert ist) sowie Kennwort des Benutzers. Die Aktualisierungsrate legt fest, wie oft die Anzeige neu geladen wird. WebGUI-Typ für Standard-Browser und eingeschränkte Version für eiinfache mobile Browser sowie das Festlegen der Sortierung können hier ebenfalls eingestellt werden. Auch eine Vielzahl von Einstellungen für die SensorAndSwitch Automation erfolgt hier.

Mit OK bestätigen und das Script startet mit der WebGUI-Ansicht.

  • + SensorAndSwitch-Helper-Installation auf der Fritzbox (zusätzlich)

    - SensorAndSwitch-Helper-Installation auf der Fritzbox (zusätzlich)

    Zip-Datei: sashelper-Gesamtpaket mips

    Zip-Datei: sashelper-Gesamtpaket mipsel

    Das Gesamtpaket beinhaltet busybox, crond, httpd, php und den SensorAndSwitch-Helper komplett vorkonfiguriert und lauffähig für die Fritzbox mit mips-CPU (z. B. 7390 usw.) und mipsel-CPU (z. B. 7170, 7270 usw.).

    Schnell-Installation:

    • Der Inhalt der Zip-Datei muss in /var/media/ftp/ (gleichbedeutend mit dem Root-Verzeichnis des Netzwerkzugriffs der Fritzbox) entpackt werden. Dabei nicht die Pfadstruktur verändern!
    • Mittels Telnet/PuTTY mit der Fritzbox verbinden (TelNet der Fritzbox aktivieren mit Telefoncode #96*7*).
    • in das Verzeichnis /var/media/ftp/ wechseln und weiter ins Verzeichnis busybox/.
      Dies geht mit:
      cd /var/media/ftp/busybox
    • ./install.sh 89 eingeben. Die 89 steht für einen freien Port.
    • Telnet/PuTTY beenden (TelNet der Fritzbox deaktivieren mit Telefoncode #96*8*).
    • Der Webserver httpd ist installiert und bereits auch gestartet.
    • Der SensorAndSwitch-Helper ist im Browser unter http://fritz.box:89/sensorandswitch/sashelper.php von einem PseudoGeräte-Script aufrufbar und kann dann auf der Fritzbox Betriebssystembefehle als root ausführen.
    • Fertig.

    Zur Nutzung des SensorAndSwitch-Helper sollte nun auf dem RaspberryPi im SensorAnsSwitch-Verzeichnis unter conf/sashelperurl.phpconf noch dessen Pfad in der entsprechenden Variable vermerkt werden:

    • Beispiel:
      <?php
      $helperurlfb='http://fritz.box:89/sensorandswitch/sashelper.php';
      $helperurlpi='http://IP-des-Pi/sensorandswitch/sashelper.php';
      ?>
  • + SQLite3-Zugriffsmöglickeit für SensorAndSwitch-Helper (RaspberryPI)

    - SQLite3-Zugriffsmöglickeit für SensorAndSwitch-Helper (RaspberryPI)

    Mit diesem Paket für den RaspberryPI kann der sashelper dazu genutzt werden, die Datenbank per URL abzufragen oder Änderungen darin vorzunehmen.

    Installation:

    • apt-get install sqlite3
  • + USB-Medium einbinden (RaspberryPI)

    - USB-Medium einbinden (RaspberryPI)

    Dass ein angeschlossenes USB-Medium automatisch beim Start eingebunden wird, sind folgende Schritte nötig:

    • apt-get -y install ntfs-3g hfsutils hfsprogs exfat-fuse
    • nano /etc/fstab
    • Dort folgende Zeile anfügen (ggf. zuvor mit blkid die UUID ermitteln und statt /dev/sda1 dies beispielsweise eintragen: UUID=32A03E22A03DECCB):
      /dev/sda1 /share ntfs-3g defaults 0 0
    • Die Datei abspeichern und schließen.
    • reboot

    Zum Umbenennen des Mediums (Beispiel ntfs):

    • (Wheezy) apt-get -y install mtools ntfsprogs e2fsprogs jfsutils reiserfsprogs xfsprogs
    • (jessie) apt-get -y install mtools e2fsprogs jfsutils reiserfsprogs xfsprogs
    • umount /dev/sda1
    • ntfslabel /dev/sda1 Neues-Mediumlabel
    • reboot

Zusätzliche Software auf den RaspberryPI installieren

Nun kommen noch einige hilfreiche Softwarepakete auf das Gerät, die allerdings zur Lauffähigkeit von SensorAndSwitch nicht notwendig sind:

  • + nfs-Installation

    - nfs-Installation

    Wer nfs nutzen möchte, der muss Folgendes installieren:

    • apt-get install -y nfs-kernel-server nfs-common rpcbind
    • mkdir -p /share/media
    • chmod -R 0777 /share
    • nano /etc/exports
    • Dort folgende Zeile anfügen:
      /share/media 192.168.123.124(rw,async)
    • Die Datei abspeichern und schließen.
    • nano /etc/netconfig
    • Dort folgende Zeile ändern:
      ...
      #udp6 tpi_clts v inet6 udp - -
      #tcp6 tpi_cots_ord v inet6 tcp - -
      ...
    • insserv -r nfs-kernel-server
    • find /etc/rc* -name *nfs-kernel-server
    • insserv -r nfs-common
    • find /etc/rc* -name *nfs-common
    • rm -f /etc/rcS.d/K13nfs-common
    • insserv -r rpcbind
    • find /etc/rc* -name *rpcbind
    • rm -f /etc/rcS.d/K12rpcbind
    • insserv rpcbind
    • insserv nfs-common
    • insserv nfs-kernel-server
    • service rpcbind start
    • service nfs-common start
    • service nfs-kernel-server start

    Nun kann mit dem Gerät mit der IP 192.168.123.124 auf /share/media zugegriffen werden.

  • + Remote-Desktop-Installation

    - Remote-Desktop-Installation

    Wer aus seinem RaspberryPI auch gleich noch einen PC machen möchte, den man per Remote-Desktop (z. B. Windows 7-PC) fernbedienen kann, der muss nur folgendes Paket installieren:

    • apt-get -y install xrdp

    Die Remote-Desktop-Verbindung kann nun vom Windows 7-PC mit Start - Programme - Zubehör - Remotedesktopverbindung hergestellt werden. Die Zugangsdaten sind für RDP und RaspberryPi die des Benutzers Pi und dessen Kennwort.

  • + LibreOffice-Installation

    - LibreOffice-Installation

    Wer Büro-Utensilien wie LibreOffice als Textsystem benötigt, der muss nur folgendes Paket installieren:

    • apt-get -y install libreoffice libreoffice-l10n-de libreoffice-gtk
  • + Webbrowser-Installation

    - Webbrowser-Installation

    Wer Iceweasel als Webbrowser benötigt, der muss nur folgendes Paket installieren:

    • apt-get -y install iceweasel iceweasel-l10n-de browser-plugin-gnash
  • + Bildschirmtastatur-Installation

    - Bildschirmtastatur-Installation

    Zur Bedienung des RaspberryPI nur mit der Maus und ohne angeschlossene Tastatur empfiehlt sich eine Bildschirmtastatur.

    Folgendes ist zu tun, um diese zu installieren:

    • apt-get -y install matchbox-keyboard
    • cd /usr/share/matchbox-keyboard/
    • rm keyboard.xml
    • wget http://sas4pi.square7.ch/sas/download/zusatzsoftware/keyboard.xml
    • Wenn man ein Desktop-Icon haben möchte:
    • cd /home/pi/Desktop/
    • wget http://sas4pi.square7.ch/sas/download/zusatzsoftware/inputmethods-matchbox-keyboard.desktop

    Auf dem Desktop des RaspberryPI gibt es danach ein Icon, welches durch Doppelklick eine einfache Bildschirmtastatur startet, die ein deutschsprachiges Tastaturlayout besitzt.

  • + BootUp-Manager installieren

    - BootUp-Manager installieren

    Mit dem BootUp-Manager kann man unter der Grafikoberfläche des RaspberryPi festlegen, was automatisch beim Startvorgang gestartet werden soll. Die Installation erfolgt mit:

    • apt-get -y install bum
  • + Midnight Commander-Installation

    - Midnight Commander-Installation

    Ein Dateiexplorer für das Terminal ist ebenfalls oftmals nützlich.

    Folgendes ist zu tun, um diesen zu installieren:

    • apt-get -y install mc

    Danach ist dieser auch in PuTTY mit mc aufrufbar.

  • + Text-Editor Jed mit Syntax-highlighting installieren

    - Text-Editor Jed mit Syntax-highlighting installieren

    Ein Texteditor mit Syntax-highlighting auch für PHP ist für das Terminal ebenfalls sehr nützlich.

    Folgendes ist zu tun, um diesen zu installieren:

    • apt-get -y install jed

    Danach ist dieser auch in PuTTY mit jed Dateiname aufrufbar.

  • + GParted installieren

    - GParted installieren

    Ein Partitionierungstool wie GParted ist immer nützlich.

    Folgendes ist zu tun, um dieses zu installieren:

    • apt-get -y install gparted

    Danach ist GParted unter der Grafikoberfläche aufrufbar.

  • + Synaptic Paketmanager installieren

    - Synaptic Paketmanager installieren

    Ein Paketmanager wie Synaptic ist immer nützlich.

    Folgendes ist zu tun, um dieses zu installieren:

    • apt-get -y install synaptic

    Danach ist Synaptic unter der Grafikoberfläche aufrufbar.

+ Datensicherung

- Datensicherung

Um nach erfolgreichem Einrichten des RaspberryPI bei einem Problem nicht immer von vorne beginnen zu müssen, ist es ratsam, eine Datensicherung der Micro-SD-Karte anzufertigen.

Dies kann man bequem mit dem PC machen, indem man mit W32DiskImager den Inhalt der Micro-SD-Karte als Image abspeichert.

  • Dafür sollte man zuvor den RaspberryPI ordentlich in der Konsole von PuTTY herunterfahren:
    shutdown -h now
  • Danach kann man gefahrlos den RaspberryPI von der Stromversorgung trennen und die Micro-SD-Karte für die Imagesicherung entnehmen.
  • Nun die Micro-SD-Karte im PC einlegen und W32DiskImager starten.
  • Den Laufwerksbuchstaben der Micro-SD-Karte wählen und einen Pfad und einen Image-Namen festlegen.
  • Auf Read klicken.
  • Programm beenden, Micro-SD-Karte entnehmen und in den RaspberryPI stecken.
  • Nachdem der RaspberryPI wieder an die Stromversorgung angeschlossen ist, fährt er wieder automatisch hoch und die Datensicherung in Form einer Image-Datei ist beendet.

Sollte man nun das System beim Herumprobieren zerschießen, kann man nun auf diesen Stand jederzeit zurückgreifen, indem man mit W32DiskImager dieses Image wieder auf die Micro-SD-Karte zurück kopiert.

+ Umstieg auf den PI2

- Umstieg auf den PI2

Um nach erfolgreichem Einrichten des RaspberryPI B+ nun auf den neuen RaspberryPI 2 B umsteigen zu können, kann man, um sich den Umstieg zu vereinfachen, einfach die Speicherkarte des alten B+ mit dem darauf installierten Betriebssystem benutzen. Doch dazu muss noch folgendes am alten B+ erledigt werden.

  • Dafür meldet man sich am RaspberryPI B+ in der Konsole von PuTTY an.
  • apt-get -y update
  • apt-get -y upgrade
  • rpi-update
  • shutdown -h now
  • Danach kann man gefahrlos den RaspberryPI von der Stromversorgung trennen und die Micro-SD-Karte entnehmen.
  • Nun die Micro-SD-Karte in den RaspberryPI 2 B einlegen und einschalten.

Jetzt fährt der RaspberryPI 2 B hoch und müsste fehlerfrei und um einiges schneller als sein Vorgänger arbeiten.

RaspberryPi MicroSD-Karten-Image verkleinern

Wenn man entweder das Image des RaspberryPi platzsparend auf seiner Festplatte archivieren möchte oder wenn man das Image des RaspberryPi von einer großen MicroSD-Karte auf eine kleinere transferieren möchte, so steht man vor einem großen Problem. Hier werden nun zwei Lösungen vorgestellt.

  • + Debian4PC (Linux-USB-Stick für den PC)

    - Debian4PC (Linux-USB-Stick für den PC)

    Dieses Image Debian4PC in einer ZIP-Datei entpackt auf den PC kann mit W32DiskImager auf einen beliebigen USB-Stick oder SD-Speicherkarte geschrieben werden. Danach kann man den PC, sofern sein BIOS dies unterstützt, von diesem Speichermedium booten und hat ein vollständiges Debian-Betriebssystem incl. aller benötigten Tools für das Verkleinern eines RaspberryPi MicroSD-Karten-Image zur Verfügung.

    Benutzer und Kennwort für das Debian-Image ist debian.

    Hier nun die schrittweise Vorgehensweise:

    • Eine Konsole öffnen.
    • Die SD-Karte, deren Image verkleinert werden soll, am PC in den Kartenleser schieben.
    • GParted starten.
    • Das Device wählen, was das Medium der SD-Karte darstellt wählen. (Als Beispiel: /dev/sdd.)
    • Alle Partitionen, die von diesem Device gemounted sind, im GParted umounten. (Dazu jede Partition anklicken und dann Aushängen im Menü Partition wählen.)
    • Die ext4-Partition wählen. Dies ist die letzte Partition auf dem Device (es sind üblicherweise auch nur 2 vorhanden).
    • Jetzt Größe ändern/Verschieben im Menü Partition wählen und so klein wie möglich einstellen. Unbedingt ein paar MB als Puffer dazugeben (etwa 100 MB reichen für gewöhnlich).
    • GParted die Aktion ausführen lassen.
    • GParted beenden.
    • Zur Konsole wechseln.
    • fdisk /dev/sdd
    • p
    • Jetzt den End-Wert der Linux-Partition merken (ext4, letzte Partition) und um 1 erhöhen. (Als Beispiel: 1234567 plus 1 ist 1234568)
    • q
    • dd count=1234568 bs=512 if=/dev/sdd of=/media/MeinLaufwerk/x.img
      /media/MeinLaufwerk steht hier als Beispiel für ein gemountedes Laufwerk, auf dem genug Platz für die zu erzeugende Datei x.img ist. Dies kann eine externe USB-Festplatte oder ein sonstiges angezeigtes Medium sein.
    • Debian beenden.
    • PC mit Windows hochfahren.
    • Mit W32DiskImager kann nun das verkleinerte Image auf eine neue MicroSD-Karte geschrieben werden.
  • + Komplett am PC mit Windows-Tools

    - Komplett am PC mit Windows-Tools

    Es geht auch komplett mit Windows-Tools. Dafür benötigt man:

    • dd für Windows Version 0.6 Beta 3
    • als Ersatz für den dd-Befehl in Debian.
      Dieser Befehl muss in einer Eingabeaufforderung aufgerufen werden.
      Die zum dd-Befehl in Debian recht ähnliche Syntax sollte man sich dennoch einmal mit dd /? anzeigen lassen.
      dd --list gibt eine Liste der möglichen Devices wieder.
      Als Tipp: dd.exe kann man in das Windows-Systemverzeichnis C:\Windows\System32 kopieren, sodass er jederzeit zur Verfügung steht.
    • Paragon Partition Manager™ 2014 Free
    • als Ersatz für GParted in Debian.
      Hier muss das Programm auf dem PC installiert werden. Eine portable Fassung gibt es leider nicht. Zu beachten ist, dass man nach dem ersten Aufruf gleich zur erweiterten Oberfläche wechseln sollte, da nur dort die entsprechenden Möglichkeiten bereit stehen. Diese wird bei späteren Aufrufen dann gleich angezeigt.

    Vorgehensweise, sowie Ablauf und Nutzung der Tools ist analog zur Debian-Beschreibung vorzunehmen.