Basisinstallation des Raspberry Pi

Installation Raspbian

Basis dieser Projekte ist das Raspbian-OS in der aktuellen Ausgabe Stretch. Die Installation erfolgt nach Standardprozedur, ausführlich beschrieben in der Online-Dokumentation. Hier kurz zusammengefasst die Arbeitsschritte mit Bordmitteln (dd) unter Linux. Die Einrichtung erfolgt "headless", d.h. es werden nur Stromversorgung und Netzwerk am Raspi angeschlossen.

ggf. Verzeichnis erstellen

mkdir ~/raspbian && cd "$_"

Herunterladen und entpacken der Lite-Version:

wget https://downloads.raspberrypi.org/raspbian_lite_latest
unzip raspbian_lite_latest

oder

Herunterladen und entpacken der Voll-Version:

wget https://downloads.raspberrypi.org/raspbian_latest
unzip raspbian_latest


Nun geht es ans Aufspielen des Images. Ein Fehler in einem der nächsten Arbeitsschritte gefährdet das Dateisystem des PC !!! Nach Möglichkeit sollte dies in einer virtuellen Umgebung (Virtualbox, VMWare, o.ä) ausgeführt werden. Zur besseren Übersicht werden jetzt alle Wechseldatenträger vom PC getrennt.

Mit dem Befehl:

df -h
verschafft man sich einen Überblick über die verbundenen Laufwerke.

Nach Anschließen des Kartenlesers und erneutem df -h sollte ein neues Laufwerk mit einer oder mehreren Partitionen aufgelistet werden.

df -h

Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf
[...]
/dev/sdX1        56M     20M   37M   36% /media/user/boot
/dev/sdX2        29G    8,2G   19G   31% /media/user/ec2aa3d2-eee7-454e-8260-d145df5ddcba

X steht für a..z je nach Gerät

Aushängen der einzelnen Partitionen (incl. Partitionsnummer):

umount /dev/sdXn

Imageversion und Gerätebezeichner (!!!) anpassen. Daten auf die Karte schreiben (ohne Partitionsnummer):

sudo dd bs=4M status=progress if=2019-09-26-raspbian-buster[-lite].img of=/dev/sdX

Nach der Fertigmeldung die SD-Karte aus dem PC entfernen und durchatmen.

Setup Raspbian

Anmelden in der Security-Shell

In den aktuellen Raspbian-Versionen ist der SSH-Server per default deaktiviert. Im einfachsten Fall kann die erste Kommunikation via Tastatur und Monitor erfolgen. Folgende Login-Daten sind zu verwenden:

  • user: pi
  • Passwort: raspberrz
Da das Layout für QWERTY - Tastaturen eingestellt ist, kann man bei der Blindeingabe des Passwortes sonst verzweifeln.


Soll auf Tastatur und Monitor verzichtet werden, bietet sich folgender Workaround an:

  • Image auf die SD-Karte schreiben
  • Die SD-Karte aus dem Leser entfernen und wieder einstecken (Einhängen der Partitionen)
  • In der Partition /boot eine leere Datei ssh erzeugen
  • Zur Einrichtung des WLan die Datei wpa_supplicant.conf in /boot erstellen
  • Während des nächsten Bootens im RPi werden die Einstellungen übernommen und
    die Hilfsdateien gelöscht

Die Dateien können im PC-Terminal wie folgt erstellt werden:

cd /media/$USER/boot
cat << EOF | tee -a  ssh
EOF
cat << EOF | tee -a  wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=DE
network={
 ssid="mySSID"
 psk="myPassword"
}
EOF

Anschließend SSID und Passwort anpassen. Im Raspberry 3 A+/B+ können an dieser Stelle auch die Daten der 5GHz-Verbindung eingegeben werden. Voraussetzung ist, dass die Wifi-Region country=DE gesetzt wird.

nano wpa_supplicant.conf


SD-Karte in den RPi setzen

Bei verbundenem Ethernet oder WLan erfolgt die Verbindungsaufnahme via PC-Terminal.
ssh pi@raspberrypi

Die Sicherheitsabfrage des SSH-Client mit "yes" bestätigen und mit Eingabe des Passwords raspberry als user pi anmelden.


Textbasierte Konfiguration des Pi via SSH:

sudo raspi-config

Die üblichen Einstellungen:

  • Expand Filesystem -> neu: automatisch beim ersten booten
  • Change User Password
  • Hostnamen ändern
  • Localisation Options [de_DE.UTF-8 UTF-8]
Einen unikaten Hostnamen vergeben z.B: raspi5

  • Finish
  • Reboot

Im Terminalfenster des PC am Pi anmelden:

ssh pi@raspi5

System aktualisieren und abmelden:

sudo apt update
sudo apt upgrade
exit


Troubleshooting

Warnhinweis zu einer früheren Zuordnung Host<=>IP beheben

ssh-keygen -R 192.168.xx.yy


Falls keine Verbindung zustande kommt, funktioniert evtl. die Namensauflösung im Netzwerk nicht. Dann empfiehlt es sich, dem Pi eine feste IP im Router zuzuordnen.

ssh pi@192.168.xx.yy (zugewiesene IP)

Finetuning

Anmeldung per Keyfile

...ist der bequemere und sicherere Weg über die Security Shell.

Falls noch nicht vorhanden, wird ein Schlüsselpaar auf dem PC erzeugt: => ~/.ssh/

ssh-keygen -t rsa -b 4096
  • Verzeichnisse bestätigen
  • Passphrase vergeben !

Übertragen des öffentlichen Schlüssels zum Pi

ssh-copy-id -i ~/.ssh/id_rsa.pub pi@raspi5
in das Verzeichnis: /home/pi/.ssh/authorized_keys

Verbindungsaufnahme ohne Passwort prüfen

ssh pi@raspi5

Anmeldung mit Passwort verbieten

cat << EOF | sudo tee -a /etc/ssh/sshd_config

# user-Einträge für Keyfile-Anmeldung
PasswordAuthentication no
UsePAM no
MaxStartups 3:30:10
EOF
sudo service ssh restart

Die Anmeldung sollte jetzt ohne Passwort funktionieren. Lediglich einmal je PC-Sitzung ist die Eingabe der Passphrase erforderlich. Der Wert MaxStartups behindert Massenattacken auf den SSH-Server. Sinnvoll, wenn man vorhat, den Dienst über das Internet freizugeben.




WLan einrichten (RPi3)

Netzwerkdaten im Klartext (!!!) eintragen

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
network={
    ssid="mySSID"
    psk="GeheimesPasswort"
}

Energiesparmodus des WLan-Moduls deaktivieren

cat << EOF | sudo tee -a /etc/network/interfaces

# Energiesparmodus des WLan-Moduls deaktivieren
pre-up iw dev wlan0 set power_save off
post-down iw dev wlan0 set power_save on
EOF

Einstellungen aktivieren

sudo ifdown wlan0 && sudo ifup wlan0




Aktivitäts - LED (RPi 2)

Die rote LED zeigt beim Pi2 per Voreinstellung den Betriebszustand an. Statt einer grell rot l euchtenden Anzeige, kann auch die CPU-Aktivität signalisiert werden.

sudo crontab -e

Zeile anhängen

@reboot echo cpu0 | sudo tee /sys/class/leds/led1/trigger

RPi neustarten

sudo reboot

Update Raspberry Pi 3:
Beim RPi3 ist die Ansteuerung der PWR-LED fest mit dem Ausgang des Reset-Chip APX803 verdrahtet, sodass diese Möglichkeit hier nicht mehr besteht ( s. Schaltung ).




Nützliche Werkzeuge

Prozessüberwachung htop (in Stretch schon enthalten)

sudo apt-get install htop

Dateisynchronisation rsync (in Stretch schon enthalten)

sudo apt-get install rsync




Verzeichnisse anzeigen

Einer der meist verwendeten Befehle in der Kommandozeile ist ls -al zur Anzeige von Verzeichnisinhalten. Häufig ist dafür in Linux der Alias ll gesetzt. In Raspian fehlt diese Voreinstellung. Die notwendigen Einträge können in der .bashrc wie folgt angehangen werden:

cat << EOF | tee -a ~/.bashrc 
# Alias - Auflistung von Dateien
alias ll='ls -al'    #sortiert nach Namen
alias lld='ls -atl'  #sortiert nach Datum, aktuell oben
alias llr='ls -artl' #sortiert nach Datum, aktuell unten
EOF

Nach erneutem Anmelden stehen die Aliase zur Verfügung.

VNC-Fernsteuerung

VNC - Server einrichten

Zur graphischen Fernsteuerung ist in der Vollversion von Raspian bereits der VNC-Server vorinstalliert. In der raspi-config kann der Autostart beim booten eingestellt werden. Sofern kein anderes Display am RPi angeschlossen ist und grundsätzlich graphisch ferngesteuert wird, wäre dies die richtige Wahl.

Ist am RPi bereits ein Touchscreen angeschlossen, läuft dieser als Desktop:0. Um eine separate Fernsteuerung zu ermöglichen, wird der Server manuell als Desktop:1 mit angepasster Auflösung gestartet.

vncserver -geometry 1920x1080 -depth 24 :1

Stoppen des Servers:

vncserver -kill :1


Alias zum manuellen Starten einrichten

Alias zum Start über die SSH-Shell an die .bashrc anhängen:

cat << EOF | tee -a ~/.bashrc
 
# Alias - Start VNC-Server
alias vnc='vncserver -geometry 1920x1080 -depth 24 :1' # Start mit Desktop - Auflösung
alias vnd='vncserver -geometry 1366x768 -depth 24 :1'  # Start mit Laptop - Auflösung
alias vnx='vncserver -kill :1'                         # Beenden
EOF

Nach erneutem Anmelden stehen die Aliase zur Verfügung.




VNC-Server beim booten starten

Startskript erstellen

cat << EOF | tee ~/.vnc/startvnc
vncserver -geometry 1920x1080 -depth 24 :1
EOF
chmod +x ~/.vnc/startvnc

Der Server wird im Kontext des Users pi gestartet

crontab -e
Zeile anhängen
@reboot ~/.vnc/startvnc




Troubleshooting

Tastaturlayout:

Bei der Eingabe von Sonderzeichen kann es zu Problemen kommen. Mit dem voreingestellten Tastaturlayout wird bei einigen Tasten ein zusätzliches KeyRelease-Event mit falschem Keycode übermittelt. Dadurch kommt es bei Programmen die dieses Event auswerten (bspw. der Lazarus-IDE-Editor) zu Fehlinterprtationen des Keycodes (Test: xev im Terminal des X-Servers)

Abhilfe: Tastaturlayout über die graphische Oberfläche einstellen

Menü→ Einstellungen→ Tastatur und Maus→ Tastatur→ Keyboard Layout→ Deutschland/Deutsch




VNC-Client einrichten (Linux Mint)

Download der aktuellen Version und in ein beliebiges Verzeichnis des Users entpacken. Bspw:

mkdir ~/VNCViewer
Executable-Bit setzen
chmod +x ~/VNCViewer/VNC-Viewer-*-Linux-x64

Client starten

~/VNCViewer/VNC-Viewer-*-Linux-x64
ggf. Desktop - Starter erstellen

IP-Adresse / Servername:Desktopnummer eingeben

raspi5:1

Am RPi anmelden als:

→ user: pi
→ passwort: sudo-passwort

nach oben