Archiv der Kategorie: Linux

Raspberry Pi Wetterdatalogging Fortsetzung

Raspberry Webcam Software Ausbau

Ich habe das bestehende Steckbord (Wetterdatensammler, siehe älterer Beitrag) durch eine Lötleiste ersetzt und wieder den DHT11 Temperatur/Feuchtigkeitssensor, DS18B20 Temperatursensor und den BMP085 Luftdrucksensor verbaut. Dadurch wurde die Messplatform wesentlich kleiner und robuster.

Foto

In diesem Beitrag beschreibe ich das Datalogging mittels dem Luftdrucksensor BMP085.

Die Messwerte des Sensors sollen in einer Round Robin Datenbank gespeichert werden. Mit Hilfe dieser Datenbank sollen Kurven geplottet und als PNG-Datei auf dem Webserver abgelegt werden, um sie dann über eine Html-Seite abrufen zu können. Somit benötigen wir auf dem Raspberry einen Webserver und das RRD-Tool. Um das RRD-Tool über Python ansprechen zu können, gibt es eine Erweiterung. Das hat die ganze Sache sehr einfach gestaltet (Details):

$ sudo apt-get install apache2 rrdtool python-rrd

Ist das erledigt, erstellt ihr einen Ordner im WWW-Verzeichnis eures Servers, wo ihr später die Grafiken ablegt:

$ mkdir /var/www/plots

Des Weiteren habe ich in das gleiche Verzeichnis eine ganz einfache HTML-Datei hinterlegt, welche schon die richtigen Links zu den Grafiken beinhaltet und sich alle 60 Sekunden automatisch neu lädt:

https://www.leben-zwo-punkt-null.com/wp-content/gallery/raspberry-pi/index_html.png

Das Python-Script mit dem Hauptprogramm habe ich unter /home/pi/BMP085/ abgelegt, da sich dort auch die Bibliothek zum Ansprechen des Sensors befindet. Als globale Variablen habe ich den Datenbank-Name, den Filename, den Zeitintervall für die Messung, den Pfad für die Grafiken und die Schleifenbedingung deklariert.

Das Hauptprogramm ist – wie ich finde – selbsterklärend. Es werden die drei Werte ermittelt, anschließend in die RRD-Datei geschrieben und danach wird die Funktion zum Plotten der Grafik aufgerufen. Wichtig ist die richtige Höhe über Meer (Wohnort bei mir 510 m) einzutragen in der Formel. (Zeile 105!):

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#!/usr/bin/python
# -*- coding: utf-8 -*-

# Library für den Sensor
from Adafruit_BMP085 import BMP085

import rrdtool
import sys
import time
import Adafruit_DHT

# Festlegung globaler Variablen
dbname = 'bmp085'                                               # Name fuer Grafiken etc
filename = dbname +'.rrd'                                       # Dateinamen mit Datum
steps = 60                                                      # Zeitintervall fuer die Messung in Sekunden
path = '/var/www/plots/'                                        # absoluter Pfad zum Ablegen der Plots
i = 0                                                           # Schleifenbedingung für den Hauptteil
DHT_TYPE = Adafruit_DHT.DHT11
DHT_PIN = 4
humidity, temp = Adafruit_DHT.read(DHT_TYPE, DHT_PIN)

# RRD-Datenbank anlegen, wenn nicht vorhanden
try:
    with open(filename): pass
    print "Datenbankdatei gefunden: " + filename
    i=1
except IOError:
    print "Ich erzeuge eine neue Datenbank: " + filename
    ret = rrdtool.create("%s" %(filename),
                         "--step","%s" %(steps),
                         "--start",'0',
                         "DS:bmp085_temp:GAUGE:2000:U:U",
                         "DS:bmp085_pres:GAUGE:2000:U:U",
                         "DS:bmp085_alti:GAUGE:2000:U:U",
						 "DS:bmp085_feuchte:GAUGE:2000:U:U",
                         "RRA:AVERAGE:0.5:1:2160",
                         "RRA:AVERAGE:0.5:5:2016",
                         "RRA:AVERAGE:0.5:15:2880",
                         "RRA:AVERAGE:0.5:60:8760",)
    i=1                          

# Sensor initialisieren
bmp = BMP085(0x77, 3, debug=False)

# Bildschirmausgabe
def ausgabe(d,u,t,p,a,f):
    sys.stdout.write(str('Datum: ') + d + '\n')
    sys.stdout.write(str('Uhrzeit: ') + u + '\n')
    sys.stdout.write(str('Temperatur:' ) + str(t) + '\n')
    sys.stdout.write(str('Luftdruck: ') + str(p) + '\n')
    sys.stdout.write(str('Höhenlage: ') + str(a) + '\n')
    sys.stdout.write(str('Feuchtigkeit: ') + str(f) + '\n')    

def plotten(a):

# Funktion zum Plotten der Grafiken
# a:   Wert, der geplottet werden soll
    
    # Beschriftung für die Grafiken festlegen
    if a == 'temp':
            title = 'Temperatur'
            label = 'in °C'
    elif a == 'pres':
            title = 'Luftdruck'
            label = 'in hPa'
    elif a == "alti":
            title = 'Hoehe'
            label = 'm über 0'
    elif a == "feuchte":
            title = 'Feuchtigkeit'
            label = 'in %'
                                              
                                                    
    # Aufteilung in drei Plots
    for plot in ['daily' , 'weekly', 'monthly']:
                                          
        if plot == 'weekly':
                 period = 'w'
        elif plot == 'daily':
                 period = 'd'
        elif plot == 'monthly':
                 period = 'm'
                                                                                                                                 
                                                                                         
        # Grafiken erzeugen                                                                                                                            
        ret = rrdtool.graph("%s%s_%s-%s.png" %(path,dbname,a,plot),
                             "--start",
                             "-1%s" %(period),
                             "--title=%s (%s)" %(title,plot),
                             "--vertical-label=%s" %(label),
                             '--watermark=Altstaetten',
                             "-w 800",
                             "--alt-autoscale",
			                 "--alt-y-grid",
			                 "--slope-mode",
                             "DEF:%s=%s:%s_%s:AVERAGE" %(a, filename, dbname, a),
                             "LINE1:%s#0000FF:%s_%s" %(a, dbname, a))

while i!=0:
    datum = time.strftime('%d %m %Y')
    uhrzeit = time.strftime('%H:%M:%S')
    
    # Messung von Temperatur, Druck, Luftfeuchte
    bmp085_temp=bmp.readTemperature()
    bmp085_pres=bmp.readPressure() / pow((1.0 - ( 510 / 44330.0 )), 5.255) / 100
    bmp085_alti=bmp.readAltitude(102600)
    bmp085_feuchte=humidity
     
    # Messwerte in die RRD-Datei schreiben
    from rrdtool import update as rrd_update
    ret = rrd_update('%s' %(filename), 'N:%s:%s:%s:%s' %(bmp085_temp, bmp085_pres, bmp085_alti, bmp085_feuchte));
    
    # Grafiken erzeugen
    print "Erzeuge Grafiken"
    plotten('temp')
    plotten('pres')
    plotten('feuchte')
    
    # Bildschirmausgabe der Messwerte
    ausgabe(datum,uhrzeit,bmp085_temp,bmp085_pres,bmp085_alti,bmp085_feuchte)
    
    # Warten, bis die neue Messung beginnt 
    print "Neue Messung startet in %s Sekunden" %(steps)
    time.sleep(steps)

Nach ein paar Stunden Testlauf bekam mein Auge dann die folgenden Graphen zu sehen und ich war vorerst zufrieden:

webserverBald schon kam der Wunsch auf, diese Grafiken auf Google Drive zu transportieren, um die Daten auch von extern einzusehen.

Dazu brauchen wir die halboffizielle Google Drive Application für Raspian unter:

https://github.com/odeke-em/drive

Wir erstellen auf dem Raspi zwei neue Ordner:

$ mkdir /home/pi/drive

$ mkdir /home/pi/drive/wetter

Jetzt klären wir ab welche Version von „drive“ wir für unseren Raspi benötigen:

$ cat /proc/cpuinfo | grep „model name“

model name : ARMv6-compatible processor rev 7 (v6l)

Bei mir läuft ein Raspberry Pi2+, d.h. es ist eine ARM6 v6 CPU. Unter URL sind die div. Versionen:

https://github.com/odeke-em/drive/releases/

Wir holen uns die richtige Version in meinem Fall:

$ sudo wget https://github.com/odeke-em/drive/releases/download/v0.3.8/drive_armv6 -O /usr/local/bin/drive

Das wird das Binaryfile „drive“ im Ordner /usr/local/bin downloaden. Jetzt noch ausführbar machen:

$ sudo chmod +x /usr/local/bin/drive

Jetzt initialisieren wir „drive“ und teilen ihm mit wo der Sync Ordner ist:

$ drive init /home/pi/drive

Beim initialisieren von „drive“ wird eine extrem lange URL von accounts.google.com herausgegeben. Diese kopieren wir und tragen sie im Browser eines anderen Computers mit eingeloggtem Google User Konto ein, das wir für diesen Zweck benützen möchten.
Die Frage, ob wir „drive“ erlauben auf das Google Konto zuzugreifen
beantworteten wir mit „yes“ und der Key String der dabei entsteht kopieren und im Raspi unter Verification Code eintragen.
Jetzt ist Google Drive bereit mit dem Raspi zu kommunizieren.
Statt nun die Daten jedesmal vom Webserver
in den Drive Ordner zu kopieren legen wir einen Link an:

$ ln -s /var/www/plots/ /home/pi/drive/wetter/

Jetzt geht’s los, wir wechseln in den Ordner wo die Daten sind:

$ cd /home/pi/drive

und laden die Daten hoch zu Google Drive:

$ sudo drive push wetter

Nach ein paar Sekunden sind die Grafiken auf Google Drive sichtbar.

Um den push Befehl zu automatisieren habe ich das bash script „wetter.sh“ geschrieben:

#!/bin/bash
cd /home/pi/drive
sudo drive push -quiet wetter
cd /home/pi

Das Script ausführbar machen:

$ sudo chmod +x /home/pi/wetter.sh

und mit crontab -e aktiviert (Alle 10 min ein push Befehl):

2,12,22,32,42,52 * * * * /home/pi/wetter.sh > /dev/null 2>&1

Wünsch viel Spass damit!

 

Advertisements

Raspberry als billige Webcam, Bewegungsmelder und Wetterdatensammler

Dieser Artikel beschreibt den Bau einer kostengünstigen Ueberwachungskamera mittels eines Raspberry PI als Mikrocomputer. Es werden Videos in HD Qualität bei Bewegung aufgezeichnet und mittels WiFI auf einen Cloud hochgeladen. Live – Bilder und Wetterdaten sind mittels Webbrowser auf Smartphone oder Computer jederzeit sichtbar. Normalerweise ist so eine Einrichtung ein Kostenfaktor, aber diese Lösung ist für ca. 100 chf machbar.

Ich wiederhole hier nochmals die Daten aus einem vorhergehenden Artikel, was wir bei diesem Projekt benötigen sind:

Einen Raspberry Pi mit 700Mhz ARM Prozessor und 512MB RAM bestückt. (Variante B Rev.2).

Als Betriebssystem verwende ich ein spezielles Linux Derivat, das bereits auf den ARM Prozessor abgestimmt ist. Das Raspian Image (zip File) kann von dieser Seite heruntergeladen und entpackt werden.

Nebst einem bestehenden PC mit SD-Card Reader, Netzwerkkabel, Wlan-Router habe ich folgende Hardware beschafft:

Steckernetzteil 5.25V 1.5A (Speziell für den Pi entwickelt)

8 GB SDHC Speicherkarte, Class 10 (Kingston, SanDisk,Transcend)

Miniature WiFi (802.11b/g/n) Modul für Raspberry Pi

PiNoIR Camera Modul mit Flachbandkabel

Steckbrett mit div Male/Female Kabeln, 10 kOhm Widerstand

DS18B20 Temperatursensor

BMP085 Luftdrucksensor

DHT11 Temperatur/Feuchtigkeitssensor

Dummy Ueberwachungskameragehäuse

Lieferbar z.B. Pi-Shop, Amazon, RS Component, Digitec

Webcam

Bei Betriebssystemen die auf Linux aufbauen kann man die gesamte Arbeit auf der Kommandozeile oder eben im Terminal erledigen. Wir stecken also die Speicherkarte in einen Computer oder Laptop und geben:

fdisk -l

Die SDHC Karte wird beispielsweise mit sdb1 angegeben, was darauf hinweist das wir die SDHC Karte mit sdb ansprechen.
Nun wechseln wir ins Directory wo sich unser entpacktes Raspian image befindet z.B.:

cd /home/user/download

Mit dem Befehl:

dd bs=4M if=xxx-wheezy-raspian.img of=/dev/sdb

kopieren wir das Image auf die SDHC Karte. Dies geht ca. 2 Minuten
Stecken Sie die Karte in Ihren Raspberry, verbinden Sie mit dem Netzwerkkabel und starten Sie den Raspi.
Finden Sie in Ihrem Router die IP Adresse heraus und gehen per SSH auf Ihren Raspi z.B. ssh pi@192.168.178.200 antworten Sie mit

yes und password raspberry

Jetzt sind Sie auf der Konsole vom Raspi und werden hier noch einige Aenderungen vornehmen:
Zuerst aktivieren wir das WiFi, indem wir die Datei folgendermassen anpassen z.B:

nano /etc/network/interfaces

auto lo
iface lo inet loopback
 iface eth0 inet dhcp
allow-hotplug wlan0
 iface wlan0 inet manual
 wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
 iface default inet static
 address  192.168.178.200
 netmask  255.255.255.0
 gateway  192.168.178.1

Die WPA Konfiguration für den WiFi Router noch eingeben, nano /etc/wpa_supplicant/wpa_supplicant.conf:


ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="Ihre SSID"
psk="Ihr WPA Code"
# Protocol type can be: RSN (for WP2) and WPA (for WPA1)
proto=WPA
# Key management type can be: WPA-PSK or WPA-EAP (Pre-Shared or Enterprise)
key_mgmt=WPA-PSK

# Pairwise can be CCMP or TKIP (for WPA2 or WPA1)
pairwise=TKIP

#Authorization option should be OPEN for both WPA1/WPA2 (in less commonly used $
auth_alg=OPEN
}

Wir starten den Raspi neu und prüfen, ob Wlan funktioniert ohne Ethernetkabel, dazu geben wir den Befehl ein: reboot
Falls Verbindung mit WiFi klappt geht’s weiter, ansonsten mit Ethernetkabel nochmals überprüfen, wo der Fehler liegt. Evtl muss SD Karte neu kopiert werden 😦
Mit ssh pi@192.168.178.200 sind wir mit WiFi wieder im Raspi und können noch die weiteren Befehle eingeben!
Jetzt updaten wir mal den Raspi:


sudo su
apt-get update
apt-get upgrade
apt-get install rpi-update
rpi-update
 

Wir konfigurieren den Raspi auf unsere Bedürfnisse und geben ein:

raspi-config

Expand Filesystem,Passwort ändern,Zeit,Sprache,Kamera ein, SSH ein, Optionen.Hostname etc.
Nun gehts weiter mit Zusatzsoftware installieren z.B Motion (Kamerasteuerung) Wir installieren zuerst das Standardpaket um alle Abhängigkeiten korrekt zu haben und ändern nachher auf eine Spezialversion (in Dropbox), die auf die Raspi Camera angepasst wurde:

apt-get install motion
cd /tmp
sudo apt-get install -y libjpeg62 libjpeg62-dev libavformat53 libavformat-dev libavcodec53 libavcodec-dev libavutil51 libavutil-dev libc6-dev zlib1g-dev libmysqlclient18 libmysqlclient-dev libpq5 libpq-dev
wget https://www.dropbox.com/s/xdfcxm5hu71s97d/motion-mmal.tar.gz
tar zxvf motion-mmal.tar.gz
sudo mv motion /usr/bin/motion
sudo mv motion-mmalcam.conf /etc/motion.conf
sudo nano /etc/default/motion

change line:

start_motion_daemon=yes

Weiter gehts:

sudo nano /etc/motion.conf
sudo chmod 664 /etc/motion.conf
sudo chmod 755 /usr/bin/motion
sudo touch /tmp/motion.log
sudo chmod 775 /tmp/motion.log

Im motion.conf ändern wir:nano /etc/motion.conf

daemon on
logfile /tmp/motion.log
width 640
height 480
framerate 2
pre_capture 2
post_capture 2
max_mpeg_time 600
fmpeg_video_codec msmpeg4
stream_localhost off

Da die SD Karte nicht viel Speicher hat werden wir später Videos auf einen Cloud hochladen.
In der Zwischenzeit eröffnen wir einen Pfad wo Fotos und Videos von Motion abgelegt werden:


mkdir /home/pi/Bilder  

Und im motion.conf ändern wir target dir /home/pi/Bilder

jetzt kann man motion starten:motion motion.conf >> LED rot leuchtet an Camera auf! Wir probieren Mal den Livestream im Webbrowser: http://192.168.178.200:8080 (8080 ist der Streamport den wir beliebig wählen können im motion.conf)


Nun Gehts weiter für die Sensoren: Billige digitale Temperatursensoren wie zb DS18B20 (siehe Amazon) 1-wire digital temperature sensor. Installation kann zb auf der linken Seite unten in der Webcam eingetragen werden Dazu die 1 wire anschlüsse installieren siehe hier http://www.raspberrypi-spy.co.uk/2013/03/raspberry-pi-1-wire-digital-thermometer-sensor/ Details und Verdrahtung auf einem Steckbrett sind dort gut dargestellt. Hier mein modifiziertes Programm:

 

nano sensor2motion.sh

#!/bin/bash

#########################################################################

#Name: sensor2motion.sh
#Subscription: This script fetches the tempreature from a sensor and send the forecast to motion
#by A. Laub
#andreas[-at-]laub-home.de
#Set the language
export LANG="de_DE.UTF-8"
#Load the Pathes
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 

#set the variables:

TEMP1=$(echo " $(grep 't=' /sys/bus/w1/devices/w1_bus_master1/28-00000585d789/w1_slave | awk -F't=' '{print $2/1000}')" )

#start the things

TEXT="Aussentemperature: $TEMP1 C"

# Set on Camera Image0

wget -q --delete-after "http://localhost:8081/0/config/set?text_left=$TEXT"

 im crontab -e

fügen wir diese zeile ein:

* * * * /home/pi/sensor2motion.sh*

Wir werden nun einige Programme in Python verwenden um weitere Schritte zu unternehmen dazu überprüfen wir, ob die entsprechenden Programme schon auf dem Raspi installiert sind:

apt-get install python
apt-get install python-pip
pip2 install gdata

Um Bilder und Videos im Google Drive hochzuladen kann dieses Python Programm weiterhelfen, Details siehe:

http://jeremyblythe.blogspot.pt/2012/06/motion-google-drive-uploader-and.html

Beim update von Raspian siehe uname -a! Falls Kernel grösser 3.18 dann sollte Raspi Config gemäss:

https://learn.adafruit.com/adafruits-raspberry-pi-lesson-4-gpio-setup/configuring-i2c

angepasst werden!

Um Feuchte und Temperatur zu messen habe ich folgende Anleitung angewendet funktioniert einwandfrei:

https://chrisbaume.wordpress.com/2013/02/10/beer-monitoring/

Damit ist ein tolles Tool aus der Webcam geworden! Viel Spass

Revox B285 mittels eines Raspberry PI an die digitale Welt anschliessen

Ich wollte die Unmengen an CD’s via eines Servers an das Revox anschliessen und dabei bequem mit einem Android Tablet die ganze Sammlung bedienen. Ziel war es, weder Unsummen zu investieren, viel Strom zu verbrauchen und eine grosse laute Kiste im Wohnzimmer zu haben. Da bin ich auf den kreditkartengrossen Raspberry gestossen, der genau diese Anforderungen erfüllen kann. Der Stromverbrauch liegt bei ca. 3 – 5 Watt, was die Stromrechnung nicht gross beeinflusst. 🙂

Der Miniaturrechner ist mit einem 700Mhz ARM Prozessor und 512MB RAM bestückt. (Variante B Rev.2). Außerdem ist er mit Ethernet und USB Schnittstellen sowie einen SD-Kartenslot (für das Betriebssystem) ausgerüstet.

Raspberry

Als Betriebssystem verwende ich ein spezielles Linux Derivat, das bereits auf den ARM Prozessor abgestimmt ist.

Als Audiophiler kommt hier vor allem das „Volumio“ in Frage, da es auf höchstwertige Musikwiedergabe getrimmt ist. Es unterstützt eine Vielzahl von USB DACs und erlaubt die bitperfekte Wiedergabe von 24bit Audio bis zu 192kHz.

Dank WiFI kann der Raspberry beim Revox stehen und wird mit Tablet oder Smartphone bedient und greift via Netzwerk auf die Festplatte resp. Heimserver (NAS) zu.

Umfangreiche Dokumentationen sind mittlerweile im Supportforum von Raspyfi zu finden und ich beschränke mich hier auf die wesentlichen Schritte, um den Raspi in Betrieb zu nehmen.

Benötigte Hardware:

Nebst einem bestehenden PC mit SD-Card Reader, Netzwerkkabel, Wlan-Router und Heimserver (NAS) sind zu beschaffen:

Raspberry Pi B, Rev.2, 512 RAM
Steckernetzteil 5.25V 1.5A (Speziell für den Pi entwickelt)
8 GB SDHC Speicherkarte, Class 10 (Kingston, SanDisk,Transcend)
Miniature WiFi (802.11b/g/n) Modul für Raspberry Pi
Gehäuse nach Wahl: schwarz, weiss oder transparent

Lieferbar z.B. Pi-Shop, Amazon, RS-Components Preis ca. 80 EU

Audiophile Komponenten:

USB DAC: Dragonfly2 (Audioquest, Version 2)
Audioquest Evergreen Audiokabel | Länge: 1m / Stecker: 3,5mm Klinke auf Cinch

Lieferbar: Um Fälschungen zu vermeiden ist ein zertifizierter Audioquest Händler zu empfehlen z.B. Blank GmbH & Co. KG, Preis ca. 185 EU

Software:

Ich beschreibe hier die Installation mit einem Linuxrechner im Terminal (Konsole):
Laden Sie sich die neueste Version von Volumio runter und entpacken Sie das zip File.
Bei Betriebssystemen die auf Linux aufbauen kann man die gesamte Arbeit auf der Kommandozeile oder eben im Terminal erledigen. Wir stecken also die Speicherkarte in den Computer oder Laptop und geben:

fdisk -l

Die SDHC Karte wird beispielsweise mit sdb1 angegeben, was darauf hinweist das wir die SDHC Karte mit sdb ansprechen.
Nun wechseln wir ins Directory wo sich unser entpacktes raspyfi image befindet z.B.:

cd /home/user/download

Mit dem Befehl:

dd bs=4M if=Volumio1.55PI.img of=/dev/sdb

kopieren wir das Image auf die SDHC Karte. Dies geht ca. 2 Min..
Stecken Sie die Karte in Ihren Raspberry, verbinden Sie mit dem Netzwerkkabel und starten Sie den Raspi.
Finden Sie in Ihrem Router die IP Adresse heraus und gehen per SSH auf Ihren Raspi z.B. ssh root@192.168.178.200 antworten Sie mit

yes und password volumio

Jetzt sind Sie auf der Konsole vom Raspi und werden hier noch einige Aenderungen vornehmen:
Zuerst aktivieren wir das WiFi, indem wir die Datei folgendermassen anpassen z.B:

nano /etc/network/interfaces
#auto eth0
 #iface eth0 inet static
 #address 192.168.178.200
 #netmask 255.255.255.0
 #gateway 192.168.178.1
allow-hotplug wlan0
 auto wlan0
 iface wlan0 inet static
 address 192.168.178.201
 netmask 255.255.255.0
 gateway 192.168.178.1
 wpa-ssid …
 wpa-psk …
(wpa-ssid „ssid Namen“   wpa-psk „wlan code“)

Wir starten den Raspi neu und prüfen, ob Wlan funktioniert ohne Ethernetkabel, dazu geben wir den Befehl ein: reboot

Falls Verbindung mit WiFi klappt geht’s weiter, ansonsten mit Ethernetkabel nochmals überprüfen, wo der Fehler liegt. Evtl muss SD Karte neu kopiert werden 😦 ! Mit ssh root@volumio sind wir mit WiFi wieder im Raspi und können noch die weiteren Befehle eingeben!

Ein erster Test kann nun erfolgen im Webbrowser oder Tablet: http://volumio mit einem eingesteckten Kopfhörer an der blauen Buchse oder schon mit einem Klinken/Cinch Kabel am Revox (Tape Eingang verwenden).
Gehen Sie rechts oben auf Settings und wählen Sie > Database > UPDATE MPD DATABASE. Wählen Sie WEBRADIO und probieren einer der Streaming Sender aus mit Doppelklick. Hören Sie Musik ist der erste Schritt gelungen.

Nun wollen wir noch die Streamradios organisieren dazu gehen wir in die Playliste:

cd /var/lib/mpd/musik/WEBRADIO/ 

Erstellen die entsprechenden Ordner:

mkdir Rock Jazz Blues Classic Pop Random\ Radio 

und verschieben die einzelnen Sender in die entsprechenden Ordner:

mv *Blues*.pls Blues
 mv *Pop*.pls Pop
 mv *Jazz*.pls Jazz
 mv *Rock*.pls Rock
 mv *Radio*.pls Random\ Radio
 mv *Classical*.pls Classic
 

Dann wieder im Volumio> Settings > Database > UPDATE MPD DATABASE; nun sollten die meisten Sender wohl organisiert in den einzelnen Ordner sichtbar sein!

Wählen Sie im Webradio eine Kategorie aus z.B. Blues und mit der Maus einen Streaming Sender > rechts wählen Add and Play und nun sollte auf Ihrem Raspi Ausgang Musik spielen entweder über Kopfhörer oder schon über Ihre angeschlossene Audioanlage. Die Qualität ist natürlich noch spärlich, weshalb wir nun den USB – DAC Dragonfly2 einstecken und den Raspi neu booten. Im Terminal from Raspi wählen wir den „Alsamixer“ und ändern mit „F6“ die Soundcard AudioQuest DragonFly und setzen die Lautstärke PCM auf 100%. Den Cinchstecker wechseln zum DragonFly und jetzt ist der Sound perfekt auf dem Revox!

In den Settings vom Volumio habe ich unter mpd „Volume normalisation auf „yes“ und Mixer Type auf „Hardware“ gesetzt.

Nun möchte ich noch, dass Volumio automatisch startet, wenn der Raspy eingeschaltet wird. Dazu erstelle ich die Datei in  /etc/init.d/

nano mpd-autoplay:

#!/bin/sh

### BEGIN INIT INFO
# Provides: mpd-autoplay
# Required-Start: mpd
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Ensures that mpd plays on startup
# Description: Starts after mpd, and uses the mpc client to tell mpd to play
### END INIT INFO
#
# Requires mpd and mpc
#
# To install, use ‚insserv mpd-autoplay‘

. /lib/lsb/init-functions

case „$1“ in
start)
mpc play
;;
stop|restart)
;;
status)
echo „Nothing to see here, move along…“
;;
*)
echo „Usage: $0 start|stop|restart|status“
exit 2
;;
esac

chmod 755 /etc/init.d/mpd-autoplay
insserv mpd-autoplay || echo „Oops – failed to install“

Test ohne die Box neu zu starten:

  • MPD soll mit einem Song aus der Playlist laufen
  • Playbackpause in MPD drücken, via den Client (Nexus oder PC)
  • Folgenden Befehl als Root ausführen:

service mpd-autoplay start

Diesen Befehl bauen wir in eine Start datei ein: start.sh

#!/bin/bash

cd /home/pi

sleep 10

cd /etc/init.d/

service mpd-autoplay start

und in der /etc/rc.local zusätzlich die Zeile:

/bin/sleep 10 && /home/pi/./start.sh

MPD sollte wieder Musik spielen! Teste mit Reboot, ob Player automatisch startet!


Nun gehts an die Arbeit alle CD’s mit der Software „Asunder“  im Flac Format auf einem Server zu speichern und in Zukunft sortiert nach Kategorie, Album, Interpret etc auf dem Revox via Raspi zu geniessen.

NAS verbinden Settings z.B.: Sourcename: LACIE; IP Adresse //192.168.178.225 ; Directory wo Musik ist: Daten/flac; Ihr username auf dem NAS und deren Passwort; Speichern und  Database updaten, ja nach Grösse geht das eine Weile!

Auf meinem Nexus 7 Tablet steuere ich via Wlan den Raspi an und habe all den Comfort den teure Air Port Systeme nicht besser bieten können! (Bilder bewusst unscharf eingestellt!)

raspify raspify2

Viel Spass mit diesem Projekt!

Archlinux auf altem Laptop Toshiba SA50-120

Auf meinem Weg durch die Linuxwelt bin ich auf Archlinux gestossen und bin begeistert von der Einfachheit des Betriebssystems. Als erstes sei gesagt, dass diese Distribution nichts für Anfänger ist, aber wenn man als Linux-User schon einige Erfahrungen mit der Kommandozeile gesammelt hat und  ohne grafische Oberfläche im Terminal arbeiten kann lernt man hier wie ein Linux – System arbeitet.
Nebst Installationen auf alten PC habe ich hier versucht einen alten Laptop Toshiba Satellite SA50-120 wieder zum Leben zu erwecken. Das Windows XP Pro war dermassen langsam, dass ich den Laptop schon vor einigen Jahren „archiviert“ habe.
Die Ueberraschung war gross, wie schnell Archlinux auf diesem alten Laptop startete und wieder voll gebrauchsfähig ist mit Libreoffice, Firefox, Thunderbird und vielen anderen Softwarepaketen die ich nun hier als Installation beschreiben werde.

Die Philosophie von Arch Linux -> https://wiki.archlinux.org/index.php/The_Arch_Way -> Simplicity is the ultimate sophistication. (~ Höchste Verfeinerung mündet im Einfachen.) — Leonardo Da Vinci

Es gibt diverse Wikis mit der Anleitung für die Installation von Archlinux und doch musste ich noch einiges dazulernen, weil sich dieses System sehr schnell weiterentwickelt. Ich versuche hier die Installation mit der Anwendung von Systemd zu beschreiben:

Vorerst lädt man sich das neueste ISO – Abbild von http://www.archlinux.org/download/ herunter (32 bit Version). Dieses ISO – Abbild beeinhaltet nur die nötigsten Programme, um ein minimales Linux-Grundsystem zu installieren. (Keine grafische Oberfläche!!) Der Rest wird dann auf dem eigenen System via Binärpakete und Konfigurationsdateien eingerichtet. Das ISO – Abbild wird dann auf CD gebrannt oder via USB Stick gespeichert.

Somit kann mit der eigentlichen Installation begonnen werden. Laptop mit dem Router am Netzwerk anschliessen um eine Internetverbindung zu gewährleisten. Wir gehen davon aus, dass wir bestehende Installationen auf dem alten Laptop überschreiben und somit alle Daten verloren gehen. Starten Sie den Laptop mit der gebrannten CD, indem Sie das Bootmedium auf CD umstellen. Nach dem Start der CD landen wir in einem Terminal den wir mal vorerst auf deutsche Tastatur umstellen:

loadkeys de-latin1

Als nächstes partitionieren wir die Festplatte: sda1 mit mindestens 15 Gb und Swap mit 500 MB:

fdisk /dev/sda
Command (m for help): n
Partition type:
p primary
e extended
Select (default) p): p
Partition number (1-4, default 1): 1
First sector (2048-.., default 2048): enter
Last sector, +sectors or +size{K,M,G} (..): +15G
Partition 1 of type Linux and of size 15 GiB is set
Command (m for help): n
..(wie zuvor bei Partition1)
Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 82
Command (m for help): p
Device    Boot    Start    End    Blocks    Id    System
/dev/sda1         2048     xxx    xxx       83    Linux
/dev/sda2         xxx      xxx    xxx       82    Linux swap /Solaris
Command (m for help): w

Wer Mühe hat mit der Partitionierung der Festplatte, weil noch andere Partitionen vorhanden sind, verwendet ein sehr gutes Tool „Gparted“ und bearbeitet vor der Installation von Archlinux die Festplatte damit!
http://gparted.sourceforge.net/download.php

Ist die Festplatte partitioniert, gehts weiter mit dem Anlegen des Dateisystems vom Typ ext4 auf der Rootpartition sda1 mit der Bezeichnung arch:

mkfs.ext4 -L arch /dev/sda1

mkswap -L swap /dev/sda2

Netzwerkverbindung herstellen:

ping -c3 www.archlinux.de

Wenn eine Fehlermeldung erfolgt, nehmen wir mal an, die Netzwerkkarte wird mit eth0 benannt und ein kabelgebundener Router vorhanden ist, können wir mit dem DHCP – Server eine Verbindung aufbauen:

dhcpcd eth0

nochmals testen:

ping -c3 www.archlinux.de

Falls ok, können wir die Rootpartition einbinden:

mount /dev/sda1 /mnt

Jetzt installieren wir das Basissystem auf unseren Laptop:

Einen Spiegelserver aussuchen. Dabei wird die Datei „mirrorlist“ zuerst gesichert und danach verändert:

cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak
nano /etc/pacman.d/mirrorlist

Am Einfachsten ist, die Zeilen löschen die man nicht braucht. (Strg+k)

Solange löschen bis der richtige Spiegelserver ganz oben in der Liste auftaucht. Speichern mit Strg+O, danach nano mit Strg+X verlassen .

Das Basissystem wird durch die Gruppe base komplett installiert.

 
pacstrap /mnt base

Damit ist das Basissystem installiert und wir erzeugen noch die fstab Datei in der die Laufwerke festgelegt werden:

genfstab -Lp /mnt >> /mnt/etc/fstab

Jetzt können wir das Installationsmedium (CD oder USB) verlassen und das neu installierte Archlinux betreten:

arch-chroot /mnt

Es folgt die Systemkonfiguration, Systemd, das neue Initsystem greift auf diese Klartextdateien zu:

Rechnername z.B:

echo Toshiba > /etc/hostname

Spracheinstellung:

echo LANG=de_CH.UTF-8 > /etc/locale.conf
echo LC_COLLATE=C >> /etc/locale.conf

Tastaturbelegung:

echo KEYMAP=sg-latin1 > /etc/vconsole.conf

Zeitzone:

echo Europe/Zurich > /etc/timezone

Der Rechnername auch hier eintragen:

nano /etc/hosts
#<ip-address>	<hostname.domain.org>	<hostname>
127.0.0.1	localhost.localdomain	localhost Toshiba
::1		localhost.localdomain	localhost Toshiba

Konfiguration von /etc/locale.gen:

nano /etc/locale.gen

und die entsprechenden locale # auskommentieren (de oder ch), anschliessend speichern und generieren:

#de_CH.UTF-8 UTF-8
#de_CH ISO-8859-1
#de_DE@euro ISO-8859-15
Weiter die locals generieren mit:
locale-gen

Nun mal die Repository Datenbank erneuern mit:

pacman -Sy

Einen Linux Kernel erzeugen:

mkinitcpio -p linux

Ein Root Passwort definieren und nicht vergessen!!

passwd

Den Bootloader installieren hier am Beispiel von Grub:

pacman -S grub-bios
grub-mkconfig -o /boot/grub/grub.cfg
grub-install /dev/sda

Archlinux verlassen und zum Installationsmedium zurückkehren:

exit
umount /dev/sda1
reboot

Wenn alles funktioniert hat startet nun Archlinux bis zur Konsole, wo Sie mit Root als Benutzer und Ihrem Rootpasswort einsteigen.

myhost login: root
password: geheim
[root@myhost ~]# _

Glückwunsch und Welcome zur Welt von Archlinux!

Das graphische System folgt nun mit:

pacman -S xorg-server xorg-xinit xorg-utils xorg-server-utils
pacman -S xorg-drivers

wählt man „all“ so sucht sich das System selber den geeigneten Video Driver!

Als grafische Oberfläche wählte ich xfce hier können später andere grafische Oberflächen installiert werden:

pacman -S xfce4

Nun installieren wir Systemd mit:

pacman -S systemd

Nun konfigurieren wir systemd mit dem graphical.target:

systemctl enable graphical.target

Um die Daemonen in systemd zu starten müssen folgende Pakete installiert sein:

pacman -S syslog-ng acpid dbus networkmanager alsa-utils avahi cups gdm cairo human-icon-theme

Fehlende Pakete werden hier erwähnt und können gleich mit pacman -S installiert werden!

Nnn aktivieren wir die Daemonen in Systemd:

systemctl enable syslog-ng.service
systemctl enable acpid.service
systemctl enable NetworkManager.service
systemctl enable cupsd.service
systemctl enable dbus.service
systemctl enable dhcpcd@eth0.service
systemctl enable vconsole.service
systemctl enable cronie.service
systemctl enable gdm.service
systemctl enable autologin@ttyl.service
systemctl enable cairo.service

Nun noch das alte initsystem löschen:

pacman -R initscripts
pacman -S systemd-sysvcompat

Einen Benutzer hinzufügen:

adduser

Alle Fragen indivduell beantworten!

gpasswd -a "Benutzer" audio

Nochmals ein „reboot“ ausführen und dann das grafisches Interface starten:

startxfce4

Haben wir eine grafische Oberfläche, dann hats geklappt und wir installieren weiter Softwarepakete in der Konsole, indem wir mit „su“ auf Rootebene gehen:

pacman -S firefox firefox-i18n-de
pacman -S thunderbird thunderbird-i18n-de
pacman -S libreoffice  (enter wählt alle pakete!)
pacman -S libreoffice-de (deutscher Zusatz)
pacman -S ttf-dejavu
pacman -S alsa-lib
amixer set Master,0 85% unmute
aplay /usr/share/sounds/alsa/Front_Center.wav
pacman -S flashplugin mplayer vlc rhythmbox brasero icedtea-web-java7
pacman -S gimp
reboot

Beim Startfenster Gnome durch XFCE4 ersetzen ansonsten eine Fehlermeldung kommt, dass Gnome nicht installiert ist.
Da Archlinux ständig weiterentwickelt wird, können die „Rolling release“ ständig ergänzt werden mit dem Befehl zum updaten:

pacman -Syu

Lautsprecher feintuning kann nun via alsamixer auf seine persönlichen Bedürfnisse eingestellt werden. Gelöscht werden Pakete mit dem Befehl:

pacman -R <paketname>

Aufräumen von nicht mehr verwendeten Paketen wird mit folgenden Befehlen durchgeführt:

pacman -Qdtq und nachher: 
pacman -Rcns `pacman -Qdtq`

Programme die als AUR – Pakete verfügbar sind, können im AUR (de) als Tarball heruntergeladen werden, wie z.B. tvbrowser, dass als  tvbrowser*.tar.gz vorhanden ist und dann entpacken:

tar -xvzf tvbrowser_3.3.2.tar.gz
cd /home/benutzer/tvbrowser_3.3.2
makepkg --asroot
(falls Fehlermeldung kommt "java-runtime" fehlt, dies zuerst installieren mit pacman -S java-runtime)
pacman -U tvbrowser_3.3.2.pkg.tar.gz

Nun ist tvbrowser im Anwendungsmenue unter Multimedia eingetragen und kann von dort gestartet werden. Fertig!

Archlinux kennt so keine Grenzen weiter ausgebaut zu werden individuell auf eigene Bedürfnisse!

Ich habe beim Toshiba eine PCMIA Karte von Netgear eingesteckt, diese ermöglicht mir durch installieren von netcfg einen problemlosen WiFI Empfang.

Viel Spass!!

Multiboot in Linux defekt

Wer sein Startmenue im Multiboot System zerschossen hat, kann vielleicht mit dieser Vorgehensweise alles wieder retten.

Meldungen wie z.B. „>rescue grub“ müssen also keine Panik mehr auslösen!

Dazu brauchen wir eine Live CD oder USB und kopieren die Grub2 Files. Vorgehen:
1.  Live Cd resp USB starten
2. Terminal öffnen
3. Partition herausfinden wo z.B. Ubuntu installiert ist:      sudo fdisk -l (Ubuntu bei mir auf sda6)
4. Partition mounten wo Ubuntu drauf ist:           sudo mount /dev/sda6  /mnt
5. Grub nochmals installieren:              sudo grub-install –root-directory=/mnt/ /dev/sda
6. Reboot
7. Grub erneuern:                                       sudo update-grub

Partitionsbezeichnung wie in meinem Beispiel auf eigenes System anpassen!! Das wärs schon ma,l mein System läuft wieder problemlos.

Selectline in Virtualbox installieren

Als Anwender von Linux Betriebssystemen im Geschäftsbereich stellt sich immer wieder mal die Frage: wie kann man ein Windows basiertes Software Paket in der Linuxwelt betreiben?

Virtualbox (zurzeit 3.2.6) ist da sicher eine gute Wahl. Die Installation der Virtualbox in Ubuntu 10.04 läuft automatisch ab, wenn man das Binary für Linux Hosts herunterlädt.

Nun startet man die Virtualbox und installiert mit einer neuen Windows Lizenz die entsprechende Windows Version in meinem Fall war es Windows XP Pro mit SP3 von der CD. Windows runterfahren.

In der Virtualbox stelle ich das Netzwerk auf Netzwerkbrücke und gebe den Ordner an, indem sich das Selectline auf dem Server befindet. Nun habe ich Verbindung zum Internet und kann die üblichen Updates von Microsoft auf den neuesten Stand bringen. Windows Zusatzprogramme wie Messenger, Player etc deinstalliere ich, alles was nicht für den Tageseinsatz einer Geschäftsinstallation benötigt wird um das System so leicht wie möglich zu machen.

Innerhalb Windows stelle ich im Explorer unter Extras eine Netzwerkverbindung zu dem Selectline Ordner her,  wo sich das Setup von Selectline befindet. Ein Click auf Setup startet die Installation wie es bekannt ist bei einer normalen Netzwerkkonfiguration.
Bde Engine etc etc aktivieren und als Arbeitsplatzinstallation starten.

Am Schluss die üblichen Installationen wie Drucker und Email konfigurieren.
Oben im Fenster auf Geräte klicken und die Gast Erweiterungen installieren. Dadurch wird die Tastaur und Maus besser angesteuert.

Ein Test zeigt, dass alles einwandfrei funktioniert. Selectline schliessen fertig.

Das Windows nun als virtuellen Zustand speichern und beenden (obere Ecke X). Ein Sicherungspunkt erstellen. Virtualbox beenden.

Ein neuer Start von Virtualbox und Start der gesicherten Windows Version bringt in Sekunden das System wieder zum vergangenen Punkt. Selectline starten voilà.