Inhalt

Allgemeines

Erste Inbetriebnahme

Erstkonfiguration vornehmen

Uhrzeit und Tastaturlayout anpassen

Raspberry Betriebssystem updaten

WLAN Stick einrichten

Alias für Befehle einrichten

Uhrzeit automatisch stellen

Kamera aktivieren und Fotos / Videos erstellen

RRD Tool installieren

I2C Bus aktivieren / ansteuern

SAMBA Installieren

DNS Eintrag erstellen

Perl Module installieren

Pi als Terminalclient

SNMP einrichten und Werte auslesen

Prozesse finden und beenden

PiFace Digital 2 einrichten

GPIO Port ändern

Weiter nützliche Tools

Proxy Server angeben

DNSPerf installieren

 

 

Allgemeines

Nachdem ich mir einen Raspberry Pi bestellt habe ist dieser nun endlich angekommen. Bei dem Raspberry PI handelt es sich um einen Mini-Computer der fast alles kann was ein "großer" Computer auch kann. Mit dem Raspberry Pi Model 2 B wird ein etwa Zigarettenschachtel großer Computer mit 900MHz Quadcore Prozessor und 1GByte RAM geliefert. In der Bestellung habe ich gleich ein Gehäuse, das Kameramodul, ein Steckernetzteil und eine 16GByte Micro SD Karte sowie einen Nano WiFi USB Adapter mitbestellt. Zusammen habe ich dafür ca. 90 € bezahlt.

Zurück

 

Erste Inbetriebnahme

Nachdem ich nun alles Ausgepackt habe kommt die Inbetriebnahme.  Dazu stecke ich die Micro SD Karte über einen Adapter in meinen Rechner ein und starte das Programm Win32DiskImager das ich hier herunter geladen habe. Mit dem Programm kann die eigentliche Software auf die SD Karte geschrieben werden. Für die ersten Versuche verwende ich das Betriebssystem RASPBIAN das ich mir hier geholt habe. Das Microsoft Windows 10 ist derzeit noch nicht zum Download frei erhältlich, soll aber in den nächsten Wochen bereit stehen.

 

Win32DiskImager
Win32DiskImager

Nach dem Kopieren des Images auf die SD Karte kann diese nun in den Pi eingesteckt werden. Auch das Netzwerkkabel wird mit dem Pi verbunden. Jetzt kann der Pi an die Spannungsversorgung angeschlossen werden.

Zurück

 

Verbindung mit Pi herstellen

Wenn der Pi angeschlossen ist, kann nun auf dem DHCP Server geschaut werden, welche IP Adresse der Pi bekommen hat. Mit Putty oder mit einem anderen SSH Terminal kann eine Verbindung mit dem Pi hergestellt werden. Als Benutzername wird pi eingetragen und als Kennwort wird "raspberry" verwendet (ohne ").

Zurück

 

Erstkonfiguration vornehmen

Nachdem wir nun mit dem Raspberry verbunden sind, starten wir als erstes das Konfigurationsprogramm mit

sudo raspi-config

In dem Konfigurationstool den 1. Menüpunkt auswählen um den gesamten Speicher auszunutzen

Nachdem des Konfigtool mit Finish beendet wurde wird der Pi neu gestartet. Nach dem Neustart kann mit df -h der Speicherplatz auf der SD Karte überprüft werden.

Zurück

 

Uhrzeit und Tastaturlayout anpassen

Um die Uhrzeit einzurichten müssen wir das Konfigtool starten mit

sudo raspi-config

In dem Konfigtool "Internationalisation Options" auswählen und danach "Change Locale" auswählen. In der Auswahlliste alle de_DE* auswählen und mit OK bestätigen. Danach kann die Sprache auf de_DE.UTF-8 gestellt werden.

Im Hauptmenü kann jetzt wieder Int. Optionen ausgewählt werden, danach "Change Tomezone" auswählen und Europa bzw. Berlin für Deutschland auswählen.

Zurück

 

Raspberry Betriebssystem updaten

Um das Betriebssystem auf den neusten Stand zu bringen müssen folgende Befehle ausgeführt werden:

- sudo apt-get update

- sudo apt-get upgrade

Danach den Pi neu starten oder folgenden Befehl ausführen:

sudo apt-get update && sudo apt-get -y upgrade && sudo apt-get -y autoremove && sudo reboot

 

Zurück

 

WLAN Stick einrichten

Mit lsusb kann überprüft werden, ob der USB WLAN Adapter erkannt wird. In diesem Fall ist es ein WLAN Stick mit RT5370 Chipsatz (LogiLink WL0084B).

Vorhandene WLANs können mit

sudo iwlist wlan0 scan

gesucht werden. Hier können auch die WLAN Einstellungen ausgelesen werden, die später weiter unten in der Konfiguration eingetragen werden müssen um eine Verbindung mit dem WLAN herstellen zu können.

Auszug aus iwlist

          Cell 04 - Address: 34:31:C4:39:BA:4E
                    Channel:11
                    Frequency:2.462 GHz (Channel 11)
                    Quality=63/70  Signal level=-47 dBm 
                    Encryption key:on
                    ESSID:"Mein-WLAN"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
                              9 Mb/s; 12 Mb/s; 18 Mb/s
                    Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s
                    Mode:Master
                    Extra:tsf=0000006b63405450
                    Extra: Last beacon: 20ms ago
                    IE: Unknown: 000742657267737472
                    IE: Unknown: 010882848B960C121824
                    IE: Unknown: 03010B
                    IE: Unknown: 0706444520010D14
                    IE: Unknown: 2A0100
                    IE: Unknown: 32043048606C
                    IE: Unknown: 2D1AEF111BFFFFFF00000000000000000080000000000406E6E70D00
                    IE: Unknown: 331AEF111BFFFFFF00000000000000000080000000000406E6E70D00
                    IE: Unknown: 3D160B0F0600000000000000000000000000000000000000
                    IE: Unknown: 34160B0F0600000000000000000000000000000000000000
                    IE: Unknown: 4A0E14000A002C01C800140005001900
                    IE: Unknown: 7F050100000000
                    IE: Unknown: DD180050F2020101010003A4000027A4000042435E0062322F00
                    IE: Unknown: DD0900037F01010000FF7F
                    IE: Unknown: DD0C00040E010102010000000000
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : CCMP
                        Pairwise Ciphers (1) : CCMP
                        Authentication Suites (1) : PSK

Mit ifconfig kann überprüft werden ob das WLAN Interface erkannt wird. Ist dies der Fall (hier WLAN0) kann eine Verbindung mit einem WLAN Router hergestellt werden.

Hierzu muss die Datei /etc/Network/interfaces angepasst werden. Dies kann mit dem Editor nano gemacht werden. Bevor wir eine Änderung vornehmen machen wir eine Kopie der Konfigurationsdatei mit

sudo cp /etc/network/interfaces /etc/network/interfaces.org

Editor öffnen mit

sudo nano /etc/network/interfaces

folgender Inhalt sollte in der Deitei stehen

auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

Danach muss die Datei /etc/wpa_supplicant/wpa_supplicant.conf angepasst werden. Dazu kopieren wir zunächst wieder die vorhandene Datei mit

sudo cp /etc/wpa_supplicant/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant.conf.org

bevor wir sie mit

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

bearbeiten und folgenden Inhalt einfügen

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
ssid="WLAN-Name"     # Hier wird der Name des WLANs eingetragen incl. Anführungszeichen
psk="WLAN Kennwort"  # Hier wird das Kennwort eingetragen incl. Anführungszeichen
scan_ssid=1          # 0=Default / 1=aktiver Scan für versteckte WLANs
proto=RSN            # WPA = WPA/IEEE 802.11i/D3.0 / RSN = WPA2/IEEE 802.11i 
key_mgmt=WPA-PSK
pairwise=CCMP
auth_alg=OPEN
}

Anschließend die Konfiguration des Netzwerkes neu laden mit

sudo service networking restart

Bei mir hat die Konfigurationsänderung erst nach einem Reboot funktioniert

sudo reboot

Eine Beschreibung für die Parameter in der wpa_supplicant.conf Datei gibt es hier.

Zurück

 

Alias für Befehle einrichten

Mit Alias Einträgen in der Datei .bashrc können Kurzbefehle eingerichtet werden. Dazu die Datei mit nano öffnen und das Kommentarzeichen vor alias entfernen. Die Einstellungen sind ab einer Neuanmeldung gültig.

Zurück

 

Uhrzeit automatisch stellen

Um die Uhrzeit aus dem Internet zu übernehmen muss der NTP Dienst mit

sudo apt-get purge ntp entfernt werden. Danach wird der NTPDate Dienst mit

sudo apt-get install ntpdate

installiert. Nach der Installation kann mit

sudo /etc/init.d/ntp stop der Dienst gestoppt werden und mit

sudo ntpdate [Servername oder IP] die Uhrzeit aus dem Internet geholt werden. Danach muss wieder mit

sudo /etc/init.d/ntp start der Dienst gestartet werden.

Damit bei jedem Start die Uhrzeit abgeglichen wird machen wir einen cronjob mit

sudo crontab -e

und tragen folgende Zeilen ein

@reboot ntpdate -s 0.de.pool.ntp.org
0 */6 * * * ntpdate -s 0.de.pool.ntp.org

danach beenden wir mit STRG-O und STRG-X den Editor.

Zurück

 

Kamera aktivieren und Fotos / Videos erstellen

Um die Kamera nutzen zu können muss diese zuerst mit raspi-config aktiviert werden. Dazu starten wir mit

sudo raspi-config

und wählen in dem Menü den Punkt 5 "Enable Camera" aus. Auf dem darauffolgenden Dialog kann die Kamera mit enable aktiviert werden. Wenn raspi-config beendet wird, wird der Pi neu gestartet. Nach dem Reboot ist die Kamera aktiv und kann verwendet werden.

Um die Aufnahme LED auszuschalten, muss in der Datei /boot/config folgender Eintrag gemacht werden:

disable_camera_led=1

 

Fotos aufnehmen

Mit dem Befehl

raspistill -o Image.jpg

wird ein Foto erstellt und im aktuellen Verzeichnis gespeichert. Alle Funktionen von raspistill können auf der Webseite von Raspian.org nachgelesen werden.

 

Video erstellen

Über den Befehl

raspivid -o Video.h264 -t 10000

wird ein Video über 10 Sekunden erstellt und im aktuellen Verzeichnis abgespeichert. Auch hier werden wieder alle weiteren Funktionen auf der Raspberry.org Webseite erklärt.

Zurück

 

RRD Tool installieren

Mit den RRDTool können Werte in einer RoundRobinDatenbank gespeichert werden und als Grafik ausgegeben werden. Dazu müssen die RRDTools installiert werden mit

sudo apt-get install rrdtool

Jetzt kann mit den folgendem Befehl eine kleine Datenbank angelegt werden

rrdtool create Datenbank.rrd --step 300 DS:name:GAUGE:600:-30:100 RRA:AVERAGE:0.5:1:1200 RRA:MIN:0.5:12:2400 RRA:MAX:0.5:12:2400 RRA:AVERAGE:0.5:12:2400

In diese Datenbank werden mit dem Befehl

rrdtool update Datenbank.rrd N:[Wert]

Die Daten eingespielt.

Zurück

 

I2C Bus aktivieren / ansteuern

Um auf den I2C Bus zugreifen zu können muss das Modul modprobe i2c_dev geladen werden. Das Modul wird automatisch geladen, wenn folgende Zeile in die Datei /etc/modprobe eingetragen wird.

i2c-dev

Jetzt muss noch im Rasi Konfigurationsassistent der I2C Bus aktiviert werden. Dazu muss mit raspi-config das Tool gestartet werden und unter Advanced der I2C Bus aktiviert werden.

Um die Verbindung testen zu können, wird die Tool-Sammlung i2c-tools benötigt, die mit folgendem Befehl installiert wird.

apt-get install i2c-tools      # I2C-Toolkit fuer die Kommandozeile
apt-get install python-smbus   # Python-Bibliothek fuer I2C
apt-get install libi2c-dev     # Bibliothek fuer C

Wenn alles OK ist dann kann mit
sudo i2cdetect -y 1
der I2C Bus ausgelesen werden
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: 30 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

Zurück

SAMBA Installieren

Mit dem Samba Dienst ist es möglich von einem Windows Rechner direkt auf das Dateisystem des Raspberry zuzugreifen.

Um den Dienst zu installieren muss folgender Befehl ausgeführt warden

sudo apt-get install samba samba-common-bin

Wenn das Paket geladen wurde muss deer SAMBA Dienst noch konfiguriert warden. Ich gehe davon aus, dass der Raspberry in einem sicheren Netzwerk betrieben wird. Aus diesem Grund werden nur einfache Kennwörter / Benutzernamen verwendet. Sollte der Raspberry in einem fremden Netzwerk betrieben werden so müssen die Sicherheitseinstellungen überarbeitet werden!

Zunächst  müssen wir einen Samba Benutzer anlagen. In unserem Fall ist es der Benutzer pi. Zu beachten ist, dass der Benutzer, im Beispiel pi, als Benutzer auf dem Raspberry als Systembenutzer existieren muss. Es ist ratsam, nicht dasselbe Passwort wie für den Systembenutzer und folglich den SSH-Zugang zu verwenden.

sudo smbpasswd -a pi

Damit wir per SMB auf den Pi zugreifen können muss noch die Konfigurationsdatei angepasst werden. Hierzu benennen wir die originale Datei um und erstellen uns eine neue Datei mit

sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.org

sudo nano /etc/samba/smb.conf

In die neu erstelle Datei kopieren wir folgenden Inhalt:

[RaspberryPi]
path = /
writeable = yes
guest ok  = no 

Jetzt starten wir den Dienst mit

sudo /etc/init.d/samba restart

neu.

Zurück

 

DNS Eintrag erstellen

  • sudo apt-get install avahi-daemon
  • sudo insserv avahi-daemon
  • sudo apt-get remove wolfram-engine

Zurück

 

Perl Module installieren

Um Module für Perl installieren zu können ist es am einfachsten dies über cpanm zu machen. dafür müssen zunächst einige Pakete installiert werden.

Kompiler installieren mit

sudo apt-get install curl gcc-4.7

CPANM installieren mit

sudo curl -L http://cpanmin.us | perl - --sudo App::cpanminus

Sollte es ein Problem bei der Installation mit dem Zertifikat geben, dann bitte das Datum und die Uhrzeit überprüfen!

Das Datum kann mit dem Befehl sudo date "MMTTHHMMJJ" eingestellt werden.

Danach können Perl Module mit dem Befehl

sudo cpanm <Modulname>

Beispiel: sudo cpanm Device::LaCrosse::WS23xx

installiert werden.

 

Eine Anleitung, wie ein Debugger für Perl remote eingerichtet wird gibt es z.B. unter http://docs.activestate.com/komodo/4.4/debugperl.html

Für Komodo sind folgende Schritte erforderlich:

  • Den Inhalt aus dem Komodo Verzeichnis \lib\support\dbgp\perllib auf den pi in das Verzeichnis /home/pi/perl_debug kopieren
  • export PERL5LIB=/home/pi/perl_debug
  • export PERLDB_OPTS="RemotePort=127.0.0.1:9000"
  • export DBGP_IDEKEY="jdoe"
  • perl -d piface01.pl

Zurück

 

Pi als Terminalclient

Zunächst muss der RDP Client installiert werden. Dies geht wie immer mit

sudo apt-get install rdesktop

Nach der Installation muss der Desktop gestartet werden. Hierzu wird die Datei ~/.config/autostart/.desktop angelegt und folgender Inhalt eingetragen

[Desktop Entry]
Type=Application
Exec=/home/pi/startrdp.sh

anschließend wird die Datei /home/pi/startrdp.sh bearbeitet und folgender Inhalt eingefügt

#!/bin/bash
while ! ping -c 1 COMPUTERNAME > /dev/null; do
sleep 1;
done
exec rdesktop COMPUTERNAME -f -u USERNAME -p PASSWORD -d DOMAIN

Für COMPUTERNAME, DOMAIN, USERNAME und PASSWORD müssen natürlich die eigentlichen Werte eingetragen werden.

Jetzt wird mit

sudo chmod 777 /home/pi/startrdp.sh die Ausführung der Datei erlaubt

Zurück

 

SNMP einrichten und Werte auslesen

Zunächst muss einmal das SNMP Paket installiert werden. Die geht mit

sudo apt-get install snmpd snmp

Die Datei snmpd.conf mit

sudo nano /etc/snmp/snmpd.conf wir folgt bearbeiten

Zugriff von allen Clients erlauben mit

agentAddress 161

Benutzername für SNMP auf public einstellen

rocommunity public

Danach den Dienst mit

sudo Service snmpd restart neustarten und mit

ps -A|grep snmpd überprüfen ob der Dienst gestartet wurde.

Jetzt kann auf den PI bereits mit SNMP zugegriffen werden. Um eigene Parameter mit SNMP auszulesen sind noch einige weitere Dinge erforderlich. Zunächst müssen wir ein kleine kleine Testroutinge schreiben. Dazu starten wir unseren Editor mit

sudo nano /usr/local/bin/testroutine

und tragen folgende Zeilen in die Datei ein

#!/bin/bash
echo .1.3.6.1.2.1.25.1.8
echo gauge
cat /sys/class/thermal/thermal_zone0/temp
exit 0

Das Skript liest die CPU Temperatur aus und gibt diese aus. Nachdem die Datei erstellt wurde müssen wir noch die Berechtigungen ändern. Dazu führen wir folgenden Befehl aus

sudo chmod 755 /usr/local/bin/testroutine

Wenn wir die Datei erstell haben können wir die SNMP Konfigurationsdatei anpassen. Dazu öffnen wir die Datei mit sudo nano /etc/snmp/snmpd.conf und fügen am Ende der Datei folgende Zeile ein:

pass .1.3.6.1.2.1.25.1.8 /bin/sh /usr/local/bin/testroutine

Jetzt müssen wir nur noch den Dienst oder den PI neu starten.

Zurück

 

Prozesse finden und beenden

Alle unter Linux gestarteten Prozesse können mit ps ax angezeigt werden. In der 1. Spalte wird dabei die Prozessnummer angezeigt. Mit kill [Prozessnummer] kann nun  der Prozess beendet werden.

Zurück

 

PiFace Digital 2 einrichten

Zunächst muss die serielle Schnittstelle mit raspi-config deaktiviert werden. Das geht unter Advanced Options Punkt 8.

Um das PiFace mit Perl steuern zu können werden folgende Einstellungen benötigt

WiringPi installieren

  • git clone git://git.drogon.net/wiringPi
  • cd wiringPi
  • git pull origin
  • cd wiringPi
  • ./build

Jetzt fehlt noch das Modul für Perl, damit folgendem Befehl installiert wird

sudo cpanm Device::PiFace

Jetzt müssen wir nur noch das kleine Programm mit Perl ausführen

 use Device::PiFace;
 # 00 Interface
 my $piface = Device::PiFace->new (hw_addr => 0);
 while(){
  $piface->write (value => 0b11111111);
  sleep (1);
  $piface->write (value => 0b00000000);
  sleep (1);
 }

und schon blinken alle LEDs auf dem PiFace im Sekundentakt.

Zurück

 

GPIO Port ändern

In der Datei /boot/config.txt folgenden Eintrag vornehmen. Dabei ist x der neue GPIO Port. 

dtoverlay=w1-gpio,gpiopin=x

Danach die Datei speichern und den Pi neu starten. 

 

Weiter nützliche Tools

tcpdump --> um den Netzwerkverkehr mitzuhören
git --> um sich GIT Dateien laden

 

Alle gemeinsam Installieren

sudo apt-get install tcpdump git

Zurück

 

Proxy Server angeben

Mit folgendem Befehl kann ein Proxyserver eingerichtet warden:

export http_proxy=http://192.168.20.1:8080

ACHTUNG: Nach einem Neustart ist der Eintrag nicht mehr vorhanden

Zurück

 

DNSPerf installieren

Um einen Stresstest auf einen DNS Server durchzuführen ist das Tool DNSperf geeignet. Das Tool wird wie folgt installiert.

apt-get install libbind-dev libkrb5-dev libssl-dev libcap-dev libxml2-dev bind9utils make gcc g++
apt-get install -y libjson-c-dev libgeoip-dev

 

cd /root
wget ftp://ftp.nominum.com/pub/nominum/dnsperf/2.0.0.0/dnsperf-src-2.0.0.0-1.tar.gz

 

tar xfvz dnsperf-src-2.0.0.0-1.tar.gz
cd dnsperf-src-2.0.0.0-1
./configure
make
sudo make install

 

Test der Installation mit:

dnsperf -h

 

Liste der Domains holen:

wget ftp://ftp.nominum.com/pub/nominum/dnsperf/data/queryfile-example-current.gz
gunzip queryfile-example-current.gz

 

Wetterstation WH1080 anbinden

Grundinstallation auf ESX mit Ubuntu 17.0.1 Server - Normale Installation

sudo apt-get install -y git python-dev gnuplot python-pip libudev-dev

pip install Cython

pip install libusb1

sudo pip install pywws

sudo pip install -U pywws

 

Damit der Benutzer pi auf den USB Port zugreifen darf müssen noch folgende Änderungen gemacht werden

- Gruppe  weatherstation mit sudo groupadd weatherstation anlegen

- Benutzer pi mit sudo adduser pi weatherstation in die Gruppe aufnehmen

- Die Datei sudo nano /etc/udev/rules.d/39-weather-station.rules anlegen und folgende 3 Zeilen einfügen

ACTION!="add|change", GOTO="weatherstation_end"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1941", ATTRS{idProduct}=="8021", GROUP="weatherstation"
LABEL="weatherstation_end"

Test: pywws-testweatherstation

 

Mit pywws-livelog  ~/weather/data wird der Dienst gestartet um autom. Messwerte einzulesen.

 

Mit python -m pywws.process ~/weather/data werden aus den RAW Daten die Tageswerte neu ermittelt.

 

Mit dem Befehl

python -m pywws.plot ~/weather/data/ ~/weather/temp/ ~/weather/graph_templates/24hrs.png.xml /home/pi/weather/24h_temp.png

können Diagramme erstellt werden, ohne dass eine Wetterstation vorhanden ist.

 

python -m pywws.template ~/weather/data/ ~/weather/templates/24h.html /home/pi/weather/24h.html