Raspberry Video Camera – Teil 10: SW Installation Betriebssystem und Module

Die Vorstellung der Harwarekomponenten der Raspberry Video Camera ist nunmehr abgeschlossen – jetzt geht es um Software. Da kommt als erstes natürlich das Betriebssystem ins Spiel, nämlich Raspbian Jessie Lite. Dazu habe ich in der Vergangenheit bereits Artikel geschrieben, aber nachdem sich immer mal wieder was ändert, erkläre ich hier noch einmal Schritt für Schritt eine Raspbian headless Installation mit WiFi. „Headless“ bedeutet hier, dass wir von einem Serversystem ausgehen, das weder Tastatur noch Monitor besitzt und so muss auch die komplette Installation ohne Tastatur und Monitor erfolgen. Bei Raspbian ist das kein Problem. Dazu kommt dann im nächsten Schritt die Grundeinrichtung des Systems und die Installation einiger Softwarekomponenten, die wir für das Kamerasystem benötigen.


Zuerst aber wieder ein Oachkatzl-Video bzw. diesmal ein Krähen-Video. Mehr davon gibts in meinem YouTube-Kanal.

Zur Wahrung deiner Privatsphäre wird erst eine Verbindung zu YouTube hergestelt, wenn du den Abspielbutton betätigst.

Betriebssystem Raspbian Jessie Lite

Damit der Raspberry Pi ein Betriebssystem erhält, muss das aus dem Internet geladen und dann auf eine Micro-SD-Karte geschrieben werden. Diese Vorbereitungsarbeiten kann man an einem normalen Windows-PC machen.

Download

Am Anfang steht der Download der aktuellen Raspbian Version. Im März 2017 ist das das Release vom 02.03.2017 mit dem Dateinamen 2017-03-02-raspbian-jessie-lite.zip. Die Lite-Version verwende ich aus dem einfachen Grund, weil wir bei einem Kamerasystem ohne Monitor eh keine grafische Oberfläche brauchen. Es reicht also die kleinere Lite Variante vollkommen. Die Installation funktioniert aber bei der großen Raspbian Version mit Pixel-Oberfläche analog, nur der Dateiname lautet anders.

Mikro-SD-Karte beschreiben

Micro SDIm Folgenden gehe ich davon aus, dass die Erstellung der Micro-SD-Karte an einem Windowsrechner erfolgt. An einem Linuxrechner funktioniert das natürlich auch. Wer dieses Variante wählen möchte, der kann sich an diesem Artikel orientieren – zumindest, was das Schreiben des Images auf die SD-Karte angeht. Wir brauchen also eine Mikro-SD-Karte und die sollte möglichst schnell sein. 8GB würden für Raspbian locker reichen, wir wollen aber Videos aufzeichnen, deshalb rate ich zu 16, besser noch zu 32GB Speichergröße. Wenn der Windows-PC keinen Slot für SD-Karten besitzt, brauchen wir zusätzlich noch einen Adapter für USB.

Unter Linux kann die SD-Karte mit Bordmitteln beschrieben werden (dd-Kommando), bei Windows geht das nicht, hier brauchen wir ein eigenes Tool mit dem Namen Win32 Disk Imager. Das müssen wir vorher downloaden und am Windows PC installieren.

Das heruntergeladenen Raspbian-Image ist noch gezippt, wir müssen es also entpacken und starten dann den Win32 Disk Imager. Die Meldung mit dem unbekannten Herausgeber bestätigen wir mit Ja. Unter Image File wählen wir dann die eben entpackte Datei aus und unter Device das Laufwerk unter dem die SD-Karte gemountet ist. Mit einem Klick auf Write beginnt dann der Schreibvorgang und der grüne Fortschrittsbalken wandert langsam nach rechts. Nach Abschluss des Schreibvorgangs sollten wir im Dateimanager ein Laufwerk mit der Bezeichnung boot finden. Falls nicht, können wir versuchen, die SD-Karte aus dem PC zu entfernen und sie dann zurückstecken. Windows sollte die Boot-Partition auf der SD-Karte erkennen, da sie Fat32 formatiert ist. Auf dieser Partition müssen wir nun ein paar Vorkonfigurationen vornehmen, da wir am Raspberry Pi ja weder Tastatur noch Monitor haben.

SSH aktivieren

Aus Sicherheitserwägungen heraus ist seit Raspbian Version Jessie 2016-11-25 der SSH-Dienst standardmäßig deaktiviert. Am laufenden System kann er natürlich eingeschaltet werden. Dieser Weg ist uns aber verwehrt, weil wir am Raspberry Pi weder Tastatur noch Bildschirm haben. Für diesen Zweck gibt es einen Workaround. Wir legen in der Bootpartition eine leere Datei mit dem Namen ssh an. Raspbian wird das beim Booten erkennen und den SSH-Dienst freischalten. Dazu gehen wir im Dateimanager auf boot, klicken mit der rechten Maustaste in einen leeren Bereich auf boot und wählen dann Neu – Textdokument. Als Dateiname geben wir dann ssh ein und löschen .txt weg. Die Datei muss ssh heißen und nicht ssh.txt.

WLAN Konfigurieren

Auch die WLAN Konfiguration müssen wir vorgeben, damit wir den Raspberry Pi nach seinem ersten Bootvorgang per SSH erreichen können. Aber natürlich nur, wenn der RasPi keinen LAN-Anschluss bekommt. Dazu legen wir in der Bootpartition ähnlich wie eben eine weitere Datei an, diesmal mit dem Namen wpa_supplicant.conf. Wenn die Datei erzeugt ist, öffnen wir sie mit einem Doppelklick. Windows kann zwar mit einer .conf Datei nichts anfangen, lässt uns aber ein Programm aus einer Liste installierter Programme auswählen. Wir können den Editor oder Wordpad verwenden um den folgenden Inhalt in die Datei zu schreiben:

country=DE
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
   ssid="WLAN SSID"
   psk="WLAN Netzwerkschlüssel"
}

SSID und PSK müssen wir natürlich passend zum eigenen WLAN abändern. Dann Speichern nicht vergessen und die Datei schließen. Raspbian wir beim ersten Bootvorgang die Datei an die richtige Stelle, nämlich nach /etc/wpa_supplicant verschieben. Zur Sicherheit klicken wir im Dateimanager mit der rechen Maustaste auf boot und wählen dann Auswerfen. Dann können wir die SD-Karte entnehmen.

Damit ist die SD-Karte vorkonfiguriert und kann in den Raspberry Pi gesteckt werden.

Raspberry Pi Grundkonfiguration

Per SSH Kontakt zum Raspberry Pi aufnehmen

Wir haben bisher weder den Hostnamen noch User oder Passwort geändert, der erste Zugriff auf den Raspberry erfolgt also mit den „werksseitigen“ Einstellungen:

  • Rechnername: raspberrypi
  • Username: pi
  • Passwort: raspberry

Linuxuser haben es nun leicht eine SSH-Verbindung aufzubauen, SSH kann einfach in einem Terminalfenster aufgerufen werden:

$ ssh pi@raspberrypi
The authenticity of host 'raspberrypi (2001:a61:32d0:8201:ab43:1e21:5afb:53a3)' can't be established.
ECDSA key fingerprint is SHA256:YVNy7F6Xhanx/xDbzD2BcwQc+LOYF/OqSWwCh88rBHI.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'raspberrypi,2001:a61:32d0:8201:ab43:1e21:5afb:53a3' (ECDSA) to the list of known hosts.
pi@raspberrypi's password: 

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
pi@raspberrypi:~ $ 

Die anfängliche Warnung und die Frage, ob mit der Verbindungsaufnahme fortgesetzt werden soll, kommt daher, dass der SSH-Client den Host (also den Raspberry Pi) noch nicht kennt. Wenn wir mit yes zustimmen, wird der Fingerprint gespeichert und die Warnung entfällt in Zukunft. Nach Eingabe des Standardpassworts sind wir eingeloggt und können beliebige Linux-Kommandos am Raspberry Pi absetzen.

Windowsanwender haben es nicht ganz so einfach, sie müssen erst ein SSH-Programm installieren, typischerweise Putty. Wenn Putty nach seiner Installation am Windowsrechner gestartet wird, tragen wir bei Hostname raspberrypi ein und klicken auf Open. Dann werden in einem Terminalfenster User und Passwort abgefragt und wir sind drin. Ähnlich wie unter Linux können wir im Feld Hostname auch gleich den User mitgeben, der Eintrag lautet dann pi@raspberrypi. Das erspart die Abfrage des Users im Terminalfenster, es wird gleich das Passwort abgefragt. Die Warnmeldung, die wir unter Linux im Terminalfenster angezeigt bekommen, stellt Putty in einem eigenen Fenster dar. Dort brauchen wir zur Bestätigung nur auf Ja klicken.

Grundeinstellungen mit raspi-config

raspi-config ist das Konfigurationstool von Raspbian auf der Commandlineebene. Das müssen wir immer mit vorangestelltem sudo aufrufen um Rootrechte zu erlangen.

sudo raspi-config

Den Menüpunkt Expand Filesystem gibt es zwar noch unter Advanced Options, wir brauchen ihn aber nicht mehr (so wie früher) explizit aufrufen. Raspbian hat beim ersten Boot bereits automatisch die gesamte Größe der SD-Karte der Root-Partition zugeschlagen. Folgende Einstellungen nehmen wir jetzt in raspi-config vor:

  • Change User Passwort: Nachdem wir SSH verwenden, dürfen wir es auf keinen Fall beim Standardpasswort belassen und ändern es hier auf einen persönlichen Wert.
  • Hostname: Das ist vor allem sinnvoll, wenn wir mehrere Raspberry Pis im Netz haben, die müssen natürlich unterschiedliche Namen bekommen.
  • Localisation Options: Die Wi-fi Country Einstellung haben wir bereits mit der Vorkonfiguration der wpa_supplicant.conf Datei erledigt. Unter Change Locale markieren wir de_DE.UTF-8 UTF-8 mit der Leertaste, gehen dann auf OK und setzen es in der nachfolgenden Abfrage auch als Defaultwert. Dann stellen wir noch unter Change Timezone die Zeitzone unter richtig ein – also Europe – Berlin.
  • Für das Raspberry Video Camera Projekt müssen wir auch noch die Kamera aktivieren mit Interfacing Options – Camera.

Danach verlassen wir raspi-config mit Finish und führen den vorgeschlagenen Reboot durch. Nun können wir gleich prüfen, ob der neue Hostname und das geänderte Passwort funktionieren. Der SSH-Aufruf wird allerdings gleich auf einen Fehler laufen, weil der modifizierte Hostnamen nun nicht mehr zum gespeicherten Fingerprint passt. Was zu tun ist, wird im Hinweis angezeigt. Danach können wir uns mit dem neuen Passwort wieder am Raspberry Pi angemelden.

Software aktualisieren und nachinstallieren

Als erstes bringen wir das Betriebssystem auf den aktuellen Stand mit:

sudo apt-get update
sudo apt-get dist-upgrade

Aktualisierungsanfragen bestätigen wir mit Enter. Damit ist auch gleichzeitig die Raspberry Pi Firmware auf den aktuellen Stand gebracht. Den früher gebräuchlichen Befehl rpi-update  sollten wir nicht mehr verwenden.

Nun installieren wir weitere Software, die für das Raspberry Video Camera Projekt benötigt wird. Wenn es dabei um Python Module geht, so installiere ich nur die Module für Python3 in der Annahme, dass heute kein Mensch mehr Python 2.7 braucht.

Picamera

Picamera ist das Python-Modul für die Raspberry Pi Kamera. Das brauchen wir um die Kamera per Python-Programmierung ansprechen zu können.

sudo apt-get install python3-picamera

Wichtig ist es, dass wir mindestens Version 1.13 oder neuer installieren. Ältere Versionen werden mit den Python Programmen, die wir für dieses Projekt erstellen, nicht funktionieren. Nach der Installation schauen wir kurz ein paar Zeilen nach oben und suchen folgende Zeile:

python3-picamera (1.13) wird eingerichtet ...

Hier sehen wir, dass es sich um die Version 1.13 handelt. Abfragen lässt sich die Version auch mit:

$ apt -qq list python3-picamera
python3-picamera/stable,now 1.13 armhf  [installiert]

MP4Box

MP4Box ist ein Multimedia-Packager, den wir verwenden werden, um aus den .H264-Videos, die Picamera erzeugt, MP4-Videos zu machen. MP4Box ist Bestandteil von GPAC.

sudo apt-get install gpac

GPIO

Das ist wieder ein Python-Modul, mit dem wir in Python die GPIO-Pins ansprechen können. Das brauchen wir, um den Bewegungssensor auszulesen. Für die Kamera Modelle 850A (ohne Bewegingssensor) braucht diese Software nicht installiert werden.

sudo apt-get install python3-rpi.gpio

Damit haben wir nun ein aktuelles Raspbian Lite installiert, WLAN und den Zugang per SSH eingerichtet und ein paar Programmpakete ergänzt. Der Raspberry Pi ist jetzt bereit und wir können die Kamera per Python programmieren.


Weitere Artikel in dieser Kategorie:

Schreiben Sie einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert