Raspberry Pi Kamera-Modul LED deaktivieren

Wem die sehr hell leuchtende LED bei den Kamera-Modulen für die Raspberry Pi’s stören kann diese ganz einfach abschalten.

Bearbeiten müssen wir die Datei /boot/config.txt und irgendwo, am Besten ganz unten auf die Seite folgende Zeile einfügen:

Bearbeiten können wir die Datei mit einem Editor unserer Wahl, z.B. vi oder nano. Nach dem Speichern der Datei muss ein Reboot des Pi’s erfolgen. Dies ist mit folgendem Befehl möglich der als root oder sudo ausgeführt werden muss:

 

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.

Ubuntu Linux – Background, Foreground, Jobs, Prozesse von der Shell entkoppeln

In Ubuntu Linux, ebenso wie in anderen Distributionen, ist es relativ einfach Prozesse von der Shell abzukoppeln, sodass diese im Hintergrund laufen. Um dies zu tun gibt es diverse Befehle.

Möglichkeit 1

  1. Befehl/Prozess ganz normal aufrufen (z.B. deluge-web zum Starten von der Web UI von Deluge)
  2. Prozess mit Strg/Crtl + Z von der Shell abkoppeln
    Es erscheint eine ähnliche Ausgabe in der Shell:
  3. Nun können wir folgenden Befehl eintippen um uns alle Prozesse anzeigen zu lassen (die Ausgabe sieht aus wie aus Schritt 2):
  4. Die Zahl in den eckigen Klammern wird benötigt, merken!
  5. Mit folgendem Befehl lässt man den Prozess im Hintergrund weiterlaufen:
  6. Mit folgendem Befehl lässt man den Prozess wieder in der aktuellen Shell anzeigen:

     

Möglichkeit 2

Ein Aufruf mit sudo und dem entsprechenden Parameter für den Hintergrund (-b für Background):

Bei dieser zweiten Möglichkeit wir der Prozess direkt im Hintergrund gestartet, man spart sich hier die Schritte des Abkoppeln von der Shell, ebenso wie den Aufruf von bg.

Ubuntu Linux NFS-Share auf Remote-Ziel

Ich erkläre in diesem Artikel nur kurz, wie ihr ein NFS-Share unter Ubuntu Linux mountet. Den Server-Teil werde ich hier nicht erläutern. In meinem Beispiel habe ich mein QNAP verwendet und die NFS-Dateifreigabe aktiviert. Wichtig zu sagen ist, dass beim NFS als Berechtigung die IP-Adresse mit den Berechtigungen Lesen und Lesen/Schreiben hinterlegt wird. Es gibt im Gegensatz zur SMB bzw. auch CIFS keine Authentifizierung über Benutzername und Passwort.

Damit wir NFS verwenden können müssen wir das nfs-common Paket in jedem Fall installieren.

Ich erstelle mir einen Ordner in einem Verzeichnis mnt (für Mount), der Mount-Befehl sieht dann wie folgt aus:

Wichtig ist, dass bevor man den Mount-Befehl abschickt, dass die Berechtigung entsprechend vorher im NFS-Server gesetzt wurde, sonst erhält man eine Access Denied-Meldung. Gegebenenfalls muss man sich als root anmelden oder dem Befehl sudo vorwegschicken.


Bei Neustart des Systems verschwindet der Mount-Punkt wieder. Man sollte hier entweder ein Skript speichern, was diesen Befehl ausführt oder einen Eintrag in der /etc/fstab machen.

Linux Aliase einrichten

Damit ich unter meinem Ubuntu Linux nicht ständig die Datei heraussuchen muss um herauszufinden wie man aliase dauerhaft “speichert”, hab ich mir folgendes winziges Shell-Skript gebastelt:

Das Skript benötigt die entsprechenden Rechte zur Ausführung:

Der Aufruf erfolgt dann wie folgt über die Kommandozeile:

In diesem Beispiel-Aufruf möchte ich, dass “l” mein Alias wird, der folgendes ausführen soll: “ls -ltr -sh”

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

 

MySQL Remote Access einrichten

Damit man außerhalb auf eine MySQL-Datenbank zugreifen kann und das ohne phpMyAdmin kann man Software für Windows, Mac oder Linux verwenden. Jeder Datenbankhersteller bietet sein eigenes Tool an, so ist dies bei MySQL zum Beispiel über die MySQL Workbench möglich. Eine Drittanbietersoftware wäre Navicat in diversen Versionen für unterschiedliche Datenbank oder dem “Premium”, die alle unter einem Dach vereint. Navicat ist allerdings nicht kostenlos erhältlich.

Diese Anleitung bezieht sich auf eine MySQL-Datenbank auf einem Debian Linux.

Schritt 1: Privilege setzen

Die Privilegien setzen. Dazu müssen wir einen SQL-Befehl via Konsole oder phpMyAdmin absetzen. Dieser lautet:

Man sollte dies allerdings nicht auf dem root-User anwenden.

  • database.* bedeutet auf alle Tabellen in der Datenbank database. Ein *.* ist ebenfalls möglich.
  • user ist der Benutzer auf den diese Rechte angewendet werden.
  • % ist der Bereich, die Domain, IP. %.domain.com oder 192.168.0.% sind möglich, % bedeutet, egal woher.
  • newpassword ist das Passwort des Benutzers user.

Schritt 2: IP-Binding anpassen

Eine weitere Schutzmaßnahme kommt out-of-the-box daher. In der Datei /etc/mysql/my.cnf gibt es unter der Sektion [mysqld] den Eintrag:

Nun gibt es zwei Möglichkeiten:

  1. Diese Zeile auskommentieren mit einer # als erstes Zeichen, dass ermöglicht allen IP-Adressen den Zugriff von außerhalb.
  2. Einfach eine weitere IP-Adresse “binden”. Habt ihr keine statische IP in eurem Netzwerk ändert sich diese aber z.B. beim Neustart. Dafür kommt wirklich nur ihr auf die Datenbank.

Schritt 3: Neustart

Ggf. muss der mysql-Dienst neugestartet werden, dies passiert unter Linux mit dem Befehl:

Fertig!

phpMyAdmin Passwort vergessen, was nun?

Heute ist es passiert und so schnell kann es gehen. Nach ewig langer Zeit hab ich ein Image auf die microSD vom Raspberry Pi eingespielt und musste mich in die Datenbank einloggen. Doch auch wenn man über den Benutzer root meistens reinkommen sollte stellt sich die Frage nach dem Passwort. Es gibt aber eine Möglichkeit das Passwort herauszufinden. Dazu folgende Zeile im Terminal tätigen:

Wer noch ein paar andere Infos braucht, für den ist folgender Befehl sicherlich auch hilfreich:

Ich hoffe es hilft euch.