Raspberry Pi Step 6 – Tomcat installieren

Die Idee

Es gibt verschiedene Sachen, die ich auf dem Raspberry machen möchte. Einige Sachen möchte ich mit dem Handy steuern, andere Sachen kann der Raspberry eigenständig tun, aber ich möchte die Ergebnisse auf dem Smartphone sehen.

Zum Beispiel möchte ich Wetterdaten erfassen und diese dann anzeigen.

Wenn man das plattformunabhängig halten möchte, eignet sich hierzu wahrscheinlich am besten eine Weboberfläche, die man dann zunächst mal im Heimnetzwerk anzeigen kann.

Programmiertechnisch kenne ich mich am besten in Java aus, weshalb ich mir vorstelle, eine Java-Webapplikation (Servlet) zu programmieren, die ich dann auf einem Tomcat auf dem Raspberry deploye.

Schritt 1 – Apache Webserver installieren.

Der Apache soll die HTTP-Requests entgegennehmen und dann – je nach Applikation – auf den gewünschten Applicationserver weiterleiten. Wie man den Apache installiert, habe ich bereits in einem Beitrag beschrieben.

Schritt 2 – Tomcat installieren.

Wir checken zunächst die Java-Version mit dem Kommando java -version

pi@raspberrypi:~ $ java -version
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) Client VM (build 25.65-b01, mixed mode)
pi@raspberrypi:~ $

Dann laden wir uns die Installationsdateien für dem Tomcat herunter. Dazu suchen wir uns auf der Apache-Seite die aktuelle Version raus und laden diese mittels wget auf den Pi. In meinem Fall ist das

wget http://www-us.apache.org/dist/tomcat/tomcat-8/v8.5.28/bin/apache-tomcat-8.5.28.tar.gz

Dann wird die tar-Datei entpackt

pi@raspberrypi:~/Tools/apache $ tar xvf apache-tomcat-8.5.28.tar.gz

Ich persönlich mag es lieber, wenn ich den Tomcat dann in einem Applikationsverzeichnis habe. Deshalb verschiebe ich ihn nochmal.

pi@raspberrypi:~/Tools/apache $ cd 
pi@raspberrypi:~ $ mkdir Applications
pi@raspberrypi:~ $ cd Applications/
pi@raspberrypi:~/Applications $ mkdir Tomcat
pi@raspberrypi:~/Applications $ cd Tomcat/
pi@raspberrypi:~/Applications/Tomcat $ mv /home/pi/Tools/apache/apache-tomcat-8.5.28 .

Ausserdem erstelle ich mir einen symbolischen versionsunabhängigen Link, den ich recent nenne. Dieser zeigt immer auf die aktuelle Version. Sollte ich später mal den Tomcat hochleveln wollen, muss ich nicht in allen möglichen Skripten alle Pfade anpassen, sondern ändere einfach den Link auf das Verzeichnis.

pi@raspberrypi:~/Applications/Tomcat $ ln -s apache-tomcat-8.5.28/ recent
pi@raspberrypi:~/Applications/Tomcat $ ls -l 
insgesamt 4
drwxr-xr-x 9 pi pi 4096 Mär 2 22:11 apache-tomcat-8.5.28
lrwxrwxrwx 1 pi pi 21 Mär 2 22:15 recent -> apache-tomcat-8.5.28/
pi@raspberrypi:~/Applications/Tomcat $

Dann müssen wir noch einen User im Tomcat anlegen, mit dem wir die Manager-Gui nutzen können. Dazu editieren wir die Datei conf/tomcat-users.xml und fügen die folgende Zeile hinzu:

<user username="admin" password="password" roles="manager-gui"/>

Der Tomcat ist nun grundsätzlich startbar. Um ihn später aber auch ohne User-Interaktion direkt beim Hochfahren des Servers zu starten, benötigen wir noch ein Startskript, welches „in das System integriert werden muss“

Dazu erstellen wir mit sudo /etc/init.d/tomcat ein Startskript, wie dieses hier

#!/bin/sh
# /etc/init.d/tomcat
# starts the Apache Tomcat service
### BEGIN INIT INFO
# Provides:          tomcat
# Required-Start:
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# X-Interactive:     true
# Short-Description: Start/stop tomcat application server
### END INIT INFO
 
export CATALINA_HOME="/home/pi/Applications/Tomcat/recent"
case "$1" in
start)
  if [ -f $CATALINA_HOME/bin/startup.sh ];
  then
    echo $"Starting Tomcat"
    /bin/su pi $CATALINA_HOME/bin/startup.sh
  fi
  ;;
stop)
  if [ -f $CATALINA_HOME/bin/shutdown.sh ];
  then
    echo $"Stopping Tomcat"
    /bin/su pi $CATALINA_HOME/bin/shutdown.sh
  fi
  ;;
*)
  echo $"Usage: $0 {start|stop}"
  exit 1
  ;;
esac

Ist das Skript gespeichert, werden noch die Ausführungsrechte angepasst und wir versuchen den ersten Start.

pi@raspberrypi:/etc/init.d $ sudo chmod 755 tomcat 
pi@raspberrypi:/etc/init.d $ sudo update-rc.d tomcat defaults
pi@raspberrypi:/etc/init.d $ sudo /etc/init.d/tomcat start
$Starting Tomcat
Using CATALINA_BASE: /home/pi/Applications/Tomcat/recent/
Using CATALINA_HOME: /home/pi/Applications/Tomcat/recent/
Using CATALINA_TMPDIR: /home/pi/Applications/Tomcat/recent//temp
Using JRE_HOME: /usr
Using CLASSPATH: /home/pi/Applications/Tomcat/recent//bin/bootstrap.jar:/home/pi/Applications/Tomcat/recent//bin/tomcat-juli.jar
Tomcat started.
pi@raspberrypi:/etc/init.d $ sudo update-rc.d tomcat defaults

Fertig, der Tomcat ist nun gestartet und nutzbar.

Raspberry Pi Step 5 – Apache Webserver installieren

Die Grundidee

Der Raspberry Pi soll per Handy bedient werden können. Dafür kann man sich entweder eine App programmieren oder das ganze über eine Webseite machen. Im ersten Schritt wird es eine Webapplikation sein, um die Systemunabhängigkeit (Linux, Apple, etc.) zu realisieren

Das Problem

Eigentlich gibt es kein Problem. Bis auf die App. Für Apple brauch man eine Lizenz als App-Entwickler. Und ob es dann noch die Schnittstellen gibt, die man so braucht, ist auch fraglich.

Die Lösung

Daher wird es eine Webapplikation geben, von der aus man man Systemkommandos absetzen kann. Um den ersten Schritt zu tun, brauch man einen Webserver wie den Apache, der quasi im System integriert ist. Man muss ihn nur noch installieren.

sudo apt-get install apache2

Hat das geklappt, kann man auch schon die erste Webseite aufrufen. Beim Apache ist eine HTML-Startseite integriert. Also entweder

http://raspberrypi/

eintippen oder die IP des Raspberry in der Browserzeile eintippen. Wenn die Apache-Seite erscheint, ist der Webserver korrekt installiert. Jetzt kann man dran gehen und eigene Inhalte unter

/var/www/html

einspielen, die dann im Browser angezeigt werden.

Raspberry Pi Step 3 – mp3File abspielen

Die Idee

Der Raspberry soll ja als irgendwo als Mediacenter eingesetzt werden. Dazu brauch man natürlich eine Oberfläche, mit der man auswählen kann, welchen Titel mal gerne hören möchte. Den soll man dann auswählen und abspielen können.

Das Problem

  1. ) Gibt es eigentlich keinen speziellen MP3 Player auf Raspberry (jaaa, gibt es doch)
  2. ) Will ich ja vielleicht keine vorgefertigte Software, sondern lieber was eigenes ausprobieren.
  3. ) Muss man also aus einer Webanwendung irgend ein Systemcommand absetzen, mit dem man dann den Song abspielt.

Die Lösung

Raspberry hat wohl einen MP3-Player an Bord. Aber keinen mit GUI. Mann kann im Terminal einfach eine Datei mit dem omxplayer öffnen und dann wird sie abgespielt.

Wechselt in das Verzeichnis und gebt folgendes Kommando ein.

omxplayer example.mp3

Loift.

Raspberry Pi Step 4 – Raspberry mit NAS verbinden

Die Idee

Auf jeden Fall soll irgendwann ein Raspberry als MediaClient eingerichtet werden. Dafür ist es mal auf jeden Fall notwendig, dass der Pi Zugriff auf die Musikdateien auf dem NAS erhält.

Das Problem

Es ist leider nicht so einfach, wie in Windows oder auf dem Mac. Hier wird beim Start des Rechners sofort das Netzwerk untersucht, ob sich da irgendwas zum Verbinden anbietet. Beim Pi muss man das selbst machen. Aber – kein Problem….

Die Lösung

Ich möchte, dass sofort beim Start versucht wird, auf das NAS zuzugreifen. Ich will ja nicht extra jedesmal einen Connect durchführen. Deshalb müssen die Zugangsdaten irgendwo hinterlegt werden.

Auf Linux-Systemen wird das in der fstab-Datei gemacht. Die wird beim Start ausgelesen und die gewünschten Verbindungen werden aufgebaut.

SambaClient installieren

Ich habe mich entschieden, den Zugriff über Samba einzurichten. Als erstes installieren wir uns die Software, um Freigaben zu installieren und anschließend den Samba-Client

sudo apt-get install cifs-utils
sudo apt-get install smbclient

Verbindung checken

Dann können wir mit einem Kommando schonmal testen, ob die Verbindung klappt. Einmal die Verbindung zur IP anonym

smbclient -N -L //192.168.1.2/ <== DEINE NAS-IP

Und einmal die Verbindung als Raspberry-Nutzer. Hierbei wird ein Passwort abgefragt. Hierbei handelt es sich um das Passwort, das für den Connect auf das NAS erforderlich ist.

smbclient -N -L raspberrypi

Verbindung einrichten

Als erstes müssen wir uns ein Verzeichnis machen, welches nachher den „Mount aufnehmen“ kann. In dieses Verzeichnis wechseln wir, wenn wir auf das NAS wollen. Ich nehme jetzt mal einen Ordner im Home-Verzeichnis.

sudo mkdir $HOME/NAS_Speicher

Und dann editieren wir die fstab-Datei. Die Datei ist eine Textdatei, deren Abstände immer mit vier Leerzeichen oder einem Tab getrennt sein sollen. Sonst kann es zu Problemen kommen. Also – halten wir uns dran. Wir fügen den folgenden Eintrag hinzu

Schematisch

//<IP-NAS-SPeicher>/<Freigabeordner> /<LokalesVerzeichnis> <Filesystem> <Parameter>

Also bei mir

//192.168.178.25/Multimedia    /home/pi/Apfelplatte    cifs    defaults,nofail,username=<UserOnNas>,password=<PwOnNAs>,uid=pi,gid=pi,x-systemd.automount,x-systemd.requires=network-online.target    0    0

Wichtig sind die folgenden Parameter, die man ab Raspberry „Jessie“ (ich glaube, das ist Pi3) benutzen kann.

x-systemd.automount,x-systemd.requires=network-online.target

Das Problem ist oft, dass die Datei /etc/fstab abgearbeitet wird, bevor die Netzwerkkonfiguration initialisiert ist. Das bedeutet, man versucht auf ein Netzwerk zuzugreifen, das noch gar nicht da ist. Mit diesen Parametern wird das System angewiesen, den Mount beim Start des Systems durchzuführen, aber auf das Netzwerk zu warten.

Das ganze Verzögert zwar den Start ein wenig, aber dafür klappts dann auch automatisiert.

Raspberry PI Step 2 – Bildschirmfreigabe per RDP aktivieren

Möchte man den Raspberry Pi ohne Monitor betreiben, muss man ja irgendwie drauf zugreifen, um Software zu installieren oder konfigurieren. Teilweise geht das gut per SSH, manchmal braucht man aber auch eine Benutzeroberfläche. Dann empfiehlt sich VNC oder RDP. Wir benutzen RDP

RDP und VNC kriegen sich auf dem neuen Pi in die Haare. Also muss erstmal VNC deinstalliert werden. Auch das machen wir per SSH über die Konsole

sudo apt-get purge realvnc-vnc-server

Dann installieren wir RDP. Das geht am einfachsten über den Terminal mit dem Kommando

sudo apt-get install xrdp

Damit weist man den Raspberry an, sich die Sourcen aus dem Raspberry-App-Store runterzuladen und zu installieren.

Ist das erledigt, lädt man sich einen beliebigen RDP-Client runter. Unter Windows ist RDP bereits installiert. Auf dem Mac kann man sich im App-Store Microsoft RDP runterladen.

 

Dann einfach die eine neue Verbindung einrichten und die IP eintragen. Mit den entsprechenden Benutzerdaten (pi und raspberry im Standard) kann man dann eine RDP-Verbindung aufbauen.

Raspberry Pi Step 1- Installieren

Heute habe ich meinen ersten Raspberry Pi bekommen.

Im Grunde ist so ein Raspberry ja gar nichts besonderes. Allerdings ist es irgendwie schon cool zu sehen, dass ein vollwertiger Computer mit einem Linux-Betriebssystem in einem so kleinen Gehäuse untergebracht werden kann.

Ausserdem kann er spielerisch mit meiner 20000 mAh Powerbank mehrere Stunden betrieben werden. Cool, also los…

Grundsätzlich funktioniert die Installation so, dass man sich erstmal das Betriebssystem runterlädt, auspackt, auf eine SD-Karte kopiert, diese dann in den Raspberry steckt und bootet. Je nachdem, welches Betriebssystem man nutzen möchte unterscheiden sich hier die Installationen. Ich habe Noobs genutzt, das man hier runterladen kann.

NOOBS

Startet man dann den Raspberry, dauert es ungefährt 10 Minuten und das Betriebssystem ist installiert. Einfach gut. Weiter mit den nächsten Schritten auf weiteren Seiten…

Um den Raspberry nachher zu administrieren, sollte man direkt SSH aktivieren. Das geht einfach über die Systemeinstellungen. Hat man das gemacht, kann man sich über Putty oder Terminal per SSH verbinden und weitere Installationen vornehmen.

Will man über WLAN zugreifen, sollte man vorher noch am Bildschirm die Verbindung einrichten. Sonst eben per Kabel an den Router und über den dann die IP vergeben. Standardmäßig ist DHCP aktiviert.

Weiter demnächst.

 

 

High Tech Röhrenradio

Gestern habe ich bei Ebay-Kleinanzeigen Kontakt zu dem Verkäufer eines alten Telefunken-Radios aufgenommen. Nach der Idee für das Werkstatt-Radio schwebt mir auch vor, noch ein paar mehr technische Spielereien in das Gehäuse eines alten Röhrenradios einzubauen .

Ob das ganze als Partymaschine ausgebaut wird oder eher den Flair eines edlen Wohnzimmer-Mediacenters bekommt – keine Ahnung. Warten wirs mal ab.

Heute hab ich den Kandidat dann abgeholt. TelefunkenConcertino

Die Idee ist schon, es von außen weitestgehend so zu lassen, wie es ist. Es soll also nichts zersägt werden. Da es aber eh kein Massivholz ist, wird es auf jeden Fall geschliffen, gespachtelt und lackiert.

Lautsprechertechnisch wirds auf jeden Fall was neues geben. Evtl. mit Subwoofer. Das Innenleben sollte ein DLNA-Client sein, der Sachen vom NAS Spielen kann. Sollte ein Raspberry zum Einsatz kommen, müsste man noch einen DAC und ein Verstärkermodul einbauen.

Je nachdem, was meine Programmierkenntnisse auf diesem Gebiet so mit sich bringen, könnte man es per App (ggf. Webseite auf dem Raspberry) bedienen. Oder man bringt irgendwo einen Touchscreen unter. Was die Optik wieder zerstört.

Lassen wir uns überraschen…

Heimwerken Teil 2: Sandstrahlen und Kompressorpausen

Was bisher passiert ist

Letzte Woche haben wir ja erfolgreich eine Sandstrahlkabine gebaut und schonmal einen ersten Test gemacht, ob Kompressor, Pistole und Strahlgut gut harmonieren.

Ergebnis: Tun sie leider nicht.

Entweder ist der Ansaugrüssel der Pistole zu klein oder das Strahlgut zu groß. Daher wurde eine neue Strahlpistole angeschafft. Das neue Strahlgut ist auch eingetroffen. Wir können also nochmal testen.

Heimwerken Teil 1: Sandstrahlkabine bauen

Das Grundprojekt

Ich habe mir eine Vespa PK50XL2 gekauft. Die muss dringend restauriert werden. Motormäßig mach ich mir da nicht zu viele Gedanken. Das ist schließlich schon die dritte Restaurierung, die wir machen.

Ich habe absichtlich eine Vespa gekauft, die gesandstrahlt und lackiert werden muss, damit ich das lerne bzw. Erfahrungen sammele… 😉

Teil 1: Sandstrahlkabine bauen

Ich habe in ein paar Wochenendaktionen einen Kellerraum leergeräumt. Diesen Kellerraum möchte ich teilen und zur Hälfte in eine Sandstrahlkabine umbauen.

Die Idee ist einfach:

  • Paletten auf den Boden um eventuellem Wasser im Keller vorzubeugen
  • Gerüst aus Dachlatten aufschrauben
  • Vertikale Dachlatten mit Winkeln aufsetzen
  • oben Querträger einziehen
  • Folie festtackern und mit Panzertape fixieren.

So der Plan für Tag 1. Lasst Euch überraschen, was draus geworden ist.

Neues Jahr – neue Energie! Einfach machen!

2018 wird alles anders! Neben vielen coolen Vespa-Events steht Heimwerken ganz groß im Fokus.

Youtube ist ein Meer voll mit kreativen Köpfen, die nicht nur unglaubliche Ideen haben, total talentiert sind und die auch noch Spaß daran haben, ihre Begeisterung dafür in Videoform zu teilen.

DAS WILL ICH AUCH! und ich werd’s EINFACH MACHEN!

Und wenn ihr möchtet, seid ihr herzlich eingeladen, mich zu begleiten