Sonntag, 15. November 2015
AndroidSecured - Sicherheitstipps: Google speichert Sprachsuchen
Freitag, 6. November 2015
Webservice Abfrage per Konsole mit wget
Dafür benötigt man folgendes:
- input.xml - Anfrage an den Webservice
- soapResponse.xml - Hier wird der Response vom Webservice hinterlegt
- webservice.sh - Ausführbares shell script mit der wget Anfrage
wget http://www.xqz.de/axis2/services/WebService --http-user=TEST --http-password=XYZ123 --post-file=input.xml --header="Content-Type: text/xml" --header="user: TEST" --output-document=soapResponse.xml
Montag, 12. Oktober 2015
Efficients: Wenn man Zeit zum Denken hat, kommen die guten Ein...
Android 6.0 - package org.apache.http.client does not exist
Error:(14, 23) error: package org.apache.http does not existMit der folgenden Einstellungen kann man ihn aber weiterhin verwenden:
android {Siehe hierzu auch http://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-apache-http-client
compileSdkVersion 23
buildToolsVersion "23.0.1"
useLibrary 'org.apache.http.legacy'
Sonntag, 11. Oktober 2015
Android Studio - IntelliJ SVN Probleme nach Neuinstallation
Subversion command line client version is too old
Nach der Installation des neuen Android Studio (Version 1.4) und der neusten SVN Version (z.B. TortoiseSVN oder SlikSvn 1.9.2) hatte ich die folgende SVN Fehlermeldung erhaleten:"Can't use Subversion command line client: C:\Program Files\SlikSvn\bin\svn.exe. Subversion command line client version is too old (1.9.2)."
Lustigerweise ist die SVN Version nicht zu alt, sondern zu neu :-)
Android Studio kann aktuell nur mit Versionen kleiner 1.9.0 umgehen, daher ist eine Installation von z.B. Slik-Subversion-1.8.9-x64.msi notwendig.
Siehe hierzu auch https://youtrack.jetbrains.com/issue/IDEA-140754
The working copy is too old
Da ich zuvor eine ältere Version vom SVN installiert hatte, wurde mir jetzt noch folgende Fehlermelding angezeigt:svn: E155036: Please see the 'svn upgrade' command svn: E155036: The working copy at 'D:\Workspace-Android-IntelliJ\mittagsangebotbeta' is too old (format 29) to work with client version '1.8.9-SlikSvn-1.8.9-X64 (SlikSvn/1.8.9) X64' (expects format 31). You need to upgrade the working copy first.Die Lösung dafür ist relativ einfach, muss ein Update des SVN Verzeichnisses von dem Projekt durchführen. Dafür in das betroffene Verzeichnis gehen und den Befehl svn upgrade ausführen.
Sonntag, 27. September 2015
Raspberry Pi - Webserver installieren
Der Grund für die Installation ist, dass ich in meinem Heim-Netzwerk grafisch aufbereitete Daten von meinem Temperatur Sensor (http://sebastianhemel.blogspot.de/2015/01/temperatursensor-ds18b20-raspberry-pi.html) bereitstellen möchte.
Mit Hilfe des Programms MRTG (Multi Router Traffic Grapher) und RRD (Round-Robin-Database) lassen sich unter Linux sehr schnell grafische Auswertungen und Darstellungen von Messwerten erstellen. Es können HTML Seiten mit Grafiken erstellt werden. Siehe https://sebastianhemel.blogspot.com/2016/01/raspberry-pi-monitoring-mit-mrtg-und.html .
Mit den folgenden Befehlen werden Lighttpd und PHP 5 mit CGI installiert:
sudo apt-get update
sudo apt-get install lighttpdsudo apt-get install php5-common php5-cgi php5
sudo lighty-enable-mod fastcgi-php
sudo lighty-enable-mod cgi
Anschließend muss ein Neustart vom Webserver durchgeführt werden:
sudo service lighttpd force-reload
Damit wir jetzt auch CGI Scripe ausführen können muss noch der Passende Ordner erstellt werden und die Besitzrechte von /var/www übernommen werden.
sudo mkdir /var/www/cgi-binNach dem die Rechte gesetzt wurden muss noch der Pi Benutzer der www-data Gruppe hinzugefügt werden.
sudo chown -R www-data:www-data /var/www
sudo chmod 775 /var/www
sudo usermod -a -G www-data piJetzt muss noch die Datei 10-cgi.conf angepasst werden und die Zeile alias.url hinzugefügrt werden:
sudo nano /etc/lighttpd/conf-available/10-cgi.confZum Abschluss muss der Webserver noch einmal neugestartet werden.
---
# /usr/share/doc/lighttpd/cgi.txt
server.modules += ( "mod_cgi" )
alias.url += ( "/cgi-bin/" => "/var/www/cgi-bin/" )
$HTTP["url"] =~ "/cgi-bin/" {...
sudo service lighttpd force-reloadJetzt sind die CGI-Skripte per Browser (http://IP-ADRESSE-PI/cgi-bin/hello-world.cgi ) erreichbar!
Download: hello-world.cgi
Hinweis: Mit chmod +x ausführbar machen, sonst gibt es den Fehler 500 (Internal Server Error) zu sehen.
Evtl. weitere Einstellungen können in der Konfigurationsdatei
/etc/lighttpd/lighttpd.conf
server.document-root = "/var/www"vorgenommen werden.
Freitag, 18. September 2015
Windows - SSH-Dateitransfer mit Netzlaufwerk
Hierfür kann man das Tool SFTP Net Drive https://www.eldos.com/sftp-net-drive/ verwenden.
Nach dem Download und Installation des Programmes müssen noch die jeweiligen Zugangsdaten hinterlegt werden:
Anschließend ist der SSH Zugang als Netzlaufwerk im Explorer verfügbar.
Lenovo Rootkits - Lenovo Service Engine
Verantwortlich ist diesmal nicht Superfish, sondern die Lenovo Service Engine, welche auch eine Sicherheitslücke beinhaltet. Daher sollte mit Hilfe des folgenden Tools der Service deinstalliert werden:
http://www.chip.de/downloads/Lenovo-LSE-Windows-Disabler-Tool_82164171.html
Eine vollständige Liste der betroffenen Rechner befindet sich hier:
http://news.lenovo.com/article_display.cfm?article_id=2013
Samstag, 15. August 2015
Windows - Ordner erstellen, welcher nicht sofort löschbar ist
- Starten der Eingabeaufforderung
- "Ausführen" aufrufen => z.B. "Windows" Taste + "R" drücken
- "cmd" eingeben und "OK" bestätigen
- Auf dem gewünschten Laufwerk Ordner erstellen
- "md con\" oder
- "md aux\" erstellen
- Die Ordner lassen sich jetzt wieder nur per Eingabeaufforderung löschen
- "rd con\" oder
- "rd aux"
Sonntag, 9. August 2015
Efficients: Optimieren eines Prozesses geht erst, wenn man die...
Raspberry Pi - Überflüssige Software deinstallieren
Update vom 16.01.2017
Installiert man die neue "Jessie" - "LITE" Version, ist eine Deinstalltion nicht mehr notwendig. Siehe auch http://sebastianhemel.blogspot.de/2016/12/raspberry-pi-raspbian-jessie.html .Viele der per default installierten Programme werden in der Regel nicht benötigt und könne daher deinstalliert werden. Sollte man Sie später doch noch benötigen, kann man Sie später einfach wieder installieren :-)
Befehl:
sudo aptitude purge ... (siehe Ende des Artikels)
purge - löscht das Paket inklusive aller Konfigurationsdateien
Da ich für meinen Pi (Serverbetrieb "headless") weder Spiele noch eine GUI (Desktopumgebung) benötige, können die folgenden Programme ohne Probleme gelöscht werden (Informationen zu den einzelnen Packeten kann man unter https://packages.debian.org/search?searchon=names&keywords=leafpad herausfinden):
- blt
- desktop-base
- dillo
- gnome-icon-theme
- gnome-themes-standard
- idle
- idle3
- leafpad
- lightdm
- lxappearance
- lxde
- lxde-common
- lxde-core
- lxde-icon-theme
- lxinput lxmenu-data
- lxpanel lxpolkit
- lxrandr
- lxsession
- lxsession-edit
- lxshortcut
- lxtask
- lxterminal
- xarchiver
- menu-xdg
- midori
- openbox
- pcmanfm
- penguinspuzzle
- pistore
- python-pygame
- python-tk
- python3-tk
- omxplayer
- scratch
- tk8.5
- xinit
- xserver-xorg
- zenity
Montag, 25. Mai 2015
Raspberry Pi - Einrichtung nach Installation
Hinweis: Starten der Raspi-Config erfolgt mit sudo raspi-config .
- Speicherplatz der kompletten SD-Karte nutzen (Hinweis: Bei Raspbian Stretch nicht erforderlich)
- Expand Filesystem aufrufen und bestätigen. Anschließend muss ein reboot erfolgen.
- Deutsches Tastaturlayout einstellen
- Zeitzone einstellen und Uhrzeit aktualisieren
- "4 Internationalisation Options" oder "4 Localisation Options" aufrufen und "I2 Change Timezone" auswählen und die Uhr auf Europe und Berlin einstellen
Optional:
- Betriebssystem/Firmware und Software beim Raspberry Pi aktualisieren:
- sudo apt update (Aktualisieren der Paketlisten)
- sudo apt full-upgrade (Updating and upgrading Raspberry Pi OS)
- Anschließend einen Neustart ausführen
- sudo shutdown -r now
- Default User/PW: pi/raspberry
- Passwort ändern: passwd
- Herunterfahren: sudo shutdown -h 0
- Hostname ändern: sudo vi /etc/hostname raspbberypi => dein-pi
- sudo /etc/init.d/hostname.sh
- sudo reboot
- sudo vi /etc/hosts
127.0.1.1 dein-pi
Samstag, 23. Mai 2015
Raspberry Pi - Raspbian "wheezy" installieren
Als Linux-Distribution für den Pi eignet sich das Raspbian "wheezy", welches extra an den Minicomputer angepasst wurde.
Download unter https://www.raspberrypi.org/downloads/
Nach dem Download muss das Zip-Archiv entpackt werden. Das Image ist folgendermaßen aufgebaut:
yyyy-mm-dd-wheezy-raspbian.imgAnschließend kann man mit dem Programm Win32 Disk Imager dass Image auf die zuvor FAT-32 formatierte SD-Karte installiert werden.
Download unter http://sourceforge.net/projects/win32diskimager/
Sonntag, 19. April 2015
Direkter URL Zugriff auf Google Drive Dateien
- Rechts-Klick auf die gewünschte Datei und Share auswählen
- Danach im folgenden Dialog den Link Get shareable link anklicken
Der generierte Link https://drive.google.com/file/d/0ByVthb1EejQ5OEtqYWdITGp5QjA/view?usp=sharing muss dann zu dem nachfolgenden umgebaut werden:
- https://drive.google.com/uc?id=0ByVthb1EejQ5OEtqYWdITGp5QjA&export=download
Jetzt kann man den Inhalt der .txt Datei z.B. eine URL direkt auslesen.
Bsp.: new HttpAsyncTask().execute("https://drive.google.com/uc?id=0ByVthb1EejQ5OEtqYWdITGp5QjA&export=download");
Sonntag, 15. März 2015
Android Studio - Intellij SVN CheckOut error
Cannot load supported formats: Cannot run program "svn": CreateProcess error=2, The system cannot find the file specifiedDieses Problem kann relativ schnell behoben werden.
In den Einstellungen muss man die folgende Option deaktivieren "Use command-line client".
Alternativ kann man auch den SVN command-line client in der %PATH% Umgebungsvariable hinzufügen.
Samstag, 7. März 2015
Raspberry Pi - WLAN reconnect nach Verbindungsabbruch
Bei stackexchange gibt es eine schöne Lösung für das Problem:
Well, there is a very simple solution:
- Go to /etc/ifplugd/action.d/ and rename the ifupdown file to ifupdown.original
- Then do: cp /etc/wpa_supplicant/ifupdown.sh ./ifupdown
- Finally: sudo reboot
Update 30.08.2019
Bei den neueren Raspbian Versionen (z.B. Buster) sind die folgenden Befehle ausreichend:sudo cp /etc/wpa_supplicant/ifupdown.sh /etc/ifplugd/action.d/ifupdown
sudo shutdown -r now bzw. sudo reboot
Sonntag, 8. Februar 2015
Raspberry Pi - Uhrzeit aktualisieren nach Neustart (ntpd)
Dies lässt sich mithilfe von NTPD (Network Time Protocol daemon) lösen.
sudo apt-get install ntpdateNtpdate starten automatisch mit einem Netzwerkinterface und setzt die Zeit von einem hinterlegten ntp Server in /etc/default/ntpdate .
Raspberry Pi - Logitech Webcam anschließen incl. FTP-Client
sudo apt-get updateEs gibt auch noch das Paket motion => Bewegungserkennung.
sudo apt-get upgrade
sudo apt-get -u dist-upgrade
sudo apt-get install fswebcam ncftp
Jetzt kann die USB Webcam angeschlossen werden. Nach erfolgreicher Installation sollte Sie hier aufgelistet sein.
lsusb
fswebcam test.jpg
--- Opening /dev/video0...
Trying source module v4l2...
/dev/video0 opened.
No input was specified, using the first.
Adjusting resolution from 384x288 to 352x288.
--- Capturing frame...
Captured frame in 0.00 seconds.
--- Processing captured image...
Writing JPEG image to 'test.jpg'.
Erstellen einer Konfigurations-Datei für das Webcam-Bild (webcam.cfg):
device /dev/video0Welche Funktion die Webcam bereitstellt, kann mit dem folgenden Befehl abgerufen werden:
jpeg 95
resolution 1280x720
#Zuschneiden des Bildes
#crop 930x570,190x150
#Ausgabegroesse
#scale 465x282
timestamp "%d.%m.%Y %H:%M"
title "www.webcam-ingolstadt.de | 85051 Ingolstadt"
set "White Balance Temperature, Auto"=True
set "Backlight Compensation"=0
set "Brightness"=140
set "Contrast"=25
set "Saturation"=25
skip 3
frames 3
save "/home/pi/webcam/cam.jpg"
fswebcam -d /dev/video0 --list-controls
Anschließend soll das soeben erstellte Bild noch per FTP auf einen Webserver hochgeladen werden und ein Cron-Job erstellt werden.
Erstellen einer Konfigurations-Datei für den FTP-Client (ftp.cfg):
host HOST-IPJetzt kann mit dem Befehl
user NUTZERNAME
pass PASSWORT
ncftpput -f /home/pi/webcam/ftp.cfg /cam /home/pi/webcam/cam.jpgdas Bild auf dem hinterlegten FTP-Server hochgeladen werden.
Abschließend kann das nachfolgende Bash-Script noch mit einem Cron-Job verbunden werden, damit z.B. alle 5min ein Bild erstellt wird von 08:00 - 17:55 Uhr.
Aufruf mit crontab -e und folgendes eintragen:
*/5 8-17 * * * /home/pi/webcam/webcam.sh >/dev/null 2>&1
#!/bin/sh
# Webcam Bild erstellen und auf FTP hochalden
# (c) Sebastian Hemel
fswebcam -c /home/pi/webcam/webcam.cfg
sleep 1
ncftpput -f /home/pi/webcam/ftp.cfg /cam /home/pi/webcam/cam.jpg
Samstag, 31. Januar 2015
Raspberry Pi - Temperatursensor DS18B20
An dem Raspberry Pi kann man relativ simpel einen Temperatursensor ansteuern. Ich habe dafür bei ebay einen Digitaler Temperatursensor DS18B20 Wasserdicht gekauft (Kosten ca. 2 €).
Update 20.02.2022: Mittlerweile gibt es den DS18B20 als digitales Temperatursensor-Modulplatinen-Kit, somit entfällt das manuelle setzen eines 4,7k Ohm Widerstand. Die Kosten liegen bei ca. 10 EUR.
Der DS18B20 Sensor besitzt drei Kabel:
- Rot (VCC / 3,0V bis 5,5V)
- Weiß (DATA / 1-Wire)
- Schwarz (GND)
Durch einen eindeutigen Code (ID) können mehrere Temperatursensoren parallel angeschlossen werden.
Der Sensor muss via GPIO angeschlossen werden (General Purpose Input/Output)).
- Rot (VCC) an Pin 1 3,3V
- Weiß (DATA) an den GPIO 4 (Pin 7)
- Schwarz GND Pin 6
- Zwischen VCC 3,3V und DATA GPIO 4 muss ein 4,7k Ohm Widerstand verwendet werden.
Um den Sensor ansprechen zu können, müssen folgende Module geladen werden
sudo modprobe w1-gpioUpdate (03.05.2015)
sudo modprobe w1-therm
Raspbian Betriebssystems ab Kernel 3.18 erfordert jetzt die Aktivierung des Device Tree Overlay für 1-wire:
sudo vi /boot/config.txtUnd folgendes hinzufügen
dtoverlay=w1-gpio,gpiopin=4,pullup=onDiese Module sollte am Besten auch direkt beim Start des Pi immer geladen werden
sudo vi /etc/modulesUnd folgendes hinzufügen
w1-gpioNach dem erfolgreichen Anschließen und Laden der Module sollte der Sensor jetzt zur Verfügung stehen. Zu finden unter
w1-therm
/sys/bus/w1/devices/xx-xxxxxxxxxxxx/w1_slave
t=21437 / 1000 = 21,437 ° C
Bash-Script (www.shemel.de/download/raspberry/temp-anzeigen.sh) zum Auslesen der Temperatur (sudo apt-get install bc):
#!/bin/sh
# Temperatur von Sensor auslesen
# (c) Sebastian Hemel
temp=$(cat /sys/bus/w1/devices/28-00000511590a/w1_slave | sed -n "s/.*t=\(.*\)/\1/p")
temp=`echo "scale=3; $temp / 1000" | bc`
printf "Aktuelle Temperatur: %05.2f°C\n" $temp
Scripte ausführbar machen mit chmod +x temp-anzeigen.sh .
Update 05.12.2020: https://sebastianhemel.blogspot.com/2020/12/raspberry-pi-temperatursensor-ds18b20.html
Bash-Script (www.shemel.de/download/raspberry/temp.sh) zum Auslesen der Temperatur, Temperatur und Tagdesdatum + Uhrzeit in Datei schreiben und auf einen FTP-Server (sudo apt-get install ncftp) hochladen:
#!/bin/sh
# Temperatur von Sensor auslesen und per FTP hochladen
# (c) Sebastian Hemel
temp=$(cat /sys/bus/w1/devices/28-00000511590a/w1_slave | sed -n "s/.*t=\(.*\)/\1/p")
temp=`echo "scale=3; $temp / 1000" | bc`
#printf "Aktuelle Temperatur: %05.2f°C\n" $temp >> temp.txt
rm temp.txt
printf "" >> temp.txt
printf "%05.2f" $temp >> temp.txt
printf " Grad Celsius - " >> temp.txt
date +%d.%m.%Y' '%H:%M >> temp.txt
printf "" >> temp.txt
sleep 1
ncftpput -f /home/pi/ftp.cfg /temp /home/pi/temp.txt
Aufbau der ftp.cfg (www.shemel.de/download/raspberry/ftp.cfg) Datei:
#host HOST-IP
host webhostingXX.1blu.de
#user NUTZERNAME
user ftpXXXXXX-xxin
#pass PASSWORT
pass xxx123
Möglicher Eintrag für die "crontab -e" (upload alle 5min):
*/5 * * * * /home/pi/temp/temp.sh >/dev/null 2>&1
Samstag, 3. Januar 2015
Raspberry Pi - WLAN per Konsole (putty) einrichten
Für die richtigen Netzwerkeinstellungen (statische oder dynamische IP), siehe Datei /etc/network/interfaces => http://sebastianhemel.blogspot.de/2014/08/raspberry-pi-statische-ip-zuweisen.html
Je nach dem welche Verschlüsselung das Netzwerk hat, muss diese noch in der Datei /etc/wpa_supplicant/wpa_supplicant.conf gepflegt werden:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="DEINE_SSID"
psk="DEIN_KEY"
scan_ssid=1
id_str="home"
key_mgmt=WPA-PSK
proto=RSN
pairwise=CCMP
group=CCMP
priority=5
}
Nach den erforderlichen Einstellungen sollte die WLAN Schnittstelle deaktiviert werden:
sudo wpa_action wlan0 stop
Danach muss die neue WPA Konfig wieder geladen werden:
sudo ifup wlan0
Nach dem erfolgreichen Starten (es gab keine Fehlermeldung), kann die Verbindung getestet werden:
sudo wpa_cli status
Freitag, 2. Januar 2015
Raspberry Pi - Deutsches Tastaturlayout einstellen
Dies merkt man z.B. sehr schnell daran, dass die Tasten [Z] und [Y] vertauscht sind :-)
Dies lässt sich aber zum Glück relativ einfach durch RasPi Konfig Tool beheben:
sudo raspi-configAnschließend wählt man in dem folgenden Menü den Eintrag "4 Internationalisation Options" oder "4 Localisation Options" aus.
Danach den Eintrag "I3 Change Keypoard Layout" auswählen und im nächsten Dialog die Einstellung "Generic 105-key (Intl) PC" bestätigen.
Jetzt muss man den Eintrag "Other" auswählen um zu der deutschen Belegung zu gelangen.
Im nächsten Schritt muss aus der Liste "German" ausgewählt werden. Die anderen Dialoge können je nach Nachfrage mit "OK" bestätigt werden.
Update 28.08.2019:
Eine Überprüfung der Einstellungen kann mit den folgenden Befehlen erfolgen:sudo nano /etc/default/keyboard
...
XKBMODEL="pc105"
XKBLAYOUT="de"
...
pi@raspberrypi:~ $ locale
LANG=de_DE.UTF-8
LANGUAGE=
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=