Foto-Backup mit dem RasPi

© Oleksandr Homon, 123RF

Weggesichert

Wer gern unterwegs fotografiert, braucht ein mobiles Backup-Medium für die Fotos, um den Digicam-Speicher für neue Schnappschüsse freizumachen. Ein RasPi eignet sich perfekt als Basis für einen solchen Foto-Tank.

Das Ziel dieses Projekts ist ein möglichst einfach bedienbares System: Hochfahren, Speicherkarte aus der Kamera per Adapter an den RasPi anstöpseln, automatisches Kopieren der Bilder. Am Schluss soll der Pi sauber herunterfahren. Dummerweise fehlen ihm dafür in der Grundausstattung ein paar Dinge: Weder kann der Mini-Rechner dem Nutzer ohne Bildschirm Rückmeldung über den aktuellen Status geben, noch lässt er sich ohne eine Tastatur ohne Weiteres herunterfahren.

Zum Glück gibt es einfache Erweiterungen für die Sockelleiste des Raspberry Pi, die hier Abhilfe schaffen. Unter der Bezeichnung HAT (Hardware Attached on Top) hat die Raspberry Pi Foundation diese seit einiger Zeit normiert. Die Anforderungen für unsere Anwendung fallen recht moderat aus: Ein paar LEDs signalisieren dem Anwender, was gerade läuft; per Taster lässt sich der Shutdown auslösen.

Wer löten kann, ist hier natürlich klar im Vorteil. Für wenig Geld gibt es pfiffige Bausätze wie Berry-Clip [1] oder Fish-Dish [2] mit Platine und allen Teilen (LEDs, Widerstände etc.), die man nur noch zusammenlöten muss. Reine Softwerker wie der Autor greifen dagegen lieber zu bereits montierten Lösungen.

Der Artikel stellt weiter unten für den geplanten Einsatzzweck den einfachen HAT Pibrella von Pimoroni vor. Eine Alternative bietet das ebenfalls von Pimoroni stammende Display-O-Tron. Im Artikel "Weniger ist mehr" in dieser Ausgabe erfahren Sie Details zu dieser preislich und funktionell sehr interessanten Alternative. Zuerst geht es aber um den eigentlichen Zweck, das automatische Kopieren der Daten von Speicherkarte auf Festplatte.

Installation

Als Voraussetzung dient uns ein RasPi der dritten Generation (ein Pi 2 tut es auch) mit angeschlossener Festplatte. Als Betriebssystem kommt Raspbian "Jessie" Lite zum Einsatz. Installieren Sie das System zunächst wie gewohnt auf eine SD-Karte. Anschließend stöpseln Sie die Platte ein und partitionieren sie (Listing 1, erste Zeile).

Listing 1

 

$ sudo fdisk /dev/sda
[...]
$ sudo mkfs.ext4 /dev/sda1
$ sudo mkdir /data
$ sudo mount /dev/sda1 /data
[...]

Sie erstellen eine einzige Partition, die den kompletten Platz einnimmt. Achtung: Alle vorhandenen Daten gehen dabei verloren. Mit [W] schreiben Sie die Daten zurück und beenden Fdisk. Anschließend formatieren Sie die Platte, erstellen ein Mount-Verzeichnis und hängen die Platte dort ein (Listing 1, Zeile 3 bis 5). Damit das System die Platte zukünftig automatisch einhängt, ergänzen Sie noch die Datei /etc/fstab um die Zeile aus Listing 2.

Listing 2

 

/dev/sda1 /data ext4 user_xattr,noatime,acl 1 2

Erscheint Ihnen das alles zu kompliziert, weichen Sie auf die Anleitung aus dem Kasten "Automatische Installation" aus. Da dabei dann nicht nur die Daten auf der Platte ablegt werden, sondern auch das Betriebssystem, läuft Raspbian in diesem Fall noch etwas geschmeidiger als von SD-Karte. Für das Kopierprogramm fehlt noch der Rsync-Befehl – Sie ziehen das Programm aus den Paketquellen von Raspbian nach (Listing 3).

Listing 3

 

$ sudo apt-get update
$ sudo install rsync

Automatische Installation

Möchten Sie Raspbian nicht manuell auf die Festplatte kopieren und anpassen, können Sie den Prozess auch in einem Rutsch automatisch per Skript ausführen. Als Basis dazu dient ein laufendes Linux auf dem PC. Auf das Skript ging bereits ein Artikel in RPG 01/2016 im Detail ein [5], hier verwenden wir nur die Basisfunktionen.

Sie holen das Skript am besten direkt von Github ab, wozu Sie eventuell noch den Git-Client installieren müssen (Listing 4, Zeile 1 und 2). Des Weiteren stecken Sie eine SD-Karte für die Bootpartition in den Rechner (im Beispiel /dev/sdb) und schließen die Festplatte an (/dev/sdc). Die genauen Device-Namen sind wichtig, sonst droht Datenverlust. Die Kommandos blkid und fdisk -l helfen bei der Identifikation der Laufwerke. Nach dem Herunterladen des Raspbian-Images installieren Sie dann das System (Zeile 3).

Das Beispiel geht davon aus, dass Sie nach dem git clone das Verzeichnis nicht wechseln. Achtung: Alle Daten auf der Speicherkarte und der Festplatte gehen verloren. Die Größe der Datenpartition (Option -D) passen Sie für die verwendete Festplatte an. Die Datenpartition hängt das System später beim Booten automatisch im Verzeichnis /data ein.

Nachdem Raspbian auf die Karte und Festplatte aufgespielt wurde, kommt die Karte in den RasPi und die Platte per Kabel an einen USB-Anschluss. Nach dem ersten Systemstart müssen Sie das noch unkonfigurierte System wie üblich an Ihre Anforderungen anpassen.

Listing 4

 

$ sudo apt-get install git
$ git clone https://github.com/bablokb/apiinst
$ sudo apiinst/bin/apiinst -i /pfad/zu/20160527-raspbian-jessie-lite.zip -B /dev/sdb -t /dev/sdc -D 285G

Automatisches Kopieren

Nach dem Einstecken einer Speicherkarte mittels eines SD-Kartenlesers soll das System selbsttätig die Daten auf die Festplatte sichern. Dazu braucht es zwei Dinge: einmal eine Udev-Regel sowie das eigentliche Kopier-Skript. Dabei überwacht der im Hintergrund aktive Dienst Udev das System und führt beim Ein- und Ausstecken von Geräten automatisch vordefinierte Aktionen aus.

Der Einzeiler in der Datei /etc/udev/rules.d/99-usbcopy.rules aus Listing 5 sagt dem Daemon, dass er für neue Geräte, deren Namen mit "sd" anfängt, das Skript /usr/local/sbin/copy_img ausführen soll. Den Gerätenamen (in "$kernel") bekommt das Skript per Parameter. Ein Neustart ist nach der Einrichtung in der Regel nicht nötig.

Listing 5

 

KERNEL=="sd?", SUBSYSTEMS=="usb", ACTION=="add", RUN+="/usr/local/sbin/copy_img $kernel"

Das Skript selbst finden Sie in Listing 6, reduziert auf das absolut Notwendige. Eine etwas ausgefeiltere Version mit Prüfungen und Logging erhalten Sie über die Projektseite des Autors [3]. Da der Name der als Datenspeicher genutzten Festplatte /dev/sda auch mit "sd" anfängt, filtert das Skript dieses Gerät heraus (Zeile 3). Das eigentliche Kopieren erledigt das Rsync-Kommando in Zeile 7. Interessant sind noch die Zeilen 5 und 9, deren Bedeutung die folgenden Abschnitte klären.

Listing 6

 

#!/bin/bash
[ "$device" = "sda" ] && exit 0
/usr/local/sbin/hatctl.py AS
mount "/dev/${device}1" /mnt
rsync -a --no-owner --modify-window=1 /mnt/DCIM/*/* "/data"
umount /mnt
/usr/local/sbin/hatctl.py AE

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Aktuelle Ausgabe

02/2019
Neue Energien

Diese Ausgabe als PDF kaufen

Preis € 9,99
(inkl. 19% MwSt.)

Stellenmarkt

Neuigkeiten

  • Scheibchenweise

    Zu den Stärken von Sonic Pi gehört es, mit wenigen Zeilen Code Samples dynamisch auszuwählen und zu zerlegen.

  • Unter Strom

    Für einen kleinen Spannungsmesser wie den INA3221 gibt es viele Einsatzmöglichkeiten. Wir zeigen, wie Sie den flexiblen Baustein richtig verdrahten.

  • Vermittlungsstelle

    Fischertechnik-Modelle bieten sich zum Fernsteuern an. Mit dem Ftduino schlagen Sie die Brücke zwischen dem RasPi und dem Technik-Spielzeug.

  • Durchgeschlängelt

    Mit den M0-Boards steigen Sie unkompliziert in die Welt der Mikrocontroller ein – ganz ohne C-Kenntnisse.

  • Gesiebt und gefiltert

    Filter und Werbeblocker einzurichten ist besonders auf Smartphones aufwendig. Den eBlocker hingegen schließen Sie einfach nur an Ihren Router an.

  • Es werde Licht

    Wollen Sie bei beginnender Dämmerung nicht ständig die Helligkeit der heimischen Beleuchtung nachregeln, überlassen Sie das einfach einem RasPi – der macht es automatisch.

  • Energiekontrolle

    Der Gesetzgeber erschwert das Direktvermarkten von Strom durch technische Hürden: So muss sich die Einspeisung etwa aus der Ferne abschalten lassen. Der RasPi löst das Problem.

  • H<->2<->-Power

    Gilt es, Energie aus einer regenerativen Quelle zu speichern, erweist sich die Kombi aus einer Brennstoffzelle und dem RasPi als ideale Lösung.

  • Kleine Wolke

    Lokale Cloud-Lösungen im Heimnetz finden immer mehr Nutzer. Mit dem RasPi und Seafile haben Sie eine Lösung zur Hand, die selbst professionellen Ansprüchen genügt.

  • Planvoll verdrahtet

    Die Leiterplattendesign-Software KiCad leistet trotz einer etwas umständlichen Bedienung auch Hobbybastlern gute Dienste.