go seven !

RaspberryPi als PPTP-VPN-Server

Wenn man (aus welchem Grund auch immer) Zugriff auf ein anderes Netzwerk haben möchte, das direkte Mitlesen beim Surfen im Internetcafé unterbinden will oder einfach nur mal eine andere IP-Adresse braucht, dann ist man sicher schon mal auf den Begriff VPN gestoßen. Ein VirtuellesPrivatesNetzwerk – Netzwerktunnel oder so ähnlich. Nun kann man sich bei einem Anbieter für teuer Geld Produkte (CyberGhost, AvastVPN etc.) verkaufen lassen, in die man nicht „hineinschauen“ kann. Oder man greift sich seinen RaspberryPi und macht es selber. Es ist einfacher als gedacht!

Ich setze mal voraus, dass Raspbian oder eine vergleichbare Distribution installiert ist. Internetzugriff ist natürlich auch essentiell.

Als Erstes bringen wir den Pi auf den aktuellen Stand:

sudo apt-get update ; sudo apt-get upgrade ; sudo apt-get dist-upgrade

Dann testen wir die Vorbedingungen:

sudo modprobe ppp-compress-18

Keine Fehler? Dann kann es ja losgehen. Wir installieren den Server:

sudo apt-get install pptpd

Wenn dies erfolgreich geschehen ist, müssen noch ein paar Anpassungen in Konfigurationsdateien durchgeführt werden. Als erstes nehmen wir und die pptp.conf vor:

sudo nano /etc/pptp.conf

Darin wird folgende Zeile angepasst:

localip 192.168.0.1

Die IP-Adresse muss natürlich durch die Adresse des Pi’s ersetzt werden (per ifconfig herausfinden). Mit Strg+x schließen und speichern. Jetzt öffnen wir /etc/ppp/pptpd-options :

sudo nano /etc/ppp/pptpd-options

Und geben folgendes ein am Ende der Datei ein:

ms-dns 8.8.8.8
ms-dns 8.8.4.4

Die IP-Adressen könne so gelassen werden (wenn der Pi wie meinem im Rack hängt (PCextreme.nl o.ä.)) sollten aber hinter einem Router durch dessen IP ersetzt werden. Speichern und in der Datei /etc/ppp/chap-sectrets die Nutzernamen und Passwörter festlegen.

sudo nano /etc/ppp/chap-secrets

Beispiel:

# Secrets for authentication using CHAP
# client              server     secret                                  IP adresses
nutzername    *                 passwort                            *

Speichern. Und Service neustarten.

sudo service pptpd restart

Jetzt musst die IP-Weiterleitung aktiviert werden. Dazu wird /etc/sysctl.conf editiert:

sudo nano /etc/sysctl.conf

Jetzt net.ipv4.ip_forward=1 suchen oder einfügen. Speichern. Als letzten schreiben wir noch folgendes in /etc/rc.local vor exit 0:

sudo sysctl net.ipv4.ip_forward=1
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

nano-vpn-rc.local

Jetzt den Pi neustarten und: Fertig!

Temeraturgesteuerter Lüfter für den RaspberryPi

Ich habe meinen RaspberryPi im Einsatz für die Hausautomation und als Datencenter. Damit er und die Zusatzkomponenten (Netzteil, Relaiskarte…) nicht „rumliegen“ habe ich alles in ein Gehäuse gesetzt. Dieses habe ich sehr kompakt gehalten. Allerdings gibt es dabei einen Nachteil: Die Hitze von Netzteil und Pi stauen sich darin (trotz Lüftungsöffnungen). Da ich dies vorhergesehen habe kaufte ich gleich noch einen Lüfter um diesen automatisiert einzusetzen – d.h. immer wenn die CPU-Temperatur des RaspberryPi über 50°C steigt, wird der Lüfter für 15 Sekunden aktiviert, dann erfolgt eine neue Abfrage der Temperatur, falls diese < 50°C ausfällt, schaltet der Lüfter aus und wartet bis zum nächsten Temperaturanstieg.

Die Hardware dazu ist simpel. Am Pi hängt ein PicoBorg und dahinter ein günstiger 5V-Lüfter von Amazon. Wesentlich interessanter ist ist die Software-Seite. Ich habe herumprobiert mit einem Shell-Script, dieses stürze aber oft nach einigen Minuten ab (und der Lüfter blieb an…). Deshalb versuchte ich es mit Python und war erfolgreich. Das Script sieht nun so aus:

import RPi.GPIO as GPIO
import time
import os
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT) 

def getCPUtemperature():
res = os.popen(‚vcgencmd measure_temp‘).readline()
return(res.replace(„temp=“,““).replace(„‚Cn“,““))

SOLL_temp = „50.0“ 

while 1:
if (getCPUtemperature() >= SOLL_temp):
GPIO.output(18, True) 
time.sleep(15) 
continue
else:
GPIO.output(18, False) 
time.sleep(20)

In meinem Fall wird GPIO 18 verwendet – das müsste man anpassen, wenn ein anderer PIN verwendet werden soll. Ich habe das Script als „status.py“ in „/home/pi/lueftersteuerung/“ abgelegt und per sudo chmod +x status.py ausführbar gemacht. Wenn man nun noch in „/etc/rc.local“ vor dem „exit 0″ folgendes einträgt wird der Script automatisch beim Start geladen: „sudo python /home/pi/lueftersteuerung/status.py“.

eGalax Touchscreen am RaspberryPi

Wie die regelmäßigen Leser hier wissen besitze ich einen RaspberryPi. Neulich war es weider mal Zeit, diesen an einen Touchscreen anzuschließen. Leider wird eben dieser nicht „out of the box“ unterstützt (Stand: August 2013 Kernel 3.6.11). Nun gibt es die arg umständliche Variante, den Kernel neu zu kompilieren – oder man ersetzt einfach alle relevanten Daten mit einem von mir vorkomiliertem Kernel. Dies ist relativ einfach und soll in der folgenden Anleitung beschrieben werden.

Voraussetzungen

Vorgehen

Als erstes fahren wir den Pi herunter und setzen die Speicherkarte in den Kartenleser ein. Es sollten 2 Laufwerke erscheinen. Dies sind die 2 Partitionen auf der SD-Karte. Die kleinere davon enthält die Datei namens kernel.img, welche wir auch im Archiv von oben wiederfinden. Wir kopieren also (nachdem wir ein Backup des alten Kernel angelegt haben) die kernel.img-Datei auf die kleine SD-Partition.

boot-partition

 

Jetzt benötigen wir ein Terminal. Darin öffnen wir den Datei-Manager las Root.

terminal

 

Es öffnet sich ein Dateimanagerfenster. Mit jenem verschieben wir alle Dateien aus „firmware“ nach /lib/firmware und dann alle Dateien aus „modules“ nach /lib/modules .

Jetzt brauchen wir noch die aktuellste Firmware… von https://github.com/raspberrypi/firmware/archive/next.tar.gz . Diese einfach entpacken nach /opt/vc .

Fertig! Euer Pi sollte starten. Eventuell muss euer Touchscreen noch kalibriert werden. Dazu nutzt ihr xinput_calibrator .

Fedora auf dem RaspberryPi – pidora

pidora_raspberry_pi_fedora_remix_horizontal1Wiedermal eine neue Distro für den RaspberryPi: pidora – ein Neologismus aus raspberryPI und feDORA. Hier ein paar Release-Infos:

Pidora 18 (Raspberry Pi Fedora Remix)
============================================
Pidora is a Linux software distribution for the Raspberry Pi computer. It contains software packages from the Fedora Project (specifically, the Fedora ARM secondary architecture project) compiled specifically for the ARMv6 architecture used on the Raspberry Pi, packages which have been specifically written for or modified for the Raspberry Pi, and software provided by the Raspberry Pi Foundation for device access.

Pidora 18 (Raspberry Pi Fedora Remix) will be the fourth version of the Remix released.

Release date: (May 22nd 2013)
Fedora package collection version: 18
Kernel version: (3.6.11)
Architecture: armv6hl

Sources: http://pidora.ca/

What is Pidora
====================
Pidora is a combination of Fedora software, with or without third-party software, that any community member can create at any time.
(More Info in the source link)

Source: http://fedoraproject.org/wiki/Remix

Weitere Infos gibt es bald!

Website: pidora.ca

Kamera-Board für RaspberryPi verfügbar

So mal wieder was neues vom RaspberryPi. Ab heute morgen ist es möglich das Kamera-Board für den Winzling zu erstellen. Derzeit (verbessert mich wenn ich falsch liege) noch nicht in deutschen Shops, aber immerhin bei Farnell und RS-Components. Für mich auf alle Fälle von Interesse.

[youtuber youtube=’http://www.youtube.com/watch?feature=player_embedded&v=GImeVqHQzsE‘]

Wie nun, wenn man ein Kamera-Board hat, jenes nutzbar machen? Unter Raspbian ist dies relativ einfach:

sudo apt-get update

sudo apt-get upgrade

sudo raspi-config

image-2Somit ist das Modul aktiv – nach einem Reboot.

via