Wie installiert man ein Java OpenJDK 17 auf einen Raspberry Pi Zero W?
Habe die Headlees 32-Bit Version installiert: … „Open JDK 17 auf einem Raspberry Pi Zero W installieren auf Bullseye Debian“ weiterlesen
Wenzlaff.de – Rund um die Programmierung
mit Java, Raspberry Pi, SDR, Linux, Arduino, Sicherheit, Blender, Krypto und Blockchain
Wie installiert man ein Java OpenJDK 17 auf einen Raspberry Pi Zero W?
Habe die Headlees 32-Bit Version installiert: … „Open JDK 17 auf einem Raspberry Pi Zero W installieren auf Bullseye Debian“ weiterlesen
Will man *.deb Archive bzw. Programme auf dem Raspberry Pi installieren gibt es mind. zwei Möglichkeiten:
1. Installation ohne Abhängigkeiten
dpkg löst die Abhängigkeiten der zu installierenden Pakete nicht automatisch auf. Installiert man daher ein Paket, das von anderen abhängt, so kommt es zu Fehlermeldungen. Hier ein Beispiel mit dem twkaffee-0.0.1.deb, das für Testzwecke hier geladen werden kann.
1 |
sudo dpkg -i twkaffee-0.0.1.deb |
Das geht dann auch schneller als mit Abhängigkeiten „Debian Package (*.deb) auf dem Raspberry Pi mit oder ohne Abhängigkeiten (zależności) installieren“ weiterlesen
Wie hier schon öfter mal beschrieben, nun eine aktuelle Version unter Jessie.
Debian Raspbian Jessie Lite laden und auspacken
„Wie läuft die Installation von OpenHAB auf einem Raspberry Pi unter Jessie?“ weiterlesen
Den K8055 gibt es schon lange. Mit diesen technischen Daten:
Er kann auch über USB an den Raspberry Pi angeschlossen werden. Nötige Treiber gibt es auch unter GPL und die sind in ein paar Minuten installiert. Den nötige Linux (Debian, Kali) Treiber gibt es hier.
Hier eine Anleitung für den Raspberry Pi (Kali, Debian) wie der Treiber installiert wird: „Raspberry Pi: Wie kann der Raspberry Pi mit Kali bzw. Debian Linux den K8055 von Velleman über Konsole und Python ansteuern?“ weiterlesen
Am 9.11.2014 wurde nach einem Jahre, eine neue Version von Fhem veröffentlicht. Die Änderungsliste ist umfangreich.
FHEM wird kontinuierlich weiterentwickelt, und die neue Version ist nur als Startpunkt für den update Prozess gedacht. Wer also FHEM laufen hat, braucht nur das update und restart Kommando ausfuehren, um den aktuellen Stand herunterzuladen.
Wer Fhem noch nicht installiert hat, kann es wie hier beschrieben tun.
Der ShellShock zieht Kreise, nun gibt es auch ein update für Macs, wie bei Heise beschrieben.
Das Update muss aber manuell von Apple geladen und installiert werden.
Dann doppelklick und folgende Dialoge bestätigen.
Nach der installation im Terminal checken ob der update geklappt hat:
1 |
bash --version |
Ausgabe:
Für den Raspberry Pi gibt es hier im Blog ein paar Links.
Wer die neue Node.js v0.10.29 braucht, muss sie selbst compilieren, oder etwas warten bis die binaries hier auch vorhanden sind.
Dazu erst mal das System aktualisieren.
sudo apt-get update && sudo apt-get upgrade
Dann noch die neueste Firmware installieren mit:
Ein reboot ist noch nötig:
sudo reboot
Jetzt kann es losgehen mit der Installation der nötigen Pakete (ca. 84 MB):
sudo apt-get install git-core build-essential python libssl-dev nano screen
Nun das Node.js Repo nach /opt clonen und die aktuellste Version auschecken:
cd /opt
sudo git clone https://github.com/joyent/node.git
cd node
Ergebnis:
Nun die gewünschte Version auschecken mit:
sudo git checkout v0.10.29
Ergebnis:
Nun starten wir das Tool screen mit:
screen
damit beim beenden der SSH Session, der Prozess weiter läuft.
Und nun compilieren wir wie in https://github.com/joyent/node beschrieben mit:
sudo ./configure
sudo make
sudo make install
Das dauert dann so ca. 2-4 Stunden.
Wir können das Terminal Fenster schließen und mit
screen -r
wieder jederzeit die Session aufnehmen.
Nun noch den Pfad in der ~/.profile Datei ergänzen mit:
nano ~/.profile
export PATH=$PATH:/opt/node
Checken ob node installiert wurde mit
node --version
Ergebnis:
Oder das Testportfolio mit 601 Test ausführen (Laufzeit bei mir 22 Minuten) mit:
sudo make test
Ein Fehler, das ist nicht so schlimmm 😉 Rest läuft ja.
Dann evl. noch die Dokumentation erstellen, mit
sudo make doc
nach ein paar Minuten kann z.B. mit
man doc/node.1
Oder ein kleines Hallo Welt Beispiel. Die node Konsole aufrufen mit node
und console.log("Hallo Welt")
eingeben:
Nun viel Spaß mit Node.js.
Wer den Taskrunner Grunt installieren will, um vieles zu automatisieren, muss nur node.js und npm installieren. Also hier eine Anleitung in 3 Schritten:
Wer eine Serverseitige Plattform zum Betrieb von Netzwerkanwendungen wie Webserver benötigt, ist bei Node.js richtig. Mit Node.js kann man mit ein paar Zeilen JavaScript einen Webserver schreiben.
Es gibt mehrere Methoden http://nodejs.org/ zu installieren. Über download oder auch über Port.
Die Installation über Port, ist in ein paar Minuten erledigt, einfach
sudo port install nodejs
auf der Konsole eingeben.
Dann …… nach ein paar Sekunden.
Checken ob node läuft, mit Eingabe eines kleinen JavaScript Testprogramms mit node
auf der Konsole:
Hier ein Überblick zu Node.js in einer Mindmap:
Dann installieren wir noch den Paketmanager npm mit
sudo port install npm
damit wir Zugriff auf derzeit 78 819 Pakete haben.
Checken ob alles richtig installiert wurde geht mit:
npm -version
bei mir wird nun die Version 1.4.14 ausgegeben.
Oder mit npm search grunt-cli
nach grunt-cli suchen. Der erste Aufruf dauert etwas, da noch ein Index erstellt wird. Dann wird aber ungefähr so was ausgegeben:
Jetzt noch Grunt installieren.
Das können wir mit dem npm wie folgt ausführen:
sudo npm install -g grunt-cli
sudo npm install -g grunt-init
sudo npm install grunt --save-dev
sudo npm install easyimage
sudo npm upgrade
Ergebnis:
Und wieder checken ob grunt läuft mit:
grunt -version
Ausgabe:
grunt-cli v0.1.13
Mit sudo apt-get install fswebcam
wird wie man mit fswebcam --version
feststellen kann die Version von 2011 von fswebcam installiert:
fswebcam 20110717
Da meine alte Logitech Cam nicht läuft, habe ich erst einmal auf die neueste Version upgedated. Also die Quellen holen und neu compilieren mit:
1 2 3 |
sudo git clone http://github.com/fsphil/fswebcam cd fswebcam sudo ./configure --prefix=/usr |
Es wird folgender Error ausgegeben:
configure: error: GD graphics library not found
Also noch die libgd neu installieren mit:
sudo apt-get install libgd2-xpm-dev
Dann nochmal
1 |
sudo ./configure --prefix=/usr |
ausführen.
Ok, Ausgabe nun:...
hecking for getpagesize... yes
checking for working mmap... yes
checking for gdImageCreateTrueColor in -lgd... yes
checking for gdImageStringFT in -lgd... yes
checking for gdImageJpeg in -lgd... yes
checking for gdImagePngEx in -lgd... yes
Buffer type ........... 16 bit
PNG support ........... yes
JPEG support .......... yes
Freetype 2.x support .. yes
V4L1 support .......... yes
V4L2 support .......... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
Dann ein make
zum compilieren und make install
.
Dann checken ob die neue Version installiert wurde, mit
fswebcam --version
Ausgabe:
fswebcam 20140113
Nun noch mit rm -rf fswebcam/
das Verzeichnis löschen.
Ok, die Cam wird erkannt, lsusb
ergibt:
Bus 001 Device 004: ID 046d:0840 Logitech, Inc. QuickCam Express
Aber es kommt mit fswebcam test.jpg
zu folgenden Fehler und es wird kein Foto erstellt:
--- Opening /dev/video0...
Trying source module v4l2...
/dev/video0 opened.
No input was specified, using the first.
Adjusting resolution from 384x288 to 360x296.
Error starting stream.
VIDIOC_STREAMON: Broken pipe
Unable to use mmap. Using read instead.
--- Capturing frame...
Timed out waiting for frame!
Speicherzugriffsfehler
Da muss ich dann mal ander mal schauen, was das nun wieder ist.
Oder habt IHR eine Idee?
Fix, siehe diesen neuen Blogeintrag. Das müsste auch hier laufen, oder?
Zuerst das System des Raspberry Pi updaten und neu starten mit:
1 2 3 4 5 6 |
sudo apt-get update sudo apt-get upgrade sudo apt-get clean sudo rpi-update sudo ldconfig sudo reboot |
Schauen, welche Version jetzt installiert ist mit java -version
:
1 2 3 |
java version "1.6.0_27" OpenJDK Runtime Environment (IcedTea6 1.12.6) (6b27-1.12.6-1~deb7u1+rpi1) OpenJDK Zero VM (build 20.0-b12, mixed mode) |
Entweder über den den Packetmanager:
1 |
sudo apt-get update && sudo apt-get install oracle-java8-jdk |
oder per Hand, dann so:
Dann das JDK 1.8 von der Oracle Seite downloaden. Die Seite wurde nach hier verschoben. Es wird die Linux ARM v6/v7 Hard Float ABI Version mit 83 MB benötigt.
In das Download Verzeichnis wechseln und mit scp die Datei auf den rPi kopieren z.B.:
1 |
scp jdk-8-linux-arm-vfp-hflt.tar.gz root@192.0.0.0:/root |
Dann in den rPi wechseln und und das Archive in das /opt Verzeichnis entpacken, das dauert ein paar Minuten:
1 |
sudo tar zxvf jdk-8-linux-arm-vfp-hflt.tar.gz -C /opt |
Nun Java aktivieren und das Archive löschen mit:
1 2 3 4 5 |
sudo update-alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_33/bin/javac 1 sudo update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_0_33/bin/java 1 rm jdk-8-linux-arm-vfp-hflt.tar.gz sudo update-alternatives --config javac # Auswahl 1 für Version 1.8 eingeben |
sudo update-alternatives --config java
# Auswahl 1 für Version 1.8 eingeben
Und checken ob es geklappt hat mit java -version
ergibt nun:
1 2 3 |
java version "1.8.0" Java(TM) SE Runtime Environment (build 1.8.0-b132) Java HotSpot(TM) Client VM (build 25.0-b70, mixed mode) |
Java 1.8.0 ist nun erfolgreich installiert.
Dafür gibt es ein fertiges Modul in Fhem. Es müssen nur die zwei Zeilen mit den device, userid und publickey aus der Web-Oberfläche von Withings (alt)
define withings withings [device]
define withings> withings [userid] [publickey]
in der fhem.cfg ergänzt werden und ein restart des Fhem-Servers durchgeführt werden.
Dann kamm es bei mir zu folgender Fehlermeldung:
Can't locate JSON.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . ./FHEM) at ./FHEM/32_withings.pm line 9, <> line 3.
BEGIN failed--compilation aborted at ./FHEM/32_withings.pm line 9, <> line 3.
An der Fehlermeldung kann man erkennen das JSON für Perl auf den Rasperry Pi nicht installiert war.
In der Modulbeschreibung steht auch das „JSON, LWP::Simple and Digest::MD5 have to be installed on the FHEM host“. Also noch ein paar Module neu installieren mit
sudo apt-get install libjson-perl libdigest-md5-file-perl liblwp-protocol-https-perl liblwp-protocol-http-socketunix-perl
auf der Konsole. Nach einem Restart, super es wird mein Gewicht angezeigt 🙁
Wie bekomme ich diese Gewichts-Daten nun in ein schönes Diagramm? Hat schon jemand eine passende gplot Datei? Dann bitte hier posten.
Das ist auf der Konsole des rPi nach der Aktualisierung des Systems mit einem Befehl getan:
1 2 3 |
sudo apt-get update sudo apt-get upgrade sudo apt-get install fail2ban |
Weitere Infos zu fail2ban gibt es im MANUAL oder auf der Seite von Sergej Müller.
Hier noch eine Mindmaps, mit den Abhängigkeiten von fail2ban auf Debian von links nach rechts:
Oder noch eine zentrierte Mindmap:
Hast Du noch weitere Infos zu diesem Thema? Welche der drei Mindmaps gefällt Dir am Besten?
Manchmal muss man ein deb-Archive auf dem rPi aus dem Internet laden und lokal einspielen, da das deb Archive nicht im Repository vorhanden ist.
Das geht einfach mit dpkg (Debian Package) und nicht mit apt-get da dies nur Pakete aus dem Repository landen kann, das in der Datei /etc/apt/sources.list aufgelistet ist. In der Regel deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi.
z.B. wenn das lokale Archive auto-pdf-1.0.deb installiert werden soll:
sudo dpkg -i auto-pdf-1.0.deb
-i = install = installieren
und schauen ob es installiert wurde mit:
sudo dpkg -l | grep 'autopdf'
oder
sudo dpkg -l | grep 'auto-*'
und alles wieder löschen mit:
sudo dpkg -r autopdf
-r = remove = löschen
Auch noch hilfreich für Infos und anzeige des Inhalts des Archivs.
dpkg --info auto-pdf-1.0.deb
dpkg --contents auto-pdf-1.0.deb
Cheat Sheet und man-Page
Von VirtualBox die VirtualBox 4.3.2 for OS X hosts
und VirtualBox 4.3.2 Oracle VM VirtualBox Extension Pack downloaden. Es muss ja nicht immer eine virtuelle Maschine von VMware oder Parallels sein.
VirtualBox und Extensions Pack installieren.
So, jetzt kann in der virtuelle Maschine Linux installiert werden. Die Anleitung zu VirtualBox ist hier {PDF} zu finden.
Coole Anleitung auf Deutsch. Habe das alles installiert mit neuem Debian CD Image (7.2.0). Eclipse läuft super…
Und das gestartete Eclipse Kepler:
Um den schnellen Textbasierten Browser Lynx auf dem rPi zu installieren ist nur ein Befehl nötig:
sudo apt-get install lynx
Dann kann der Browser gestartet werden mit z.B.
lynx wenzlaff.de
und schon ist man auf der Seite und kann sich ganz auf den Text konzentrieren und alles ohne Werbebanner:
1. Download eines Image von . Z.b. das 2014-09-09-wheezy-raspbian.zip Archiv. Das zip Archiv entpacken.
2. SD Karte (z.B. 8 GB) in einstecken und ermitteln welches Device es am Rechner ist unter Apple Menu –> Über diesen Mac –> Weitere Informationen… –> Systembericht –> Hardware ->USB –> Unter USB Hochgeschwindigkeits-Bus / Hub / Integrierter Speicherkartenleser dann die Info unter BSD-Name:
In meinem Fall ist es: disk3
Oder mit diskutil list
schauen.
3. sudo diskutil unmount /dev/disk3s1
4. sudo dd if=Downloads/2014-09-09-wheezy-raspbian.img of=/dev/disk3 bs=1m
Jetz ca. 60 min warten bis die Meldung
2825+0 records in
2825+0 records out
2962227200 bytes transferred in 2020.681419 secs (1465955 bytes/sec)
kommt. Dann kann die Karte ausgeworfen und in den Raspberry Pi gesteckt werden.
5. Netzwerkkabel anschließen und Strom anschalten.
Per ssh pi@10.1.1.1 (Adresse anpassen)
und Passwort: raspberry im Terminal anmelden.
6. Auf dem Prompt raspi-config eingeben und Konfigurieren der Sprache (de_DE.ISO-8859-15@euro), Erweiterten Speicher, SSH Server, neues Passwort und auf neueste Version updaten. Restart. Alles über diese schöne GUI:
7. Und testen ob Java installiert ist mit java -version
, JA sogar die Version 1.8:
8. Und System noch updaten mit:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get clean
# Firmware update
sudo rpi-update
sudo ldconfig
sudo reboot
Um auf VPN Server von einem Mac zugreifen zu können, kann der kostenlose VPN-Client Tunnelblick verwendet werden. Also zuerst den Tunnelblick downloaden.
Ich habe die Version 3.3 verwendet.
Dann installieren, so wie hier beschrieben.
Dann die Datei config.ovpn Anlegen mit folgenden Inhalt:
dev tap
proto udp
# Hier die IP-Adresse des VPN Servers eintragen
remote 192.168.2.XXX 1194
resolv-retry infinite
nobind
mute-replay-warning
# Der Name des Static Key
secret secret.key
verb 3
und in ein Verzeichnis mit der Endung .tblk verschieben. In dieses Verzeichnis muss auch der Key (Static Key) kopiert werden.
Nach dem doppelklick auf das Verzeichnis mit der Endung .tblk startet der VPN Client. Oben rechts in der Menüleiste erscheint dann das Icon.
Dazu muss erst einmal mehr Speicher per USB-Stick bereitgestellt werden.
Dann gem. dieser Anleitung vorgehen.
Also kurz:
1. OpenWrt installieren
2. USB-Stick vorbereiten und an WR703N anschließen
3. Perl installieren
4. Fhem aus Subversion ausschecken
5. mit make install Fhem erstellen
6. nun kann Fhem gestartet werden in /usr/src/fhem
mit: perl /opt/fhem/fhem.pl /opt/fhem/fhem.cfg
7. im Browser http://192.168.2.122:8083/fhem (ip anpassen) aufrufen, es kommt:
8. Autostart für Fhem einrichten. Datei /etc/init.d/fhem
anlegen mit folgenden Inhalt:
#!/bin/sh /etc/rc.common
# FHEM Init Script
START=11
STOP=15
start() {
# cd /usr/src/fhem/
# perl /opt/fhem/fhem.pl /opt/fhem/fhem.cfg
# auf neue Verz. angepasst:
cd /etc/src/fhem/
perl /etc/src/fhem/fhem.pl /etc/src/fhem/fhem.cfg
}
stop(){
echo "shutdown" | nc localhost 7072
}
Dann noch die /etc/init.d/fhem
Datei ausführbar machen und aktivieren.
chmod +x /etc/init.d/fhem
/etc/init.d/fhem enable
/etc/init.d/fhem start
Nach reboot
startet nun Fhem automatisch.
9. Fhem weiter konfigurieren
10. z.B. den ersten Plot anzeigen. Dazu z.B in das Verzeichnis /fhem/www/log die eine Test-Datei temp.log mit Messwerten kopieren. In der /etc/src/fhem.cfg
diese Anpassungen machen:
define Test dummy
define FileLog_Test FileLog /usr/src/fhem/log/temp.log Test
attr FileLog_Test logtype temp4:Plot,text
attr FileLog_Test room Test
define wlTest weblink fileplot FileLog_Test:temp4:CURRENT
attr wlTest room Test
Und schon wird dieses schöne Diagramm angezeigt. Es ist noch nicht viel, da die Testdaten nur ein paar Zeilen sind: