seeseekey.net - Invictus Deus Ex Machina

Das Blue Yeti ist ein beliebtes USB-Mikrofon, welches fürs das entsprechende Geld ordentliche Qualität liefert. Das Mikrofon kann problemlos an beliebige Rechner mit Linux, macOS oder Windows angeschlossen werden. Problematischer wird dies, wenn man versucht das Mikrofon an ein iPhone anzuschließen. Mit dem Lightning auf USB Kamera-Adapter ist dies prinzipiell kein Problem. Allerdings versorgt sich das Blue Yeti komplett über den USB-Anschluss mit dem entsprechenden Strom. Das iPhone kann allerdings nicht genug Strom bereitstellen und teilt dies dem Nutzer in einer Fehlermeldung mit.

Das Blue Yeti benötigt zuviel Strom

Die Lösung für Problem ist relativ einfach. Man benötigt einen Powered-USB-Hub.

Das Blue Yeti muss über einen Powered-USB-Hub mit dem iPhone verbunden werden

Schließt man das Blue Yeti über den Powered-USB-Hub an, sorgt dieser für die Stromversorgung des Mikrofons. Das iPhone muss sich daraufhin nur noch um die Datenverbindung kümmern. Damit kann das iPhone in Verbindung mit dem Blue Yeti für mobile Aufnahmen genutzt werden.

JOSM ist ein freier Editor für OpenStreetMap. Mit Hilfe des Editors können OpenStreetMap-Daten problemlos editiert werden. Als Referenz lassen sich dabei unter anderem GPS-Tracks in Form von GPX-Dateien hinterlegen. Standardmäßig kann man diese allerdings nicht bearbeiten.

editgpx in der Plugin-Verwaltung von JOSM

Hierzu muss über die Einstellungen erst das Plugin editgpx installiert werden. Nachdem dies geschehen ist, kann ein GPX-Track geladen werden. Damit dieser nun bearbeitet werden kann, muss im Ebenen-Fenster das Kontextmenü für die GPX-Ebene aufgerufen werden. Dort wählt man den Punkt Zur Daten-Ebene konvertieren. Anschließend können die GPX-Daten bearbeitet werden.

Plex ist ein mächtiger Medienserver, welcher ohne größere Probleme auch auf dem Raspberry Pi betrieben werden kann. Vor allem die Version 3 des Raspberry Pi macht hier keinerlei Probleme. So gibt es unter anderem Distribution für die Installation eines Plex Clients wie z.B. RasPlex. In diesem Artikel soll es um die Installation des Plex Media Server auf dem Raspberry Pi gehen. Dafür benötigt man die Version für ARMv7 and ARM64, welche von einigen Studenten der Universität Leipzig bereitgestellt wird. Nachdem man sich im Terminal auf dem Raspberry Pi per SSH eingeloggt hat, müssen die neuen Paketquellen aktiviert werden:

wget -O - https://dev2day.de/pms/dev2day-pms.gpg.key  | sudo apt-key add -
echo "deb https://dev2day.de/pms/ jessie main" | sudo tee /etc/apt/sources.list.d/pms.list
apt-get update

Anschließend kann das Paket installiert werden:

apt-get install plexmediaserver

Wenn man nach der Installation versucht das Plex Media Server-Interface im Browser aufzurufen wird unter Umständen feststellen das dieses nicht erreichbar ist. Hier handelt es sich wohl um einen Bug. Der Workarround für diesen Bug ist ein Neustart des Raspberry Pi.

Die Plex-Einrichtung kann beginnen

Anschließend kann der Plex Media Server über die URL:

http://raspberrypi.local:32400/web/index.html

aufgerufen werden.

Auf einem meiner Raspberry Pi-Rechner läuft eine in Mono geschriebene Server-Applikation. Damit die Server-Applikation funktionierte benötigte sie natürlich die Mono Runtime. Diese kann unter Raspbian einfach mittels des Kommandos:

apt-get install mono-runtime

installiert werden. Als ich die Serverapplikation nach der Installation von Mono ausführen wollte erhielt ich allerdings folgende Fehlermeldung:

Missing method .ctor in assembly Melinda.dll, type System.Runtime.CompilerServices.ExtensionAttribute
Can't find custom attr constructor image: Melinda.dll mtoken ...

Dieses Problem ließ sich durch die Installation der Bibliothek libmono-system-core4.0-cil beheben:

apt-get install libmono-system-core4.0-cil

Im Anschluss erhielt ich bei einem erneuten Startversuch eine weitere Fehlermeldung:

Grapevine.Exceptions.Server.UnableToStartHostException occurred
An error occured when trying to start the Grapevine.Server.RestServer

In diesem Fall kam die Fehlermeldung vom REST-API Framework Grapevine. Allerdings war der Fehler nicht wirklich in der Bibliothek zu finden. Stück für Stück kamen weitere Fehlermeldungen wie diese:

System.Reflection.ReflectionTypeLoadException: The classes in the module cannot be loaded.

zustande. Nach einiger Recherche war klar: auch in diesem Fall fehlten weitere Abhängigkeiten aus dem Mono-Framework. In diesem Fall half die Holzhammermethode; die Installation des kompletten Mono-Frameworks. Dazu wurde das Paket mono-complete mittels:

apt-get install mono-complete

installiert. Dieses nimmt ein paar mehr Megabyte als das Runtime-Paket in Anspruch, allerdings sind damit alle möglichen Abhängigkeiten installiert. Somit kann man sich auf die eigentliche Entwicklung und Ausführung der eigenen Applikationen konzentrieren, anstatt einer kuriosen Fehlermeldung nach der anderen hinter her zu jagen.

Seit November 2016 wird die Standarddistribution für den Raspberry Pi namens Raspbian, eine auf Debian basierende Distribution, mit deaktiviertem SSH-Server ausgeliefert. Was aus Sicherheitsgründen lobenswert ist hat natürlich für die schnelle Inbetriebnahme eines Raspberry Pi einige Nachteile.

Ein Raspberry Pi 3

Allerdings existieren zwei relativ einfache Wege den SSH-Dienst wieder zu aktivieren. Die erste Möglichkeit ist, nachdem das Image auf die für den Raspberry Pi verwendete SD- bzw. microSD-Karte gebracht wurde, auf der boot-Partion der Karte eine Datei mit dem Namen ssh anzulegen. Ist diese Datei vorhanden, so wird der SSH-Serverdienst beim Start des Raspberry Pi aktiviert.

Die entsprechende Option in raspi-config

Läuft der Raspberry Pi bereits und man hat Zugriff auf diesen kann der SSH-Dienst mittels des Konfigurationstools raspi-config aktiviert werden. Nachdem dieses gestartet wurde, wird dort der Punkt Interfacing Options ausgewählt. Dort findet sich der Unterpunkt P2 SSH. Wählt man diesen Unterpunkt an, wird nach der Bestätigung der Sicherheitsabfrage der SSH-Dienst aktiviert.

Nach der Sicherheitsabfrage wird der SSH-Dienst aktiviert

Nun kann sich (wenn das Raspbian noch in der Standardkonfiguration läuft) mittels:

ssh pi@raspberry.local

und dem Passwort raspberry eingeloggt werden. Da man dieses Passwort nach der Ersteinrichtung ändern sollte, erhält man beim Login über ssh folgenden Hinweis:

SSH is enabled and the default password for the 'pi' user has not been changed.
This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.

Dieses Hinweis sollte befolgt werden und das Passwort mit dem Kommando:

passwd

geändert werden. Anschließend kann der Raspberry Pi ohne Probleme mit dem SSH-Dienst genutzt werden. In der offiziellen Raspberry Pi Dokumentation wird weiterführend auf das Thema eingegangen. Dort wird neben der eigentlichen Einrichtung des SSH-Dienstes auch die Nutzung verschiedener Clients in den unterschiedlichen Betriebssystemen besprochen.

Möchte man eine Dateien in der freien Dateisynchronisationslösung Nextcloud löschen so ist dies einfach über den Dateimanager möglich. Anschließend werden die Änderungen mit dem Nextcloud-Server synchronisiert. Etwas komplizierter wird das ganze wenn man die Dateien direkt auf dem Server im data-Verzeichnis löschen möchte. Wurden hier Dateien gelöscht, müssen auf der Kommandozeile anschließend folgende Befehle innerhalb der Nextcloud-Installation ausgeführt werden:

occ files:cleanup
occ files:scan --all

Damit wird der Dateicache gelöscht und anschließend ein neuer Scan durchgeführt. Dieser sorgt dafür das die veränderte Situation bezüglich der Dateien erkannt wird.

Möchte man unter Linux auf dem Terminal einen Ordner mittels tar und gzip komprimieren, so ist dies mit zwei Befehlen erledigt:

tar cvwf data.tar data

Damit wird der Ordner data in eine Tar-Datei archiviert. Bei den Buchstaben nach dem Befehl handelt es sich um die gewünschten Optionen (create, verbose, interactive, file). Eine Tar-Datei ist nicht komprimiert, da das Tar-Format die Daten der Dateien einfach hintereinander in der Tar-Datei anordnet. Zur Kompression der Tar-Datei wird gzip genutzt:

gzip -9 data.tar

Damit wird die Datei mittels gzip gepackt und trägt anschließend den Namen data.tar.gz. Das -9 teilt gzip mit, das die höchste Kompressionsstufe genutzt werden soll.

Wenn man einen Server betreibt oder bei IT-Problemen zur Stelle ist wird man früher oder später mit dem Domain Name System, kurz DNS zu tun haben. Das DNS löst dabei Namen wie z.B. die Domain seeseekey.net zur passenden IP-Adresse (im aktuellen Fall: 138.201.85.250) auf. Unter Linux und Mac OS X gibt es für die Abfrage von DNS-Servern das Tool dig. Der domain information groper kann dabei im einfachsten Fall so genutzt werden:

dig seeseekey.net

Damit werden die DNS-Informationen der Domain ermittelt und ausgegeben. Die Anfrage richtet sich dabei an den lokalen DNS-Server. Möchte man die Informationen von einem anderen Server abrufen, so ist dies mit dig ebenfalls möglich:

dig @213.133.98.98 seeseekey.net

Die IP-Adresse 213.133.98.98 ist die Adresse des DNS Servers, welcher für die Abfrage genutzt wird. Die Antwort sieht für den Fall von seeseekey.net so aus:

; <<>> DiG 9.10.3-P4-Ubuntu <<>> seeseekey.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15428
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;seeseekey.net.                 IN      A

;; ANSWER SECTION:
seeseekey.net.          59795   IN      A       138.201.85.250

;; AUTHORITY SECTION:
seeseekey.net.          59795   IN      NS      robotns3.second-ns.com.
seeseekey.net.          59795   IN      NS      ns1.first-ns.de.
seeseekey.net.          59795   IN      NS      robotns2.second-ns.de.

;; Query time: 3 msec
;; SERVER: 213.133.98.98#53(213.133.98.98)
;; WHEN: Tue Aug 30 09:12:35 CEST 2016
;; MSG SIZE  rcvd: 156

Möchte man ein Samsung S5 mini rooten, so kann man dies einfach mit dem Tool CF-Auto-Root bewerkstelligen. Dazu wird auf der Webseite das entsprechende AP/PDA heruntergeladen. Unter Windows sollten zusätzlich noch die Samsung Mobile Drivers for Mobile Phones heruntergeladen und installiert werden. Ist dies geschehen kann Odin gestartet werden.

Odin

Odin

Unter AP (früher PDA) wird nun die entsprechende Datei für das rooten eingestellt. Nun muss das Gerät abgeschaltet werden und in den Odin-Download-Modus versetzt und mit dem Rechner verbunden werden. Dazu schaltet man das Gerät mit der Kombination Volume Down + Home + Power an. Anschließend muss die eingeblendete Warnung mit Volume Up bestätigt werden. Wenn das Gerät von Odin erkannt wurde, kann der Rooting-Prozess mittels des Start-Buttons gestartet werden.

Wenn man Let’s Encrypt Zertifikate erzeugt, so landen diese im Ordner /etc/letsencrypt/. Die Rechte sind dabei so gewählt das nicht privilegierte Prozesse auf diese Zertifikate nicht zugreifen können. Läuft nun z.B. ein Server mit solchen Rechten, so kann er das Zertifikat nicht ohne weiteres nutzen. Um diesem Umstand zu beseitigen sollte eine neue Nutzergruppe angelegt werden:

groupadd tls-certificates

Dieser Gruppe wird nun der Nutzer hinzugefügt, welcher den Serverdienst betreibt:

usermod -a -G tls-certificates git

Damit wird der Nutzer git der Gruppe tls-certificates hinzugefügt. Nun müssen nach der Zertifikatsgenerierung die Berechtigungen angepasst werden:

#!/bin/sh
service gogs stop
letsencrypt renew --agree-tos
chgrp -R tls-certificates /etc/letsencrypt
chmod -R g=rX /etc/letsencrypt
service gogs start

In diesem Skript wird im ersten Schritt der Service gestoppt. Anschließend werden neue Zertifikate erzeugt und die Berechtigungen angepasst. Damit kann die Gruppe tls-certificates auf die Zertifikate zugreifen. Danach wird der Service wieder gestartet, was nun dank Zugriff auf die Zertifikate ohne Probleme funktioniert.