Raspberry Pi als digitaler Bilderrahmen

Der Raspberry Pi bietet sich ja aufgrund seiner geringen Abmessungen und aufgrund seines geringen Stromverbrauchs hervorragend als digitaler Bilderrahmen an.

Mein Ziel bei der ganzen Sache war es, den Raspberry Pi via HDMI-Kabel an meinen Fernseher anzuschließen und dann soll automatisch eine Slideshow ausgesuchter Bilder dort ablaufen.

pqiv auf dem Raspberry Pi
Diashow mit pqiv auf dem Raspberry Pi

Im nachfolgenden beschreibe ich zwei unterschiedliche Varianten,

  1. Bilder für die Diashow sind auf dem Raspberry Pi gespeichert
  2. Bilder für die Diashow sind auf einem zentralen Server gespeichert

Grundkonfiguration

Bevor man gezwungen ist, sich für eine der beiden Varianten zu entscheiden, muss man das Bildprogramm installieren. Ich habe als Bildbetrachtungstool pqiv genommen, welches klein und schlank ist und meiner Meinung nach wunderbar auf dem Pi läuft.

Die Installation von pqiv ist ein wenig aufwendiger, da man das Tool selbst kompilieren muss. Es ist zwar auch eine Version in den Paketquellen enthalten, aber diese scheint nicht reibungslos zu laufen und Fehler zu erzeugen. Deshalb installieren wir hier mal schnell pqiv:

Erstmal entfernen wir das evtl. bereits installierte Programm vom Pi

sudo apt-get remove pqiv

Nun noch zwei Pakete installieren, die wir für das weitere Vorgehen benötigen

sudo apt-get install git libgtk2.0-dev

Nun laden wir pqiv von github herunter. Es wird automatisch ein Verzeichnis im Home-Verzeichnis mit dem Namen pqiv angelegt

git clone https://github.com/phillipberndt/pqiv.git -b 0.12

Der erste Schritt des Komilierens

cd pqiv
./configure

Nun müsst ihr mit einem Editor die Datei pqiv.c im Verzeichnis /home/pi/pqiv öffnen. Dort sucht ihr nach dem Eintrag „gchar option“; und ersetzt das durch „gint option“;.

Danach gebt ihr noch den Befehl ein und fertig

sudo make all install

Wenn kein Fehler auftaucht, dann ist pqiv auf eurem Pi installiert und ihr könnt es jetzt schon starten. Der Befehl dazu ist

pqiv [-option] [file or folder]


Auf dieser Seite findet ihr eine übersichtliche Darstellung Optionen ➡ http://www.digipedia.pl/man/doc/view/pqiv.1/

Nachdem nun das Bildbetrachtungstool installiert wurde, konfigurieren wir im nächsten Schritt den Autostart von pqiv.

Zuerst ist zu prüfen, ob der Pi beim booten automatisch den XServer mitstartet. Geht auf die Konsole und gebt dort den Befehl ein

sudo raspi-config

sudo raspi-config
sudo raspi-config

XServer - Autostart
XServer – Autostart

XServer - Autostart
XServer – Autostart

Nachdem ihr das alles Konfiguriert habt, startet der Raspberry Pi neu und danach sollte die grafische Oberfläche starten.

Noch sind wir mit der Grundkonfiguration noch nicht fertig. Der Raspberry Pi schaltet nach einer definierten Zeit den Bildschirm ab, was wir ja bei unserer Diashow nicht wollen. Die Bilder sollen ja immer auf dem Bildschirm zu sehen sein.
Im Internet gibt es einige Anleitungen zu diesem Thema, die ich auch fast alle ausprobiert habe. Das Einzige, was bei mir funktioniert hat ist folgendes.

Ich habe Datei /etc/lightdm/lightdm.conf editiert und dort einen Eintrag in der Kategorie [SeatDefaults] eingetragen.

xserver-command=X -s 0 -dpms

Führt auch danach einen Neustart durch, damit die Konfiguration wirksam wird.

/etc/lightdm/lightdm.conf
/etc/lightdm/lightdm.conf

Variante 1: Bilder für die Diashow sind auf dem Raspberry Pi gespeichert

Nachdem nun pqiv auf den Pi installiert wurde, geht es darum das Tool automatisch zu starten.

Bevor wir mit der Autostart-Konfiguration weitermachen, ist es erforderlich einen Ordner zu erstellen, in dem die Bilder für die Diashow abgespeichert werden. Ich habe zu diesem Zweck einen Ordner im Home-Verzeichnis erstellt.

mkdir /home/pi/Bilder

Legt nun eine Datei im einem beliebigen Verzeichnis an, wo ihr die Startoptionen für pqiv eintragen könnt. Ich habe die Datei im Verzeichnis /home/pi/.config/autostart angelegt.

Erzeugen einer neuen Datei

cd /home/pi/.config/autostart
touch start_pqiv.sh

Tragt die folgende Zeile

/usr/bin/pqiv -sf /home/pi/Bilder


in der neuen Datei ein. Ich habe das mit dem Editor nano auf der Konsole erledigt.

sudo nano /home/pi/.config/autostart/start_pqiv.sh

nano - Startbefehl für pgiv
nano – Startbefehl für pgiv

Speichert die Änderung mit der Tastenkombination Strg+X.

Nun müsst ihr noch eine weitere Datei im Verzeichnis /home/pi/.config/autostart/ anlegen.

cd /home/pi/.config/autostart
touch pqiv.desktop

Auch hier müsst ihr noch ein paar Zeilen eintragen:

[Desktop Entry]
Type=Application
Exec=/home/pi/.config/autostart/start_pqiv.sh

Auch hier habe ich die neue Datei mit dem Editor nano bearbeitet:

pgiv - Autostart
pgiv – Autostart

Zum Abschluss müssen wir noch die beiden neuen Datein ausführbar machen. Das geht ebenfalls auf der Konsole mit dem Befehl

chmod u+x pqiv.desktop start_pqiv.sh

Startet euren Raspberry Pi neu und pqiv mit Diashow sollte automatisch gestartet werden.

pqiv auf dem Raspberry Pi
Diashow mit pqiv auf dem Raspberry Pi

Variante 2:Bilder für die Diashow sind auf einem zentralen Server gespeichert

Die zweite Variante unseres digitalen Bilderrahmens unterscheidet sich lediglich im Speicherort, wo wir die Bilder für die Diashow hinterlegen. Die Variante 2 könnt ihr nutzen, wenn ihr mehrere Raspberry Pis als digitale Bilderrahmen verwendet möchtet, wo entweder jeweils die gleichen oder unterschiedliche Bilder abgespielt werden. Da es bei mehreren Geräten wahrscheinlich aufwendig ist, die Bilder auf die Pis zu schieben, ist es konfortabler die Bilder auf einem zentralen Server zu hinterlegen. Von dort können die Raspberrys die Bilder abrufen.

Für den Dateitransfer nutzen wir NFS, da es ziemlich einfach zu konfigurieren ist und wir die NFS-Freigaben bei den Bilderrahmen als Ordner einbinden können. Im Groben und Ganzen soll das Konstrukt dann so aussehen:

Mehrere verteilte Bilderrahmen
Mehrere verteilte Bilderrahmen

Damit wir weitermachen können, benötigen wir einen Linux-PC, den wir als zentrale Bildablage im Netzwerk nutzen können. Auf diesem PC müssen wir erstmal einen NFS-Server installieren und die Freigabe konfigurieren.


Gib mir gerne einen Kaffee ☕ aus!

Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕ ausgeben.

PayPal Logo


liberapay.com/strobelstefan.org


Kaffee via Bitcoin

bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj


Im nachfolgenden nehmen wir an, dass der Server die IP-Adresse 192.168.2.120 und der Raspberry Pi die IP-Adresse 192.168.2.13 hat.

Installation des NFS-Servers:

nfs-kernel-server

Freigabe des Bilderordners auf dem NFS-Servers:
Die Freigaben werden in der Datei /etc/exports eingetragen.

/home/benutzername/Bilder 192.168.2.13(ro,async)


Die Zeile besagt folgendes

  • /home/benutzername/Bilder = Pfad zum Bilderordner
  • 192.168.2.13 = IP-Adresse des Raspberry Pis
  • (ro,async) = Der Raspberry Pi erhält nur Leserechte auf den freigegebenen Ordner und es erfolgt ein asynchroner Datentransfer

Zum Schluss lassen wir die neue Konfiguration mit dem Befehl einlesen

sudo exportfs -ra 

Wechselt nun auf den Raspberry Pi. Zuerst müssen wir dort das Paket nfs-common installieren:

sudo aptitude install nfs-common

Nach der Installation schauen wir, ob wir auf dem raspberry Pi die NFS-Freigabe sehen:

showmount -e 192.168.2.120


Seht ihr nun die Freigabe, gehts weiter.

Auf dem Raspberry Pi möchten wir die Freigabe als neuen Ordner einbinden, der automatisch bei jedem Neustart eingebunden (=gemountet) wird.

Legt also einen neuen Ordner an

sudo mkdir /mnt/nfs-freigabe

Danach könnt ihr prüfen, ob ihr die Freigabe auf dem Pi einbinden könnt:

sudo mount 192.168.2.120:/home/benutzername/Bilder

Prüft nun, ob ihr die Bilder die auf dem Server gespeichert wurden, im neuen Ordner auf dem Raspberry seht

cd /mnt/nfs-freigabe
ls

Das Einbinden der NFS-Freigabe soll nun bei jedem Start des Raspberry Pis automatisch erfolgen. Ihr müsst dazu einen Eintrag in der Datei /etc/fstab vornehmen.

sudo nano /etc/fstab


Tragt dort die Zeile ein:

192.168.2.120:/home/benutzername/Bilder /mnt/nfs-freigabe nfs rw 0 0

Wenn ihr dort nun eine Liste eurer Bilder seht, hat alles funktioniert und ihr könnt mit der Konfiguration von pqiv weitermachen. Wie ihr euch sicherlich denken könnt, müsst ihr im Gegensatz zur Variante 1 nur den Pfad in der Datei start_pqiv.sh umbiegen:

/usr/bin/pqiv -sf /home/pi/Bilder

Nach einem Neustart der Raspberry Pi sollte die pqiv automatisch starten und die Bilder aus der NFS-Freigabe laden.
Da die Bilder immer vom Server geladen werden, könnt ihr zu jederzeit eine neue Diashow erstellen, ohne das die Betrachter des digitalen Bilderrahmes etwas davon mitbekommen.

Weiteres

Was ihr beim Einsatz eines Bilderrahmen mit dem Raspberry Pis noch beachten sollt:

  1. pqiv erzeugt unter Umständen eine hohe CPU-Last, was evtl. weitere Dienste/Programme auf dem Raspberry negativ beeinflusst:
    CPU - während des Bilderwechsels
    CPU – während des Bilderwechsels

    CPU - nach Bilderwechsel
    CPU – nach Bilderwechsel
  2. Der ständige Abruf der Bilder vom zentralen Server durch die Option -w kann beim Einsatz mehrere digitaler Bilderrahmen u.U. eine hohe Netzlast erzeugen und dadurch andere Dienste im Netzwerk beeinflussen. Als Abhilfe könnt ihr den ständigen Abruf der Bilder durch pqiv abschalten. Alternativ könnt ihr auch die Variante 1 verwenden und die Bilder vom Server mittels eines Cron Jobs in definierten Abständen auf den Raspberry kopieren lassen. Lokal könnt ihr ja ohne weiteres die Option -w verwenden, da so keine Last auf dem Netzwerk erzeugt wird.