Seafile installieren

In diesem Tutorial stellen wir die OwnCloud Alternative Seafile vor. Im Vergleich zu OwnCloud umfasst Seafile zwar etwas weniger Funktionen, bringt dafür aber auch sein eigenes Webinterface mit und ist performanter. Das bedeutet, dass kein Webserver vorinstalliert sein muss. In Sachen Sicherheit ist zu sagen, dass der Synchronisationsdienst von Seafile verschlüsselt abläuft (Clientside Encryption AES 256/CBC).

Für dieses Tutorial verwenden wir Raspbian für den Banana Pi. Unter einer vergleichbaren Distribution ist die Installation analog.

Vorbereitung

Zu Beginn bringen wir unser System auf den aktuellsten Stand. Dadurch arbeiten wir immer mit den aktuellsten Paketen

sudo apt-get update

Anschließend installieren wir alle von Seafile benötigten Pakete.

sudo apt-get -y install python2.7 python-setuptools python-simplejson python-imaging sqlite3

Für Seafile legen wir außerdem einen eigenen Benutzer seafile an.

sudo adduser seafile
sudo su seafile

Da Seafile keinen Webserver benötigt, kann ein eventuell installierter und nicht verwendeter Webserver abgeschalten werden. Dies Schritt ist optional und kann mit rcconf realisiert werden.

sudo apt-get install rcconf

Das Tool wird gestartet mit sudo rcconf. In der angezeigten Übersicht navigieren wir zu dem nicht benötigtem Webserver und deaktiveren diesen mit der Leertaste. Dabei verschwindet das Sternchen.

Seafile installieren

Zum installieren von Seafile wechseln wir zunächst in das Verzeichnis von unserem neuen Benutzer seafile.

cd /home/seafile

Nun laden wir die aktuelle Version von Seafile herunter und entpacken das Archiv. Die aktuellste Version kann unter dem Downloadbereich der Seafile Webseite ermittelt werden (zur Zeit Version 3.1.7).

wget https://bitbucket.org/haiwen/seafile/downloads/seafile-server_3.1.7_pi.tar.gz
tar -xvf seafile-server_3.1.7_pi.tar.gz

Da wir das Archiv nach dem Entpacken nicht mehr benötigen, kann dies gelöscht werden.

rm seafile-server_3.1.7_pi.tar.gz

Um Seafile einzurichten wechseln wir in das Verzeichnis, welches durch das Entpacken des Archives generiert wurde.

cd seafile-server-3.1.7

Anschließend starten wir den Installationskript von Seafile mit folgendem Befehl.

./setup-seafile.sh

Während der Installation von Seafile werden folgende Informationen erfragt. Ist alles angegeben werden eure Eingaben nochmal zusammengefasst. Dies kann mit Enter bestätigt werden.

  • Name für euren Seafile Server
  • Die IP-Adresse eures Pi´s, alternativ kann auch die DynDNS-Adresse angegeben werden
  • Ports mit Enter bestätigen für Standardeinstellungen; benutzerdefinierten Ports sind möglich
  • Speicherort: Angabe des vollständigen Pfades des Verzeichnisses, alternativ Pfad von eingebundem USB Stick oder Festplatte

Seahub installieren

Im letzten Teil wir noch das Webinterface Seahub installiert. Dies nimmt das Installationsskript direkt im Anschluss vor. Während der Installation werdet ihr nach einer Mail-Adresse und einem Passwort gefragt. Dies sind die Nutzerdaten für den Administrator bzw. für den Zugang zum Webinterface.

Den Seafile-Server, sowie Seahub starten wir mit folgenden Befehlen.

./seafile.sh start
./seahub.sh start

In einem Webbrowser eurer Wahl könnt ihr nun die IP-Adresse bzw. die DynDNS-Adresse aufrufen und euch mit den gerade vergebenen Daten anmelden. Wichtig ist dabei, dass ihr den Port 8000 mit übergebt.

http://IP_RPI:8000

Abschließend nehmen wir noch eine Einstellung bezüglich des Autostarts von Seafile vor. Momentan startet der Cloud Dienst nicht von alleine nach einem Systemstart.

crontab -e

Dort fügen wir die folgenden beiden Zeilen ein.

@reboot /home/seafile/seafile/seafile-server/seafile.sh start
@reboot /home/seafile/seafile/seafile-server/seahub.sh start 8000

Quellen (Stand:18.11.14): canox.net, forum-raspberrypi.de

Weiterlesen

Die eigene Cloud mit Owncloud

Die Realisierung einer eigenen Cloud und netzwerkbasierter Dateiverwaltung ist einer der beliebtesten Anwendungsgebiete des Banana Pi. In diesem Tutorial erkläre ich wie man die Cloud-Software Owncloud installiert und einrichtet. Der Vorteil von Owncloud ist die einfache Steuerung und Verwaltung über ein Webinterface. Das bedeutet weiterhin, dass die Software lediglich einen Webserver deiner Wahl benötigt um installiert zu werden.

Vorbereitung

Bevor wir Owncloud einrichten können müssen wir zunächst einen Webserver installieren. Für dieses Tutorial entscheide ich mich für den Apache Webserver. Alternativ sind auch Serversysteme nginx und lighttpd empfehlenswert, da diese etwas ressourcenschonender sind.

Webserver mit Apache, PHP und SQLite3

Die Installation von Apache, PHP5 und MySQL habe ich bereits hier anhand des Raspberry Pi beschrieben. Die Installation ist unter dem Banana Pi analog. Anstatt eines Datenbanksystems mit MySQL empfehle ich die Verwendung von SQLite. SQLite benötigt wesentlich weniger Rechenleistung und erfüllt den Zweck für unser Vorhaben voll und ganz. Alle einzelnen Schritte zur Installation von Apache, PHP und SQLite werden im Folgenden erklärt.

sudo apt-get install apache2
sudo apt-get install php-apc php5-sqlite sqlite3

Neben SQLite3 als Datenbank installieren wir php-apc für ein simples Caching.

Webserver konfigurieren

Bevor wir mit der eigentlichen Installation von Owncloud beginnen, müssen wir den Webserver konfigurieren damit Owncloud läuft und auch mit großen Dateien umgehen kann. Dazu öffnen wir die Verzeichniskonfiguration von Apache.

sudo nano /etc/apache2/sites-enabled/000-default

Apache2 Config - Screenshot Raspbian (Banana Pi)
Apache2 Config – Screenshot Raspbian (Banana Pi)

In der Konfiguration ändern wir unter dem Verzeichnis (Directory) /var/www/ den Punkt AllowOverride None zu AllowOverride All. Mit der Tatenkombination Strg+O und Strg+X speichern und schließen wir die Konfigurationsdatei.

Anschließend konfigurieren wir PHP so, dass der Webserver auch größere Dateien mit Owncloud speichern und verarbeiten kann. Hierfür setzen wir die maximale Uploadgröße einer Datei und die maximale Größe einer Postanfrage auf 1024 MB. Wir öffnen die PHP-Konfiguration php.ini .

sudo nano /etc/php5/fpm/php.ini

Innerhalb der Datei ersetzen wir die Zeilen

upload_max_filesize = 2M
post_max_size = 8M

durch die folgenden:

upload_max_filesize = 1024M
post_max_size = 1024M

Wem 1024 MB als maximale Uploadgröße nicht genügen sollte kann natürlich noch höher raufgehen, zum Beispiel 2G bzw. 2048M (2 Gigabyte).

Abschließend löschen wir die von der Apache-Installation generierte index.html , aktivieren Htaccess und starten den Apache neu. Mit letzterem werden alle vorgenommenen Einstellungen aktiv.

sudo rm /var/www/index.html
sudo a2enmod rewrite
sudo a2enmod headers
sudo /etc/init.d/apache2 restart

Owncloud herunterladen und installieren

Bevor wir Owncloud herunterladen wechseln wir in das Verzeichnis des Webservers /var/www, in welchem die Webskripte abgelegt werden. Anschließend laden wir Owncloud herunter und entpacken das Archiv. Die entpackten Dateien liegen anschließend im Ordner bzw. Verzeichnis /var/www/owncloud. Damit Owncloud nachher direkt durch die IP-Adresse oder Domain erreichbar ist (ohne Ordnerangabe), verschieben wir den Inhalt des Owncloud-Verzeichnisses in das Wurzelverzeich der Webskripte /var/www.

cd /var/www
wget http://download.owncloud.org/community/owncloud-5.0.0.tar.bz2
tar xvf owncloud-5.0.0.tar.bz2
mv owncloud/* /var/www
mv owncloud/.htaccess /var/www

Optional kann das heruntegeladene Archiv von Owncloud gelöscht werden. Dieses wird ab jetzt nicht mehr benötigt.

rm -rf owncloud owncloud-5.0.0.tar.bz2

Jetzt vergeben wir noch die entsprechenden Recht: Die Eigentümerschaft von Owncloud übergeben wir an root. Anschließend muss der Server neugestartet werden.

chown -R www-data:www-data /var/www
/etc/init.d/apache2 restart

Owncloud einrichten und konfigurieren

Owncloud ist nun bereit für die erste Verwendung. Dazu rufen wir im Browser die IP-Adresse oder Domain des Banana Pis auf. Bei ersten Aufrufen von Owncloud müssen wir den ersten Benutzer anlegen. Außerdem haben wir die Möglichkeit ein Verzeichnis zu definieren, indem die Clouddaten abgespeichert werden. Da wir SQLite als Datenbank verwenden, benötigen wir keine Verbindungsdaten zur Datenbank.

Die Anleitung funktionier sowohl auf Raspbian als auch auf Bananian Linux.

Screenshot ownCloud
Screenshot ownCloud

Quellen (Stand: 10.11.14): forum-bananapi.de

Weiterlesen

GPIOs steuern mit wiringPi

WiringPi ist ein Programm mit dem man die GPIO Pins des Banana Pi ganz einfach ansteuern kann. Unter den Raspberry Pi Anwendern wird wiringPi vorzusweise verwendet. Das Tool ist auch für den Banana Pi verfügbar.

Die Programmbibliothek kann mit wenig Aufwand in die Programmiersprachen C/C++, Phyton, Java und PHP eingebunden werden. Die durch die Libary bereitgestellten Funktionen ermöglichen unteranderem das Schalten eines High- und Low-Zustandes auf gewünschte GPIO-Pins. Gleichermaßen können die Pins als Eingang genutzt und mit wiringPi ausgewertet werden. In diesem Artikel zeige ich wie man wiringPi installiert und einsetzt.

Zu Beginn öffnen wir das Terminal und laden uns wiringPi von Github herunter.

git clone https://github.com/LeMaker/WiringBPi.git

Wenn der Download abgeschlossen ist sollte im Verzeichnis /home/bananapi ein neuer Ordner erscheinen: wiringBPi. In diesem Ordner ist die Programmbibliothel von wiringPi abgelegt.

Um wiringPi verwenden zu können, müssen wir die Software im nächsten Schritt installieren. Zur Installation bringt die Software einen Skript mit, den wir im folgenden ausführen. Hierfür wechseln wir in das entsprechende Verzeichnis und setzen optional Zugriffsrechte.

cd /home/bananapi/wiringBPi
chmod +x build

Jetzt können wir den Installationsskript ausführen. Dies nimmt einen kurzen Augenblick in Anspruch.

sudo ./build

Screenshot Banana Pi - wiringPi
Screenshot Banana Pi – wiringPi

Nach dieser langen Ausgabe ist wiringPi erfolgreich installiert und kann verwendet werden. WiringPi ist sehr vielseitig und kann daher mit den Programmiersprachen C/C++, Phyton, Java und PHP genutzt werden. Außerdem ist das Schalten der GPIO Pins über die Konsole möglich. In diesem Tutorial beschränke ich mich auf die Ansteuerung des Pin Headers via Konsole und mit C/C++.

Grundlegend ist festzuhalten das die GPIO Pins als Eingang oder Ausgang konfiguriert werden können. Weiterhin gilt ein Pegel von 5 Volt bedeutet High und ein Pegel von 0 Volt bedeutet Low. Dies ist bei der Beschaltung des Banana Pi zu beachten: Zum einen um eine korrekte Funktionalität zu gewährleisten und zum anderen um den Banana Pi nicht zu beschädigen. Neben den Zuständen High und Low unterstützen einige Pins Funktionen wie PWM und UART.

GPIOs über Terminal steuern

Um herauszufinden wie die GPIO Pins momentan konfiguriert und beschalten sind, kann man folgenden Befehl im Terminal absetzen.

gpio readall

gpio readall - Screenshot Raspbian

Im folgenden wollen wir den GPIO Pin 17 ansteuern. Physikalisch ist das Pin 11 und aus Sicht von wiringPi ist es Pinnummer 0. Anhand der angezeigten Tabelle vom Befehl gpio readall kann dies nachvollzogen werden. Weitere Informationen zum Aufbau und Pindefinitionen gibt es hier.

Wenn wir Pin 17 beschalten wollen müssen wir diesem zunächst sagen, ob er als Eingang oder Ausgang fungieren soll. In diesem Tutorial möchte ich GPIO Pin 17 als Ausgang schalten. Dazu verwenden wir im folgenden Befehl den Parameter out. Als Eingang würde man in nehmen.

gpio export 17 out

Anschließend soll an GPIO Pin 17 ein High-Zustand (5 Volt) angelegt werden.

gpio -g write 17 1

Ruft man jetzt die Pinübersicht mit gpio readall erneut auf, wird ersichtlich, dass
der GPIO Pin 17 bzw. physikalisch 11 bzw. wiringPi Pin 0 auf Output und High geschalten ist. Wenn man anschließend vom High zum Low wechseln möchte, ersetzt man die 1 durch eine 0: gpio -g write 17 0

LED ansteuern mit wiringPi

Ansteuerung mit C/C++

Die Beschaltung der GPIO Pins mit Hilfe von wiringPi ist in Verbindung mit einer Programmiersprache wie zum Beispiel C/C++ sehr vielseitig und nützlich. Dazu muss die Programmbibliothek von wiringPi wie beschrieben installiert sein.

Im folgenden erstellen wir eine kleine C-Anwendung mit der wir über Pin 11 (GPIO 17, wiringPi 0) eine LED zum blinken bringen möchten. Dazu erstellen wir über das Terminal die Datei blinken.c .

sudo nano blinken.c

Der Inhalt der C-Anwendung kann wie folgt aussehen:

#include <wiringPi.h>

int main ()
{
// wiringPi initialisieren
if (wiringPiSetup() == -1) {
return 1;
}

// Pin 11 auf Ausgang schalten (GPIO 17, wiringPi 0)
// Achtung! wiringPi Layout nutzen
pinMode (0, OUTPUT);

// Dauerschleife
while(1) {

// Pin 11 High, LED an
digitalWrite (0, HIGH);
delay(500);

// Pin 11 Low, LED aus
digitalWrite(0, LOW);
delay(500);

}

return 0 ;
}

Nachdem wiringPi initialisiert ist geht das C-Programm in eine While-Schleife. Innerhalb der Schleife wird Pin 11 (GPIO 17, wiringPi 0) auf High geschalten. Anschließend wartet das Programm mit Hilfe des delay-Befehls 500 ms und schaltet dann den Pin und damit die LED wieder ab.

Mit den Tastenkombinationen Strg+X, Y und Enter schließen und speichern wir unseren C-Skript ab. Anschließend kompilieren wir den Quellcode.

gcc -o blinken blinken.c -lwiringPi

Jetzt können wir unser Programm ausführen.

sudo ./blinken

Beschaltet man über Pin 11 eine LED, so würde diese jetzt im Takt von 500 ms blinken. Wie man eine LED hardwareseitig installiert erkläre ich im nächsten Schritt.

LED verbinden

LED ansteuern
LED ansteuern
Für dieses Beipiel verwende ich eine Standard LED (2,1 Volt), einen 140 Ohm Vorwiderstand, ein Breakboard und Jumperkabel.

Zunächst verbinden wir den Vorwiderstand mit der LED. Dabei ist auf die richtige Polung der Leuchtdiode zu achten (Anode +, Kathode -). Anschließend muss Pin 11 des Banana Pis (GPIO 17, wiringPi 0) mit dem Vorwiderstand verbunden werden. Den Masse Pin (GND) des Banana Pi wird abschließend mit der Kathode (-) der LED verbunden.

Warum benötigen wir einen Vorwiderstand?

Der Vorwiderstand einer LED dient der Strombegrenzung und Spannungsanpassung. In unserem Falle bekommen wir vom Banana Pi eine 5 Volt Betriebsspannung. Die Standard-LED arbeitet in der Regel mit etwa 2,1 Volt und hat eine Stromaufnahme von ca. 20 mA. Daher liegen zwischen den 5 Volt Betriebsspannung und 2,1 Volt für die LED ganze 2,9 Volt die über den Vorwiderstand abfallen müssen.

Vorwiderstand dimensionieren

Mit Hilfe des Ohmschen Gesetzes kann der Vorwiderstand dimensioniert werden. Wir wissen das über dem Widerstand 2,9 Volt abfallen müssen und das durch diesen 20 mA durchfließen (Reihenschaltung).

R= U/I = 2,9 Volt / 0,02 A = 145 Ohm

Der Vorwiderstand sollte etwa 145 Ohm groß sein. Je nach LED und deren Farbe kann die Arbeitsspannung und Stromaufnahme abweichen. Hierbei sollte das jeweilige Datenblatt beachtet werden.

Led Ansteuerung mit Banana Pi
Led Ansteuerung mit Banana Pi

Quellen (Stand:03.11.14): Wikipedia, wiki.lemaker.org

Weiterlesen