Raspberry Konfiguration

Für Windows Administratoren wird es erst mal "anders", denn wenn man den RasPi nicht per Tastatur und Mail und Monitor bedient, sondern per SSH, dann bleibt nur die Kommandozeile. Aber auch das ist gar nicht mal so schwer.

Stromversorgung!  der Micro-USB oder USB-C Anschluss darf nicht darüber hinweg täuschen, dass eine stabile Energieversorgung die Stabilität direkt beeinflusst. mit 500mA eines normalen USB-Anschluss kommen Sie nicht aus.
DOCUMENTATION > HARDWARE > RASPBERRYPI > POWER  https://www.raspberrypi.org/documentation/hardware/raspberrypi/power/README.md

Hier die wesentlichen Einstellarbeiten:

Vorgang Beschreibung

IP-Adresse

Wird per DHCP vergeben. Kann statisch über die Datei "CMDLINE.TXT" auf der SD-Karte gesetzt werden, indem am Ende folgende Zeile addiert wird:

ip=192.168.178.123::192.168.178.1:255.255.255.0:RASPI1:eth0:off

Die Bedeutung der Wert ist

ip=<HostIP>:<netboot-ip>:<def-gatway>:<subnetmask>:<hostname>:<Interface>:<autoconfig>

Anmeldung

Per SSH oder an der Console:

Default Username: pi 
Default Password: raspberry

Um SSH zu aktivieren , muss man auf der SD-Karte in der Wurzel eine Datei "ssh.txt" anlegen.

Als Admin arbeiten

UserAccountControl (uAC) ist nicht nur eine Windows Funktion, sondern auch bei Linux ist es üblich, dass man auf der Console sich zwar als Root oder Admin anmelden kann, aber dennoch nicht alle Rechte hat. Progamme müssen mit SuDO gestartet werden, damit sie privilegierte Aktionen ausführen können. SuDO muss also vor jeden Aufruf. Auch wenn RasPi per Default hier nicht erneut die Eingabe eines Kennworts erwartet, kann es aber schon nerven. Über folgende Zeile bekommt man eine SuDO-Shell, und erspart sich weitere SuDO-Voranstellungen.

sudo -i

# Alternativ
sudo su

Nutzen Sie diesen Weg aber nur wenn sie mehrere Befehle als Admin absetzen wollen. Mit "exit" verlassen Sie die privilegierte Shell

Update aus dem Internet

Idealerweise Download aus dem Internet, indem der PI sich aus dem Internet die Daten holen darf.

Das Update kann auch über RasPi-Config unter "Advanced Options" ausgeführt werden.

sudo apt-get update
sudo apt-get upgrade -y

Dieser Weg erfordert "Internet Access" ohne Proxy und Authentifizierung. Die Downloads erfolgen per HTTP. Bestehende eigene Skripte bleiben aber bestehen. Insofern ist dies sicher einfacher als die aktuellste Version des Image neu auf die SD-Karte zu schreiben.

Wenn Sie nach Updates googlen, dann stoßen Sie früher oder später auch auf "rpi-update". Über den Weg können die frühe Updates (auch Unstable) installieren. Tun Sie dies nur, wenn Sie bei der Weiterentwicklung helfen wollen und können. Reguläre Updates kommen schon über die ersten beiden Befehle.

sudo apt-get install git-core -y
sudo wget http://goo.gl/1BOfJ -O /usr/bin/rpi-update
sudo chmod +x /usr/bin/rpi-update
sudo rpi-update

Auto Update

Rasbian ist ein Linux mit vielen Paketen, die auch nicht alle fehlerfrei sind. Daher sind Updates auch hier wichtig. Wenn Sie nicht regelmäßig dies manuell machen wollen, sollten Sie auch hier ein "AutoUpdate" konfigurieren.

# Aut Update Paket installieren
sudo apt install unattended-upgrades

# Update konfigurieren
sudo dpkg-reconfigure -plow unattended-upgrades

# Testen
sudo unattended-upgrade -d

Initialkonfiguration

Die Ersteinrichtung mit Änderung des Kennworts, Ländereinstellung (z.B. DE_DE.uTF8), die Zeitzone (z.B. Europe/Berlin) und Tastatur (z.B. DE-DE) erfolgt über:

sudo raspi-config

Wichtig ist hier, dass das Dateisystem ggfls. erweitert wird (Reboot erforderlich). Hier können Sie auch einstellen, ob der Pi direkt zum "Desktop" bootet (X11)

Fest IP-Adresse

Die IP-Adresse bezieht der Pi per DHCP. Allerdinge möchte ich den Pi auch unterwegs per Kreuzkabel am PC für Demos etc. verwenden. Daher habe ich die Datei "/etc/network/interfaces" wie folgt angepasst:

sudo nano /etc/network/interfaces
auto lo
iface lo inet loopback
iface eth0 inet dhcp

auto eth0:1
iface eth0:1 inet static
address 169.254.10.10
netmask 255.255.0.0

Nun versucht der Pi erst mal eine IP-Adresse per DHCP zu beziehen, aber wenn das nicht klappt, dann nimmt er die APIPA-Adresse 169.254.10.10. Die Wahrscheinlichkeit, dass mein PC die gleiche Adresse nimmt, ist 1:65535. Damit kann ich leben.

Interessant. Der RaspberryPI versucht auch nach einer "Off-Zeit" von 5 Tagen immer noch die alte per DHCP zugewiesene Adresse zu nutzen.

WiFi

Mit dem passenden WiFi Stecker (Bei mir ein Edimax EW-7811un) ist die Einrichtung relativ schnell passiert. Ohne GuI oder Desktop erfolgt dies aber über eine Textdatei.

#Systeminfo ausgeben und nach WLAN Adapter suchen
dmesg

# WLAN0 Interfache suchen
ifconfig

# SSIDs suchen
iwlist wlan0 scan

# Interfaces konfiguriren
sudo nano /etc/network/interfaces

In der Datei sind natürlich die richtigen WPA SSIDs und Kennworte zu pflegen.

# Auszug aus /etc/network/interfaces

auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-ap-scan 1
wpa-scan-ssid 1
wpa-ssid "RASPI"
wpa-psk "RASPIKEY"
# wpa-conf /etc/wpa.conf 

Wer hingegen WPA2 nutzt muss eine Konfigurationsdatei anlegen und in der Datei /etc/network/interfaces einen Verweis addieren

# Inhalt von /etc/wpa.conf

network={
   ssid="SSID-Name"
   proto=RSN
   key_mgmt=WPA-PSK
   pairwise=CCMP TKIP
   group=CCMP TKIP
   psk="WPA-PASSWORD"
}

Achtung: der folgende  Befehl über IP beendet die Verbindung

sudo invoke-rc.d networking stop && sudo invoke-rc.d networking start

Das "-" am Anfang ist wichtig, damit beim Stop die Shell nicht durch den Verbindungsverlust beendet wird.

Alternativ kann der Raspberry natürlich auch AccessPoint sein. Dazu installiert man erst mal DHCP und aktiviert diesen auf der WiFi Schnittstelle. Unterwegs nutze ich aber lieber ein Kreuzkabel zum Notebook zum Spielen.

Shutdown

Auch der Pi "sollte" nicht einfach ausgeschaltet sondern herunter gefahren werden. Leider gibt es dazu per Default keinen Schalter oder anderen externen Trigger.

sudo shutdown -hP now

Damit fährt der Pi herunter. Der einzige zuverlässige Indikator ist die Bildschirmausgabe, Es gibt leider keine LED, die anzeigt, wenn der Pi herunter gefahren ist. Die ACT-LED (Activity) ist leider kein sicherer Indikator, denn Sie zeigt eigentlich Aktivität auf der SD-Karte an.

Die meisten RaspberryPi haben aber eine LAN-Anbindung. Wenn der Pi herunter gefahren wurde, dann ist auch der Link weg, selbst wenn die Kabelverbindung besteht. Richtig ""Ausschalten" kann man den PI per Software allerdings nicht.

RasPi neustarten

Der RasPi hat zwar einen "RESET"-Knopf aber ein Unix-System sollte man immer geordnet herunterfahren. Einfacher ist aber einfach der Reboot per Software.

sudo reboot -n

Autostart

Wenn Code beim Starte des Pi direkt aufgeführt werden soll, dann muss er in einer "Autostart"-Datei verlinkt werden. Die rc.local muss dazu editiert werden.

sudo nano /etc/rc.local

Hier addiert man direkt oberhalb des "Exit 0" die eigenen Aufrufe.

python /home/pi/meinscript.py

ähnlich muss mit Modulen wie z.B. der 1-Wire-untersatützung verfahren werden, die per Default nicht geladen werden. Es gibt aber noch weitere Stellen, über die Linux Prozesse starten kann.

  • /etc/inittab
    Diese Datei steuert über Runlevels die gestarteten Prozess. Am Ende findet man z.B. die folgende Zeile, die auf Port 23 einen TTY-Server startet. Bei einigen Erweiterungsboards muss diese Zeile z.B. entfernt werden, um, dne GPIO-Port frei zu bekommen.
#Spawn a getty on Raspberry Pi serial line
T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
  • /boot/cmdline.txt
    Hier können bestimmte Dienste und Prozesse aktiviert oder deaktiviert werden. Hier meine Defaultinhalte (zur Lesbarkeit umgebrochen)
dwc_otg.lpm_enable=0 
console=ttyAMA0,115200 
kgdboc=ttyAMA0,115200 
console=tty1 
root=/dev/mmcblk0p2 
rootfstype=ext4 
elevator=deadline 
rootwait

RDP und VNC

Wer nicht mehr per SSH arbeiten möchte, kann sich auch per RDP mit dem RasPi verbinden.. Man muss nur ein kleines Modul installieren.

sudo apt-get install xrdp

Der RasPi kann auch per VNC ferngesteuert werden. Wenn Sie lieber RDP nutzen und VNC nicht brauchen, können Sie den Service auch entfernen.

sudo apt-get purge realvnc-vnc-server

Apt-Get installiert die abhängigen Pakete tightvncserver, xfonts-base und xrdp mit insgesamt 11MB Speicherbedarf

Module laden

Der RasPi bringt viele Module schon mit aber lädt diese nicht automatisch, da sie ja bestimmte GPIO-Pins blockieren könnten, z.B. 1-Wire. Module können manuell einfach mit "Modprobe modulname" geladen werden.

modprobe w1-gpio
modprobe w1-therm

Für eine dauerhafte Einbindung müssen Sie die Module einfach in der Datei /etc/modules addieren.

sudo nano "/etc/modules

Addieren "w1-gpio" (ohne Anführungszeichen)
Addieren "w1-therm" (ohne Anführungszeichen)

Beim nächsten Neustart sind die Module automatisch mit an Bord.

Startup Service managen

Ein nettes Paket zum Verwalten der Startup-Skripte ist RCCONF, welches wie folgt installiert werden kann.

apt-get install rcconf

Browser tauschen

RasPi bringt per Default den Browser Midori mit, der manchmal aber Probleme macht, insbesondere wenn man mit dme Browser per Localhost z.B. PHP einrichten will. Es ist aber recht einfach den Midori z.B. durch iceweasel zu ersetzen, der auf dem Firefox-kern basiert.

apt-get remove midori
apt-get install iceweasel

ReadOnly SD

Linux schreibt wie Windows immer Änderungen auf den Massenspeicher, z.B. Logs, Temp-Dateien etc. Eine SD-Karte ist aber nur für eine bestimmte Anzahl an Schreibvorgängen vorgesehen und altert daher schnell. Wenn der RasPi nicht sauber herunter gefahren wird, kann das Dateisystem korrupt werden. Wer also einen RasPi nur für einfache Aufgaben hernimmt und nicht schreiben muss, kann versuchen die Aktivitäten zu unterbinden oder umzuleiten.

Weitere Links