Raspberry Pi 1/2/3 Headless Installation

Mit diesem Tutorial möchte ich euch die Installation eines Raspberry Pi Modell 1, 2 oder 3 vorstellen. Die Installation ist sehr einfach und benötigt auch keine angeschlossenen Geräte am Pi, sofern man die Installation über ein Netzwerkkabel durchführt.

Was ihr benötigt:

  • Ein Raspberry Pi Modell 1, 2 oder 3
  • Ein Netzwerkkabel
  • Ein Terminal-Tool, z.B. Putty, SmarTTY oder eine andere
  • Etcher zum Schreiben der SD/microSD Karte – ihr erhaltet es hier (verwendet die Portable-Version, dann braucht ihr keine Software zu installieren!)
  • Gegebenenfalls wird ein microSD auf SD-Card Adapter benötigt
  • Das aktuelle Raspbian Image – von https://www.raspberrypi.org/downloads/raspbian/

Was ihr NICHT benötigt!

  • Tastatur + Maus
  • Monitor

Schritt 1: SD-Karte vorbereiten

An dieser Stelle benötigt ihr die Software Etcher und das Raspbian Image von der offiziellen Webseite. Zudem braucht ihr eine microSD Karte mit SD-Karten Adapter oder eine SD-Karte je nach Modell des Raspberry Pi’s. Ein SD-Kartenleser/Schreiber muss im Computer verbaut sein, bei Notebooks sehr häufig der Fall. Steckt die Karte in den dafür vorgesehenen Slot und schaut ob sie vom Betriebssystem erkannt wird.

Startet dann die Software Etcher. Klickt auf “Select image” und wählt im darauffolgenden Dialog die .img-Datei die ihr von raspberrypi.org heruntergeladen habt aus. Im Anschluss daran werdet ihr automatisch nach dem Laufwerk gefragt oder müsst es manuell über “Select drive” aufrufen. Schaut vorher im Windows Explorer nach welcher der korrekte Laufwerksbuchstabe ist, nicht, dass ihr euren angeschlossenen USB-Stick formatiert und mit dem Image überschreibt! Klickt auf “Flash!” und wartet. Beendet dabei nicht die Software, entfernt nicht die SD-Karte und betet, dass kein Stromausfall kommt. All diese Dinge können dazu führen, dass die Karte unbenutzbar wird!

Schritt 2: Headless Setup

Ist dieser Schritt erledigt, dann widmen wir uns einem winzigen Schritt mit großen Auswirkungen. Seit einiger Zeit ist SSH standardmäßig auf dem Pi Image deaktiviert. SSH muss aber aktiviert sein, damit wir mit einem Terminal Tool auf den Pi zugreifen können, ohne das wir Monitor, Tastatur und Maus anschließen. Es gibt aber einen kleinen Trick, wie man SSH wieder aktivieren kann. Navigiert dazu mit dem Windows Explorer auf die SD-Karte, die eigentlich mit dem Namen “boot” versehen sein sollte. Ihr benötigt eine Datei ohne Dateinamen. Dazu klickt ihr (unter Windows 10) zuerst im Explorer auf den Reiter “Ansicht” und aktiviert den Haken bei “Dateinamenerweiterungen“. Im Anschluss daran macht ihr innerhalb des Laufwerks einen Rechtsklick und sagt “Neu” → “Textdokument“. Nennt die Datei “ssh” und entfernt das “.txt” am Ende! Dies sagt dem Pi dann beim Booten, dass es SSH eben doch aktivieren soll. So können wir per Software drauf.

Schritt 3: IP herausfinden / Hostname verwenden

Nun gibt es zwei Möglichkeiten:

  1. Ihr geht auf das Webinterface eures Routers und findet die IP-Adresse vom Raspberry Pi heraus. Bei vielen Routern wird auch gleich der Name mit angezeigt.
  2. Wir verwenden direkt den Hostnamen, der standardmäßig “raspberrypi “lautet.

Schritt 4: Verbindung über Terminal Software

Ich verwende SmarTTY, Putty funktioniert aber genauso, sieht nur anders aus.

  1. Wir klicken auf “New SSH connection…
  2. Tragen im vorausgewählten Feld “Host Name” folgendes ein: “raspberrypi” (ohne Anführungszeichen!)
  3. In das Feld “User Name” tragen wir folgendes ein: “pi” (ohne Anführungszeichen!)
  4. In das Feld “Password” tragen wir folgendes ein: “raspberry” (ihr ahnt es, ohne Anführungszeichen!)
  5. Klickt auf “Connect

Schritt 5: Sicherheit geht vor, Standardpasswort ändern!

Eigentlich gehört es nicht mehr in dieses Tutorial, da es aber sicherheitsrelevant ist erwähne ich es trotzdem. Diese Benutzernamen- und Passwortkombination ist auf jedem Raspberry Pi gültig, wenn sie nicht geändert wird und Raspbian verwendet wird. Wenn ihr euch mit dem Pi verbunden habt könnt ihr über den Befehl “passwd” das Passwort ändern. Das solltet ihr auch dringend tun.

Tipp: Grafische Oberfläche und mehr!

Warum verwende ich SmarTTY? Nicht nur weil es eine mysteriöse Schreibweise hat und Spaß macht oder in .NET geschrieben wurde. Tatsächlich bietet SmarTTY einige nette Funktionen wie zum Beispiel grafische Oberflächen, eine Auflistung aller installierter Pakete, automatische Vervollständigung von Verzeichnissen und Dateien im Stile von IntelliSense, einen integrierten Datei Explorer der mit dem Terminal gekoppelt ist und sich entsprechend beim Wechseln des Verzeichnisses über das Terminal anpasst, klickbare Pfade und vieles mehr! Es ist kostenlos erhältlich und super. Aber auch hierzu gibt es Alternativen.

Über startx oder lxsession könnt ihr, sofern ihr die Desktop-Version von Raspbian OS heruntergeladen habt, euch die Oberfläche anzeigen lassen. Das geht mit putty leider nicht direkt! Auch Programme wie gparted (die nachinstalliert werden müssen) können grafische Oberflächen starten.

Linux (Ubuntu) Probleme bei Installationen – fehlende Abhängigkeiten

Heute ist mir beim Aufsetzen einer neuen Ubuntu-VM passiert, dass sich das Google Chrome .deb-Paket nicht installieren lies. Es öffnete sich zwar das Ubuntu Software-Center, beim Klick auf “Installieren” passierte jedoch nichts. Die Anleitung funktioniert ebenso für jedes andere .deb-Paket, dieses Beispiel bezieht sich auf die Installation von Google Chrome.

Allerdings ist es auch möglich Debian-Pakete manuell über das Terminal zu installieren:

  1. Der Einfachheit halber in das Verzeichnis des .deb-Pakets wechseln, z.B.
  2. Folgenden Befehl müssen wir dann anschließend ausführen:

Dann konnte die Installation aber auf Grund fehlender Abhängigkeiten nicht installiert werden. Dies kann man wie folgt lösen:

Damit ließen sich dann die Abhängigkeiten und das Paket installieren und Google Chrome tauchte im Software-Center auf und konnte gestartet werden.

LEMP-Installationsskript

Hier findet ihr ein kleines Hilfeskript. Dieses muss unbedingt als root ausgeführt werden! Vorausgesetzt wird ein Linux mit installiertem apt-get. Mit diesem Skript wird zuerst das Betriebssystem aktualisiert und im Anschluss werden folgende Dinge installiert:

  • MariaDB Server und Client
  • nginx Webserver
  • PHP 7.0-FPM
  • PHP 7.0 MySQL Binds, welche die MySQL/MariaDB Funktionen zur Verbindung liefern
  • phpMyAdmin
  • openssh-server für den SCP Zugriff im Anschluss

Nach den Paketinstallationen muss man lediglich phpmyadmin konfigurieren. Hier ist es im Grunde nur wichtig, dass man den Benutzer und das Passwort angibt, sodass sich phpmyadmin mit der MySQL bzw. in diesem Fall MariaDB verbinden kann. Wer statt MariaDB lieber MySQL verwenden möchte muss lediglich die Pakete mariadb-server und mariadb-client ändern in mysql-server und mysql-client. Der Rest ist identisch.

Im Anschluss daran werden die php.ini und die www.conf automatisch angepasst und zum Schluss wird nginx für PHP und phpmyadmin konfiguriert. So ist es möglich, dass PHP-Skripte ausgeführt werden können und phpMyAdmin über die URL http://eure-ip-oder-hostname/phpmyadmin erreichbar wird.

Dieses Skript wurde am 10.01.2017 erstellt und am selben Tag mit einem Clean-Install von Ubuntu Server 16.10 getestet.

Installations-Skript