Google Drive als Laufwerk auf dem Banana Pi mounten

Wer seine Daten auf dem Google-Drive Cloud-Speicher lagert, möchte eventuell unkompliziert und transparent auf seine Daten zugreifen ohne vorher eine komplette Synchronisation durchzuführen. Gerade auf dem Banana Pi oder Raspberry Pi kann da schnell der Speicherplatz zur Neige gehen.

In diesem Blog-Eintrag werde ich beschreiben, wie man ein Google-Drive-Speicher im Banana Pi als Laufwerk mit Hilfe des Programms „google-drive-ocamlfuse“ einbindet. Für „Nicht-ARM“-Architekturen gibt es bereits fertige Debian-Pakete, die man einfach über den Paketmanager installieren kann. Für ARM-Prozessoren, wie den Banana Pi, müssen die entsprechenden Pakete zunächst manuell kompiliert und installiert werden.

Kompilieren und Installieren:

Glücklicherweise existiert ein fertiges Bash-Script, das die einzelnen Schritte zusammenfasst und automatisch hintereinander ausführt. Ich empfehle, das Script als „root“ auszuführen und danach die fertigen Pakete in das entsprechende User-Home-Verzeichnis zu kopieren. So erspart man sich, dass das Script aufgrund eventueller Berechtigungsprobleme, abbricht.

Weiterhin werden ungefähr 400 MB Speicherplatz benötigt. Entweder man hat noch genug Platz auf seiner SD-Karte oder man passt im Script den Pfad der Variablen „OPAMDIR“ so an, dass sie auf ein externes Speichermedium zeigt.
Dabei sollte man beachten, dass man die „${HOME}“-Einträge im Script auf den Eltern-Pfad von „OPAMDIR“ setzt. Lautet der Pfad von „OPAMDIR“ beispielsweise „/media/usb/opam“ so sollten alle „${HOME}“-Einträge durch „/media/usb“ ersetzt werden.

Hier das Script:

#!/bin/bash
OPAMDIR=${HOME}/opam
DRIVECFG=~/.gdfuse/default/config

sudo apt-get -y –force-yes install ocaml ocaml-findlib sqlite3 camlidl m4 libcurl4-gnutls-dev libfuse-dev libsqlite3-dev camlp4-extra fuse b$
cd $HOME
git clone https://github.com/OCamlPro/opam
cd $OPAMDIR
./configure && make && sudo make install
cd $HOME
opam init –yes && opam –switch=4.01.0dev+trunk –yes
echo „eval \`opam config env\`“ >> ~/.bashrc
opam install google-drive-ocamlfuse –yes
sudo usermod -a -G fuse $USER
newgrp fuse
sudo chmod a+rw /dev/fuse
sudo mkdir -p /mnt/drive
sudo chown $USER.fuse /mnt/drive
sudo sed -i ’s/\#user_allow/user_allow/g‘ /etc/fuse.conf #allows other users to allow_other \ users

Die obigen Zeilen kopiert man einfach in eine Datei (z.b. „installgoogleocaml“) und macht es mit dem Befehl „chmod +x installgoogleocaml“ ausführbar. Gestartet wird das Script dann mit „./installgoogleocaml„.

Das Script läd eine Reihe von Dateien herunter und kompiliert diese anschließend. Das Ganze kann eine ganze Weile dauern!

Nachdem das Script fertig ist, sollte sich – je nach Pfad – die Datei „google-drive-ocamlfuse“ im Verzeichnis „$OPAMDIR/opam/system/bin“ befinden. Falls man möchte kann man nun den kompletten Ordner „opam“ zu einem anderen Ort, zum Beispiel ins Heimatverzeichnis, verschieben.

Konfigurieren und Einbinden

Als nächstes müssen wir „google-drive-ocamlfuse“ konfigurieren.  Dazu starten wir das Programm mit folgendem Befehl:

 $ opam/system/bin/google-drive-ocamlfuse /mnt/drive

Falls man in einer grafischen Umgebung arbeitet, startet sich nun ein Browser-Fenster worin man den Zugriff von „google-drive-ocamlfuse“ auf sein Google-Drive-Konto erlauben kann. Natürlich sollte dieser Zugriff gestattet werden.
Dadurch werden über das OAuth2-Verfahren die Zugriffsrechte vergeben und das Google-Drive-Konto ist unter dem angegebenen Mount-Verzeichnis „/mnt/drive“ eingebunden.
In der Konfigurations-Datei „~/.gdfuse/default/config“ werden die ID und der „Secret-Cookie“ hinterlegt, sodass man beim erneuten Einbinden nicht nochmal den Zugriff gestatten muss.

Falls man keine grafische Umgebung auf dem Banana Pi zur Bestätigung des Zugriffs zur Verfügung hat, ist das Ganze etwas aufwendiger.
Zunächst ist es notwendig in seinem Google-Konto OAuth2-Zugangsdaten zu erstellen. Man sollte für folgende Schritte die „alte“ Developer-Konsole von Google benutzen. Dafür klickt man beim Aufruf der URL im ersten Punkt einfach auf „Abbrechen“. Die Schritte können auf einen beliebigen Client mit grafischer Oberfläche ausgeführt werden:

  • https://code.google.com/apis/console/ aufrufen und ein neues API-Project erstellen.
  • Links auf „Services“ klicken
  • Den Punkt „Drive API“ auf „On“ stellen
  • Links auf „API Access“ klicken
  • „Create another Client-ID …“ im Hauptbereich anklicken
  • „Installed Application“ auswählen und den Typ „Other“ anklicken

Nun werden die Zeilen „Client ID“ und „Client secret“ angezeigt. Das sind die Zeilen, die wir für den Aufruf von „google-drive-ocamlfuse“ benötigen:

$ opam/system/bin/google-drive-ocamlfuse -headless -id CLIENTID -secret CLIENTSECRET

Als Ausgabe bekommt man nun eine URL, die man in einen Browser einfügen und aufrufen muss. Dies kann auf einem x-beliebigen Client geschehen. Einzige Voraussetzung ist, dass man in sein Google-Account eingeloggt ist.
Das Browserfenster sollte nun eine ID anzeigen, die man wiederum in das Eingabefeld des wartenden Programms „google-drive-ocamlfuse“ (Please enter the verification code:) kopieren sollte.

Nach diesen Schritten kann man nun das Google-Drive-Konto mit dem folgenden Befehl einbinden:

$ opam/system/bin/google-drive-ocamlfuse /mnt/drive

Das war alles :-).

VNC Server auf Banana Pi über Kommandozeile installieren und nutzen

In diesem Blog-Eintrag zeige ich, wie man eine Remote-Desktop-Verbindung mit grafischer Oberfläche zum Banana Pi aufbaut.

Als Voraussetzung für den Aufbau einer Remote-Verbindung mit Anzeige der grafischen Oberfläche ist es natürlich notwendig, dass auch ein Banana-Pi Image mit einer grafischen Oberfläche genutzt wird. Beispielsweise bietet sich hier die auf Debian basierende Linux-Distribution „Bananian“ an (Download).

Zunächst ist es notwendig einen VNC-Server auf dem Banana-Pi zu installieren. Da wir noch keine Remote-Verbindung aufbauen können, müssen wir zunächst eine „herkömmliche“ SSH-Verbindung aufbauen. Natürlich ist es auch möglich Tastatur, Maus und Monitor am Banana Pi anzuschließen.  Diese Anleitung zur Einrichtung des VNC-Servers nutzt ausschließlich Kommandozeilen Parameter. Es ist nicht notwendig über SSH eine grafische X11-Session weiterzuleiten.

Als Windows-Client verwende ich für den Aufbau einer SSH-Verbindung das Programm „Putty“ (Download). Für den späteren Aufbau einer VNC-Verbindung nutze ich den VNC-Client „VNC Viewer“ von „RealVNC“ (Download).

Anleitung:

  • Aufbau einer SSH-Verbindung über Putty zu Banana Pi
  • Installation von VNC-Server mit dem Befehl „apt-get install vino“

Als nächstes ist es notwendig die Konfigurations-Einstellungen von dem Tool „vino-preferences“ über die Kommandozeile zu setzen. Es gibt keine Konfigurations-Datei, die direkt über ein Text-Editor bearbeitet werden kann. Vielmehr ist es notwendig die verwendete „GConfig“-Datenbank anzupassen. Diese befinden sich in der Datei „$HOME/.config/dconf/user„.
Um die Remotedesktop-Freigabe zu aktivieren sind folgende Befehle notwendig. Wichtig ist, dass die Befehle nicht als „root“ ausgeführt werden, da sonst die falsche „GConfig“-Datenbank bearbeitet wird.

~$ dbus-launch gsettings set org.gnome.Vino enabled true
~$ gsettings org.gnome.Vino use-upnp true
~$ gsettings org.gnome.Vino view-only false
~$ gsettings org.gnome.Vino require-encryption false

Nun sollten die notwendigen Konfigurations-Einstellungen gesetzt sein und es ist abschließend nur noch notwendig den Banana Pi mit dem Befehl „reboot“ als Root neuzustarten.

Herstellen einer Verbindung:

Nachdem die serverseitigen Einstellungen abgeschlossen sind, können wir mit einem VNC-Client eine Verbindung aufbauen. Dafür verwende ich den VNC-Client „VNC Viewer“ von „RealVNC“. Der Client kann hier ohne Anmeldung direkt heruntergeladen werden.

Nach der Installation kann der Client über „vncviewer.exe“ gestartet werden:

  • Als VNC-Server wird die IP und der VNC-Port des Banana Pis eingetragen (192.168.1.7:5900). Wir verwenden den Standard-Port „5900“.
  • Unter dem Punkt „Encryption“ verwenden wir „Prefer Off“.

Der Client ist nicht in der Lage eine verschlüsselte Verbindung zum „Vino“ VNC-Server aufzubauen. Daher ist es empfehlenswert diese Variante nur im heimischen Netzwerk zu verwenden wo eine Verschlüsslung nicht zwingend erforderlich ist.

Im Client-Menü „Options…“ können abschließend noch weitere Einstellungen wie „Full Screen“ und „Scale to Window-Size“ gesetzt werden.

 

 

 

Miracast mit Digit ISIO S2 von TechniSat

Der neue SAT-Receiver Digti ISIO S2 von TechniSat ermöglicht das drahtlose Streaming des Handy-Displays mithilfe der sogenannten Miracast-Technologie.

Anders als bei Chromecast wird bei Mircacast das Display des Handys direkt 1:1 übertragen. Sogar der Ton wird mit gestreamt. So ist es beispielsweise auf einfache Art und Weise möglich eine Dia-Show oder ein Kamera-Video auf den TV anzuzeigen, ohne sich mit UPnP oder anderen komplizierten Technologien zu beschäftigen. Miracast ist auf dem Digit ISIO S2 mit einem Klick aktivierbar. Das Koppeln mit dem Handy ist ebenfalls kinderleicht.

Der Digit ISIO S2 hat nicht wie der TechniCorder ISIO STC einen integrierten WLAN-Chip an Board und deshalb ist es notwendig einen kompatiblen WLAN-Stick zu verwenden. Dafür bietet sich der WLAN-Stick Teltronic USB WLAN Adapater an. Außerdem ist es notwendig, dass die aktuelle Software auf dem Receiver installiert wird. Die aktuelle Software 2.64.0.1-2887 kann hier heruntergeladen werden.

Folgende Schritte sind notwendig:

 

  • WLAN Stick an einen USB Port des Digit ISIO S2 stecken
  • Im Receiver-Menü unter „Menü->Einstellungen->Netzwerkeinstellungen“ die Option „WLAN direkt – TechniCast“ auf „an“ stellen.
  • Danach „Weiter“ auswählen und sicherstellen, dass die Sichtbarkeit auf „Immer“ eingestellt ist
  • Danach mit einem Miracast-fähigen Handy-Typ (zum Beispiel Nexus 4 mit Android 5 oder Android 4.4.4) die Option „Bildschirmübertragung“ aktivieren. Die Option findet man unter „Einstellungen->Display->Bildschirmübertragung“
  • In dem Optionsmenü sollte der Digit ISIO S2 auftauchen. Den Eintrag einfach antippen und auf dem Digit ISIO S2 sollte eine Abfragebox erscheinen, ob das es gestattet werden soll, dass das Handy eine Verbindung mit dem Receiver aufbauen darf. Nachdem man diese Nachfrage mit „OK“ bestätigt hat, sollte das Display des Handys direkt über den Receiver auf den angeschlossenen TV angezeigt werden.
  • Wichtig ist, dass man sich während dem Verbindungsversuch im „normalen“ Zappingmodus bzw in keinem Receiver-Menü befindet. Ansonsten wird keine Abfragebox angezeigt.