Auf einer Reise läuft man immer Gefahr, dass die Kamera abhanden kommt. Daher sollte man tunlichst seine Schnappschüsse auch unterwegs sichern. Der Fototank erledigt das – und präsentiert die Bilder in der erweiterten Version nun auch per Webserver.
Das Grundprinzip des Fototanks bleibt erhalten: Der Raspberry Pi bootet, anschließend kommt die Speicherkarte der Digicam per USB-Adapter an den RasPi, und der holt sich von dort alle Fotos (Abbildung 1). Den Status signalisieren dabei drei LEDs. Einfacher geht Backup eigentlich nicht – allerdings blieben nach dem ersten Teil noch ein paar Wünsche offen.
Am Anfang steht, wie im ersten Teil des Workshops angekündigt, ein Update des Kopierskripts an. Außerdem soll das Backup auch von Windows-Rechnern aus funktionieren. Die Sicherungsdaten liegen jedoch auf einer mit einem Linux-Dateisystem formatierten Partition – das Speichermedium an einen Windows-PC zu hängen funktioniert daher nicht. Zu guter Letzt installieren wir noch einen Webserver samt kleiner Fotogalerie, sodass Sie das Bildmaterial auch unterwegs jederzeit sichten können.
Besser kopieren
Das Kopierskript aus dem ersten Teil erledigt zwar seine Aufgabe, weist aber auch Schwachstellen auf. So besteht etwa beim Kopieren der Daten von einer Speicherkarte die Gefahr, dass es Dateien mit identischen Namen im Backup-Verzeichnis überschreibt. Auf dem Github-Projekt des Autors [1] gibt es daher inzwischen eine überarbeitete Version des Skripts (copy_img2 statt copy_img im Projektverzeichnis files/usr/local/sbin/).
Das Skript gibt nun jeder kopierten Datei einen eigenen Namen nach dem Muster pimg_1234.xxx und zählt dabei die Zahlen selbstständig hoch. Dabei stellt es sicher, dass es Dateien nur einmal kopiert, indem es auf jeder SD-Karte einen Zeitstempel erstellt. Dadurch unterstützt das Skript automatisch mehrere Kameras und Karten. Außerdem sortiert das neue Programm die Dateien je Aufnahmedatum in eigene Unterordner ein. Die Aufnahmen vom 8. November 2016 landen also beispielsweise im Verzeichnis /data/images/20161108.
Damit das neue Skript greift, müssen Sie noch die Udev-Regel in der Datei /etc/udev/rules.d/99-usbcopy.rules austauschen. Die neue Version auf Github behebt zudem einen Fehler aus dem letzten Artikel: Die dort vorgestellte Udev-Regel startete das Kopierskript direkt, wodurch es bei längeren Kopierprozessen abbricht – Udev erlaubt nur einige Sekunden Laufzeit. Die neue Version startet deshalb einen Systemd-Service, der wiederum das eigentliche Skript ausführt.
Das neue Skript benötigt zusätzlich das Paket GraphicsMagick, das Sie wie gewohnt über die Raspbian-Paketverwaltung installieren. Im selben Zug spielen Sie gleich die für die Access-Point-Funktion benötigten Pakete ein (Listing 1). Mithilfe von GraphicsMagick erzeugt das Kopierskript auch gleich Thumbnails der Bilder – die benötigt das System später für die Fotogalerie.
Listing 1
$ sudo apt-get install GraphicsMagick $ sudo apt-get install dnsmasq hostapd
Zugriff von Windows
Da Linux das vom RasPi-Fototank genutzte Dateisystem direkt unterstützt, können Linux-Anwender das Speichermedium einfach vom RasPi abstecken und an ihren PC oder Laptop anschließen. Windows-Nutzern bleibt dieser Weg versperrt, da das System den Datenträger nicht erkennt. Die Lösung: Sie richten in Form von Samba einen Server-Dienst für Netzwerkfreigaben ein und greifen dann über das Netzwerk auf die Daten zu.
Dazu installieren Sie das entsprechende Paket (Listing 2, Zeile 1) auf dem RasPi und tauschen dann den Inhalt der Konfigurationsdatei in /etc/samba.smb.conf gegen die Zeilen aus Listing 3 aus. Dazu öffnen Sie die Datei mit Root-Rechten im Texteditor Nano, ersetzen den Text und speichern die Datei mit [Strg]+[O],[Eingabe] und [Strg]+[X] ab. Abschließend rufen Sie den Samba-Dienst einmal neu auf (Listing 2, Zeile 3).
Listing 2
$ sudo apt-get install samba $ sudo nano /etc/samba.smb.conf $ sudo systemctl restart smbd.service
Listing 3
[global] workgroup = IMAGETANK security = user map to guest = Bad User guest account = pi [images] comment = Image backup path = /data/images browseable = yes writable = yes guest ok = yes guest only = yes
Von Windows aus greifen Sie dann über die Adresse \\RasPi-IP\images aus dem Windows-Explorer auf die Bilder zu. Ähnlich funktioniert dies auch unter Linux, je nach Desktop-Umgebung lautet die URL etwa smb://RasPi-IP/images. Beachten Sie, dass sich der Server in dieser Konfiguration aus dem lokalen Netzwerk heraus ohne ein Passwort starten lässt. Sie sollten den Dienst mit dieser Konfiguration daher nicht auf Dauer im heimischen Netz betreiben.
Für den Fall, dass Sie die Installation und Konfiguration des Samba-Servers nicht selbst vornehmen möchten, finden Sie im Tools-Verzeichnis des Github-Projekts mit dem Skript install-samba ein kleines Programm, das diese Aufgabe für Sie übernimmt. Damit es die gewünschten Aufgaben auch ausführen darf, müssen Sie es mit Root-Rechten aufrufen.







