Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv

Will man ein SD Kartenimage was man auf einer Raspberry erstellt hat, clonen und auf anderen Raspberries ebenso laufen lassen, muss man eine Sache beachten. Ansonsten bekommt man auf einer anderen Raspberry mit dem geclonten SD Kartenimage keine Netzwerkverbindung.

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv

Auf der Raspberry Pi läuft üblicherweise ein Linux (raspbian oder raspbmc). Linux bietet diverse Möglichkeiten eine externe Datenquelle anzubinden. Verbreitet sind folgende Protokolle: SAMBA: smbfs/cifs, NFS: nfs, SSH: sshfs, FTP: cupsftp und Cloudspace: webdav/davfs. Der folgende Beitrag beschreibt anhand von Beispielkonfigurationen wie man die verschiedenen externen Datenquellen an der Pi verfügbar machen kann.

Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv

Bei mir liegen diverse ungenutzte 433 MHz Steckdosenschalter rum und was liegt da näher als die per Android App sowie per Programm mit einer Raspberry Pi zu steuern. Damit kann man dann diverse Dinge schalten wie Beleuchtungen, Kaffeemaschinen, PCs und was einem sonst noch so einfällt. Wenn man im Netz zu diesem Thema sucht wird man erschlagen mit Hits. Daraus dann die passende Lösung zu finden ist nicht leicht. Wichtig ist für mich eine Android App zu haben um die Schalter zu steuern sowie Programme auf der Pi starten und stoppen zu lassen. Ich habe mich deshalb entschieden pilight dazu zu benutzen. Die notwendige Hardware dazu ist wenig und schnell auf ein Breadboard zu stecken. Dieses habe ich dann noch mit einem Breakout Expansion Kit verbunden. Pilight bietet eine fertige Android App sowie ein fertiges Webfrontend zum Steuern und kann nach belieben Schalter diverser Hersteller einbinden sowie auch beliebig Programme auf der Pi starten und stoppen, die bestimmt Aufgaben erledigen. Beide sind sehr einfach aufgebaut aber sie erfüllen vollkommen ihren Dienst.

Der folgende Beitrag enthält Links zu Webseiten, die alle notwendigen Informationen zum Aufbau enthalten sowie Dinge, auf die man aufpassen muss sowie Links zu meinen server- und config json Dateien zum download.

Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv

 

 Nackt und mit Gehäuse

RaspPi.JPG

RaspPiCase.JPG

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv
Wer eine Raspberry PI besitzt sollte immer sicherstellen dass aus dem Internet auf die lokale Pi nur auf sicherem Weg zugegriffen werden kann. Es gibt z.B. ssh tunneling - aber die sicherste und allgemeinste Methode ist OpenVPN.  Damit sind sämtliche Ports der Pi von einem OpenVPN Client sicher zugreifbar. Der folgende Artikel beschreibt wie man OpenVPN auf der PI installiert und konfiguriert sowie wie man einen Linux OpenVPN Client konfiguriert um  aus dem Internet sicher auf ihn zugreifen zu können. Dabei wird die einfache Variante beschrieben die nur einen Client zu einer Zeit erlaubt, die aber in der Regel ausreicht. Die Clientkonfigurationsbeschreibung umfasst Linux und Windows7. 
 

Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv

Die Raspberry Pi wird viel benutzt und wie bei jedem Rechner mit Software stellt sich auch da die Frage, wann man einen Softwareupdate machen sollte, ob dieses regelmäßig geschehen sollte und ob man auch regelmäßig einen Reboot der Pi vornehmen sollte.

Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv
Die Raspberry Pi läuft mit Raspian, einem Debian für die ARM Architektur. Sie besitzt einen Ethernetadapter und üblicherweise wird zusätzlich ein USB WLAN Adapter eingebaut um kabellos mit der Pi kommunizieren zu können. Was liegt da näher als auch die Pi als Access Point zu konfigurieren um damit per WLAN ins lokale Kabelnetz zu gelangen. Dieses kann entweder als Router oder als Brücke konfiguriert werden. Der Vorteil der Brücke ist, dass dann alle Geräte, die sich an der Pi anmelden IPs aus demselben Netz bekommen, wie das Heimnetz und man z.B. im lokalen Router auch die über die Pi per WLAN angemeldeten Geräte sieht. Das ist nicht der Fall wenn man einen Router benutzt. Dafür hat die Routerkonfiguration andere Vorteile wie z.B. den Einsatz von zusaetzliche Firewallregeln, um gezielt Netzwerke zu sichern. Der Einsatz als DMZ.
Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv

Owncloud ist sehr beliebt und wird auch gerne auf der Raspberry unter Raspbian installiert. In dem Raspberry Pi Forum gibt es ein Tutorial, welches beschreibt wie man Owncloud auf Raspbian installiert. Man kann entweder der guten Schritt-für-Schritt Anleitung folgen was den Vorteil hat, dass man sieht was wo und wie in der Konfiguration geändert werden muss oder man kann dieses von mir geschriebene Script aufrufen, welches exakt dieselben Installations- und Konfigurationsschritte ausführt. Am Ende hat man durch einfaches Aufrufen des Scripts Owncloud auf Raspbian installiert.

Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv
Eigentlich läuft unter Linux standardmäßig immer cron. Leider startete kein Script welches ich in der crontab unter raspxbmc eingestellt habe.  Bei raspxbmc ist cron aber standardmäßig nicht gestartet. Den Hinweis wie man es aktivieren kann habe ich hier gefunden. Danach lief alles wie erwartet.
 
Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv
Die aktuelle finale raspxbmc Version vom 2. Feburar 2013 funktioniert sehr gut verglichen mit den vorherigen Versionen. Meine Hama MCE Remotesteuerung funktioniert jetzt auf Anhieb - sogar das Mauspad ... ausser dem Contextmenu - jedenfalls dachte ich das nach den Informationen, die ich im Netz dazu fand. Dann habe ich Stunden verbracht um rauszufinden wie ich das in den Griff bekommen kann ... und dann finde ich die Datei /opt/xbmc-bcm/xbmc-bin/share/xbmc/system/keymaps/hama_mce.xml auf meiner Pi und muss feststellen, dass das Kontexmenu doch verfügbar ist. Allerdings auf einer Taste auf der Hama MCE wo ich es nicht vermutet hätte.

 

Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv
Seit ein paar Wochen nenne ich ein Raspberry Pi mein eigen. Nettes Spielzeug. Jetzt läuft auf einer SD Karte XBMC und auf einer anderen Raspbian. Nachdem ich es nach längeren Versuchen geschafft habe, den Realtek 8192 USB WLAN Stick zu aktivieren funktioniert er hervorragend.
 
Leider bekam ich vorhin einen kernel Panic beim Neustart. Lag offensichtlich daran, dass ich vorher einfach den Netzstecker gezogen habe um einen Reboot zu erzwingen. Bislang ging das immer anstandlos.Man sollte also doch auch die kleine Himbeere sauber runterfahren. Trotzdem war das kein grosses Problem: Einfach die SD Karte in einen Kartenleser reinstecken, an einen Linuxrechner anschliessen und fsck über beide Partitionen laufen lassen und schon ist der Fehler wieder behoben und einem erfolgreichen Neustart steht nichts entgegen.
Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv
Bei mir liegen 6 SD Karten rum die jeweils ein unterschiedliches OS für die PI haben bzw einen unterschiedlichen Konfigurationsstand. 
 
Jetzt habe ich berryboot entdeckt. Das ist ein Muss für jeden, der mit verschiedenen OS Images rumspielt (xbmc, raspian, puppy, ...). berryboot ist gub für die Pi. Und noch viel mehr !!! Es können Images direkt runtergeladen und installiert werden. Diese können dann auf einem beliebigen Medium liegen: Z.B. einem USB Stick oder einer USB Festplatte. Der Vorteil: Schnellere Zugriffzeiten. Dann kann man beim Boot das zu bootenden OS der Pi wie bei grub auswählen. Kein Wechsel der SD Karte ist notwendig. Bestehende OS können gecloned werden. D.h. man kann immer, bevor man eine größere Änderung beim OS vornimmt den aktuellen Stand sichern und aus dem aktuellen Stand einen Clone erstellen mit dem man dann weiterarbeitet. Das geht alles ohne weitere SD Karten da alles auf der USB Karte oder dem USB Laufwerk gespeichert wird. Eigene OS Images können selbstverständlich auch  in den Pi Bootmanager aufgenommen werden.
 
Eines ist bei berryboot zu berücksichtigen: Es wird das gesamte gemountete Gerät neu formatiert und exclusiv von berryroot benutzt . Bei einem 32 GB USB Stick ist das OK. Bei einer 1TB Platte ist das ziemliche Verschwendung.
Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv

Es besteht die Möglichkeit eigene Codeerweiterungen vor und nach dem Backupprozess des Scripts einzubinden. Dieses ist sinnvoll, wenn eigentlich Änderungen im Backupscript notwendig sind aber dann natürlich nach jedem Update von raspiBackup auf eine neue Version wieder neu eingepflegt werden müssen. Die Extensions (Plugins) sind unabhängig vom jeweiligen Codestand von raspiBackup und deshalb in diesem Falle zu empfehlen.

Verschiedene Plugins stehen zur Verfügung und dienen als Beispiele für eigene Erweiterungen. Durch die ersten wird  die CPU Temperatur sowie die Hauptspeicher- und Backuppartitionsbelegung sowie die Partitionsbelegung vor und nach dem Backup ausgegeben. Die letzte Erweiterung wird nur am Ende des Backups aufgerufen und kann bei Erfolg bzw Misserfolg des Backups unterschiedliche Aktionen auslösen.

Wer nützliche Plugins für die Community erstellt hat kann sie gerne hier in einem Kommentar beschreiben und die Downloadlocation nennen. Sollten Fähigkeiten der Plugins fehlen einfach einen Kommentar dazu hier hinterlassen und ich prüfe in wieweit die fehlende Funktion eingepflegt werden kann.

 

Achtung

Es existiert mittlerweile eine vollständige neue raspiBackup Dokumentation die alle raspiBackup Dokumentation auf dieser Webseite ablöst. Das Thema dieser seite ist darin hier bschrieben.

 

Pluginaufrufstellen beim Backup

Die verschiedenen Plugins werden an folgenden Stellen im Backupverlauf aufgerufen:

eMail Plugin (mem)

Notification (notify) Plugin wenn eingeschaltet (DEFAULT_NOTIFY_START)

Slack, Pushover und Telegram Notifications falls konfiguriert und wenn eingeschaltet (DEFAULT_NOTIFY_START)

BEFORE_STOPSERVICES (Definierte Befehle werden ausgeführt)

STOP_SERVICES (Definierte Befehle werden ausgeführt)

PRE_BACKUP_EXTENSION

READY_BACKUP_EXTENSION

... erstellen des Backups ...

POST_BACKUP_EXTENSION

START_SERVICES (Definierte Befehle werden ausgeführt

AFTER_STARTSERVICES (Definierte Befehle werden ausgeführt)

... Aufräumarbeiten wie das Löschen von obsoleten Backups (kann länger dauern)

FINAL_COMMANDS (ab Release 0.6.8) (Definierte Befehle werden ausgeführt)

eMail (mail) Plugin

Notification (notify) Plugin

Slack, Pushover und Telegram Notifications falls konfiguriert

... Final housekeeping

Exit

 

Pluginaufrufstellen beim Restore

(Verfügbar ab Releae 0.6.7)

Die verschiedenen Plugins werden an folgenden Stellen im Restoreverlauf aufgerufen:

PRE_RESTORE_EXTENSION

... restoren des Backups ...

POST_RESTORE_EXTENSION
 

Beispielplugins

 

  1. Der einfachste Weg ist die Beispielplugins mit dem Installer zu installieren und zu aktivieren. Entweder über die Menufolge Installiere Komponenten->Installiere Beispielerweiterungen oder direkt über die Befehlszeile (Benutze die Option -e)
    raspiBackupInstallUI.sh
    oder
    raspiBackupInstallUI.sh -e
  2. Wer die Beispielplugins manuell installieren will kann das tar mit diesem Link mit einem Browser downloaden oder auch direkt wie folgt auf die Raspberry downloaden und nach /usr/local/bin auspacken.
    wget http://www.linux-tips-and-tricks.de/raspiBackupSampleExtensions.tgz -O raspiBackupSampleExtensions.tgz
    tar -xzf raspiBackupSampleExtensions.tgz -C /usr/local/bin

Dadurch werden die folgenden Scripte in /usr/local/sbin kopiert:

1) raspiBackup_mem_pre.sh and raspiBackup_mem_post.sh - Berichtet Memory Usage der Raspberry vor und nach dem Backup

2) raspiBackup_temp_pre.sh and raspiBackup_temp_post.sh - Berichtet die CPU Temperatur der Raspberry vor und nach dem Backup

3) raspiBackup_disk_pre.sh and raspiBackup_disk_post.sh - Berichtet die Plattennutzung vor und nach dem Backup

4) raspiBackup_execute_post.sh - Wird am Ende des Backups aufgerufen. Hilfreich wenn eine eigene Erfolg/Fehler Benachrichtigungsfunktion genutzt werden soll.
 

Um die Plugins zu aktivieren ist noch folgender zusätzlicher Aufrufparameter bei raspiBackup notwendig.

-N "temp mem disk execute"

 bzw in die Konfigurationsdatei ist folgende Zeile aufzunehmen

DEFAULT_EXTENSIONS="temp mem disk execute"

Details zu den Aufrufparametern bzw den Konfigurationsparametern siehe hier

There is no need for notification extensions for slack, pushover and telegram. Just configure the corresponding config definitions. If you want to use your own notification extension provide a script called raspiBackup_notify.sh.

Die folgenden Extensions können ein pre und/oder post Script haben und müssen raspiBackup_<extension>_pre.sh und/oder raspiBackup_<extension>_post.sh heissen. 

  1. temp
  2. mem
  3. disk

Alle anderen Extensions müssen kein _pre and _post am Ende haben.

For details of the parameters and config file see this page.

Die Plugins erzeugen folgende Meldungen:

--- RBK1001I: Memory usage - Pre backup - Used: 97 MB Free: 130 MB - Post backup - Used: 98 MB Free: 121 MB
--- RBK1000I: CPU temperature pre and post backup: 53.2'C - 55.8'C
--- RBK1002I: Disk usage pre backup: Used: 1.30 TiB Free: 2.18 TiB
--- RBK1003I: Disk usage post backup: Used: 1.30 TiB Free: 2.18 TiB
--- RBK1004I: Free change: -256.00 KiB (0.00 %)

Meldungen

Die Beispielplugins benutzen Meldungen die ab dem Nummernbereich 1000 beginnen wie z.B. RBK1000I. Wer eigene Plugins erstellt sollte sofern sie Meldungen schreiben diese bei 2000 beginnen lassen und nicht den Bereich unter 1999 benutzen.

 

Interface

Das Plugin bekommt im Aufruf den aktuellen Statuscode von raspiBackup mitgegeben. Ein Statuscode von 0 bedeutet in den Postplugins der Backup war erfolgreich. Jeder andere Statuscode bedeutet dass der Backup beendet wurde.

 

eMailPlugin

Ab der Version 0.6.1.1 gibt es ein emaiPlugin D.h. man kann die emailVersendung selbst programmieren. Das ist dann besonders hilfreich, wenn die vom Script unterstützen eMailProgramme den eigenen eMailClient nicht unterstützen. Ausserdem kann das Aussehen der eMail beliebig geändert werden. Eine Beispielplugins die mailx benutzt befindet sich in den Beispielplugins.

Das Mailplugin wird dadurch aktiviert, dass für den Parameter -s mailext definiert wird. Dann wird das Mailplugin mit dem Namen raspiBackup_mail.sh aufgerufen, die dann den Mailversand vornehmen muss. Die folgenden Parameter werden dem Mailplugin Script übergeben:

email="$1"        # target email address
subject="$2"      # email subject
content="$3"      # email contents
parms="$4"        # addtl email parms passed with -E
append="$5"       # file to append

Wenn jemand ein eMailPlugin schreibt wäre es gut wenn dieses Plugin in einem Kommentar am Ende dieser Seite erläutert wird so dass der Code vielleicht mit anderen ausgetauscht werden kann.

 

Hinweise

1) Achtung: Die Extensions laufen mit root Rechten und können deshalb bei Fehlern das laufende System schädigen oder sogar zerstören !

2) Es sind nicht beide Scripts (pre und post) notwendig. Es reicht wenn eines existiert.

3) Zum Testen von Plugins ist der Parameter -F sehr hilfreich. Dadurch wird der eigentliche Backupprozess übersprungen und somit der Scriptdurchlauf sehr schnell.

4) Der Rückgabewert des Backupprozesses wird an das Plugin als Parameter weitergereicht. 0 <=> OK, <>0 Fehler

5) Da die Plugin im Scope von raspiBackup aufgerufen werden, besteht Zugriff auf interne Scriptvariablen. Davon ist abzuraten, da sich die Internas jederzeit ändern können. Aus diesem Grunde ist es auch ratsam eigene Variablen mit einem pluginspzifischen Prefix zu versehen umd mögliche Konflikte mit Variablennamen die von raspiBackup benutzt werden zu vermeiden.

5) Wenn jemand seinen Plugincode sharen möchte geht das einfach über einen Pullrequest auf github. Dort ist aller Plugins im Quellcode verfügbar um ihn zu erweitern und neuen zuzufügen.

Unterkategorien