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

10/2018
Weltweiter Empfang

Diese Ausgabe als PDF kaufen

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

Stellenmarkt

Neuigkeiten

  • Physiklabor

    Der Java-Dialekt Processing zielt auf interaktive Animationen ab und eignet sich auch für Programmiernovizen.

  • Abstand halten

    Der VL53L0X misst präzise Entfernungen bis zu zwei Metern. Das macht ihn zum passenden Kandidaten für RasPi-Projekte.

  • Tux-Funk

    Der SDR-Empfänger RSP2pro von SDRplay bringt Amateurfunk auf den Raspberry Pi.

  • Himbeersieb

    Die aus Österreich stammende Upribox auf Basis des Raspberry Pi schützt wirkungsvoll vor Gefahren aus dem Internet. Jetzt ist das System in der zweiten Version erschienen.

  • Unter Kontrolle

    Das programmierbare Steuermodul Controllino bietet mit seinen zahlreichen Ein- und Ausgängen vielfältige Möglichkeiten.

  • Dehnübungen

    Ein RasPi eignet sich bestens zum Steuern eines Fischertechnik-Roboters. Damit dabei kein Chaos entsteht, gilt es, die Steuerung genau zu programmieren.

  • Klangmaschine

    Der RasPi bringt genügend Performance mit, um als kleine DAW zu dienen. Mit Waveform 9 haben Sie die passende Software zur Hand.

  • Fremdgehen

    Nicht jedes Programm gibt es auch für die ARM-Architektur. Der kommerzielle Emulator Exagear Desktop fungiert als Übersetzer zwischen der ARM- und x86-Welt.

  • Ausfallsicher

    Eine selbst gebaute USV für den RasPi verschafft Ihnen die entscheidenden Sekunden, um bei unerwarteten Stromausfällen einem Datenverlust vorzubeugen.

  • Am laufenden Band

    Die Kombination aus einem Fischertechnik-Bausatz und dem Controllino-Modul bietet eine ideale Basis, um ein funktionierendes Industriemodell zu gestalten.