Konfigurationen

SSH aktivieren

Um SSH in einem Image von Anfang an zu aktivieren, muss man vor dem ersten Booten des Images unter dem Folder /boot/ eine leer Date mit Namen ssh anlegen. Dies kann man über das Kommando touch erledigen:

sudo touch /pathToSDCard/boot/ssh

Wichtig unter Windows: Darauf achten, dass nicht .txt oder eine andere Endung dran pappt. Gitbash oder Total Commander sind Euer Freund.

OS Version ermitteln

cat /etc/os-release

Remote Backup vom Pi als Image ziehen

Den aktuellen Zustand des Pi kann man remote per ssh als Image ziehen. Dazu wieder eine Bash öffnen, unter Windows zum Beispiel die gitbash.

 ssh pi@192.168.20.22 "sudo dd if=/dev/mmcblk0 bs=1M | gzip -" | dd of=~/Desktop/backup20230906.gz
Der Restore eines Images auf den Pi geht nicht remote. Daher muss der Pi heruntergefahren werden, die SD Karte entnommen und das Image separat auf die SD Karte übertragen werden.

Pi Image verkleinern

Beim Verkleinern soll keine Information verloren gehen. Es dient nur der Platzverringerung für die Lagerung der Images. Wenn ein Image auf dem Pi aufgespielt wurde und der Pi läuft, kann das Image jederzeit wieder über die Einstellung "Expand Filesystem" im folgenden Konfigurationsprogramm sudo rpi-config auf das Maximum der SD Karte vergrößert werden.

Zur Verkleinerung einer abgelegten Imagedatei

 wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh

Nachkonfiguration auf dem PI

Immer zu Beginn

sudo apt update
sudo apt upgrade

Restart

sudo shutdown -r now

Halt

sudo shutdown now

OS Version ermitteln

cat /etc/os-release

APT Lock entfernen

Falls die Remote ssh Verbindung während der Installation abbricht muss man das Lock entfernen und neu aufsetzen. Es sind genau 2 Lock Dateien zu löschen

sudo rm /var/cache/apt/archives/lock

Anschließend muss die Installation neu aufgesetzt werden mit:

sudo dpkg --configure -a

Allgemeine Konfiguration ändern

Dieses Skript führt die allgemeine Konfiguration auf dem Pi aus. Hier werden sowas wie Sprache, Zeitzone, Tastaturlayout etc. festgelegt:

/usr/bin/raspi-config

File Transfer

Mit diversen Tools (rcp,rsh,…​) lassen sich Dateien vom Pi zu einem anderen Rechner und zurück transportieren. Am einfachsten funktioniert es mit scp. Dieses Werkzeug steht sowohl auf dem Pi als auch in der gitbash unter Windows zur Verfügung.

# Zum Pi kopieren
scp ./meineDatei.pdf pi@raspihostname:/home/pi/meineDatei.pdf
# Vom Pi kopieren, aktuelles Verzeichnis ist schreibbar für mich
scp pi@raspihostname:/home/pi/meineDatei.pdf .

WLAN einrichten

Die Eintragungen für das WLAN erfolgen in der Datei wpa_supplicant.conf während der Pi per Netzwerkkabel mit einem PC verbunden und gestartet ist:

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Die wpa_supplicant.conf kann beispielsweise für Freifunk Franken so angepasst werden:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=DE
network={
    ssid="franken.freifunk.net"
    key_mgmt=NONE
    priority=1
}

oder für ein eigenes WLAN nach diesem Beispiel:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=DE
network={
  ssid="FRITZ!Box 7490"
  psk="password"
  key_mgmt=WPA-PSK
}

Anschließend kann die Konfiguration ausprobiert werden:

sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf

oder über:

ip l
wpa_cli status

WLAN ändern

Netzwerk Schnittstellen ermitteln

Als erstes schauen wir welche Netzwerkschnittstellen am Pi vorhanden sind. In der Standardkonfiguration wird uns nur wlan0 interessieren.

netstat -i

WLAN Liste

Jetzt scannen über die Netzwerkschnittstelle die empfangenen WLAN IDs um zu sehen ob das zu Konfigurierende nah genug ist um empfangen zu werden.

 sudo iwlist wlan0 scan | grep ESSID

Zugangsdaten ändern

Nun sind die Zugangsdaten des WLANs im System zu hinterlegen. Dies können wir wie folgt tun:

sudo wpa_passphrase "Eure WLAN SSID" "Euer Netzwerkschlüssel" | sudo tee -a /etc/wpa_supplicant/wpa_supplicant.conf

Configdatei prüfen

Dei WLAN Konfiguration unter /etc/wpa_supplicant/wpa_supplicant.conf sollte nun Euren Netzwerkeintrag in folgender Form mit enthalten:

network={
     sssid="Eure WLAN SSID"
     #psk="Euer Netzwerkschlüssel"
     psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
}

Unter psk kann die Phasphrase des Netzwerkes im Klartext oder verschlüsselt abgelegt sein. Sinnvoll wäre natürlich die Phasphrase verschlüsselt abzulegen. Für einen ersten Test kann man aber auch erstmal den Klartext nutzen.

In der Praxis hatte ich manchmal das Problem, dass die verschlüsselte Version nicht funktionierte, kann aber nicht sagen woran es lag. Ob es ein alter Pi oder eine alte OS Version war, die die Verschlüsselung nicht unterstützte oder ob beim Verschlüsseln auf der Konsole irgendwelche Sonderzeichen Probleme bereiteten - weiß ich noch nicht.

Manchmal half das Einfügen einer separaten Zeile direkt unter psk mit folgendem Inhalt:

key_mgmt=WPA-PSK

Damit wird angegeben welches Verschlüsslungsverfahren im WLAN genutzt wird.

Aktivieren der Konfiguration

Wir können die Konfiguration aktivieren mit:

sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf

oder über:

ip l
wpa_cli status

Wenn alles weiter funktioniert, sollten wir dann aber trotzdem noch einen sauberen Restart vornehmen mit:

sudo shutdown -r now

USB - Mobile Festplatten einrichten

Für NTFS Platten installieren wir das Paket ntfs-3g - meist ist es aber jetzt schon vorhanden.

sudo apt install ntfs-3g

Dann schließen wir die Platte an, um mehr Infos zu bekommen und ermitteln die Infos wie folgt:

sudo fdisk -l

Jetzt den Filesystemtype und den Device Namen merken. Beispiele:

/dev/sda1 ntfs

Dabei ist /dev/sda1 der Device Name und ntfs der Filesystemtyp.

Wir brauchen noch die uuid vom Laufwerk, die finden wir so heraus:

sudo ls -l /dev/disk/by-uuid

Die UUID merken wir uns für später. Beispiele für UUIDs: 806203c46203BDC2 oder 37E2-62C3

Jetzt erstellen wir einen Mount Point z.B. /mnt/usb Sollen später mehr Platten angeschlossen werden, hängen wir gleich eine Nummer dran z.B. /mnt/usb0

sudo mkdir /mnt/usb

Nun wollen wir die Platte noch automatisch mounten lassen. Dazu fügen wir einen Eintrag in die fstab ein:

sudo nano /etc/fstab

Diese Zeile aufnehmen (Vorher UUID und FS Type anpassen)

UUID=806203C46203BDC2 /mnt/usb ntfs uid=pi,gid=pi 0 0

!!! Kein Reboot mit fehlerhafter Konfiguration !!!

Jetzt prüfen wir die Konfiguration

sudo mount -a

Solange Fehler kommen, bitte keinen Reboot durchführen. Es kann sonst passieren oder es wird höchstwahrscheinlich passieren, dass / und /boot nicht gemountet werden können und das System nicht mehr hochfährt. Dann geht es für Euch zurück auf Anfang! Oder ihr kennt wen der sich auskennt. Auf jeden Fall wird es schwierig wenn das automatische mounten kaputt ist.

Im Notfall Eure Zeile wieder entfernen und prüfen ob es jetzt wieder geht.

OS Upgrade (Stretch auf Buster)

OS Version ermitteln

cat /etc/os-release

Hier sieht man, welches die nächste Version ist auf die Upgraded wird: https://en.wikipedia.org/wiki/Raspberry_Pi_OS

Pakete aktualisieren

sudo apt update
sudo apt dist-upgrade -y

Firmware des Pi aktualisieren

Dieser Schritt sollte nur bei Bedarf erfolgen (von 9 auf 10 besteht scheinbar Bedarf).

sudo rpi-update

Quellen aktualisieren

Jetzt stellen wir die Quellen auf die neuen Repositories der neuen Distribution ein. Bei uns stellen wir also Stretch auf Buster in den Quellen um. Später analog halt auf den Namen der neuen Distribution.

sudo nano /etc/apt/sources.list

Wir ersetzen in der Zeile stretch durch buster und speichern und verlassen die Datei.

Jetzt wiederholen wir den Schritt für eine weitere Quellenangabe

sudo nano /etc/apt/sources.list.d/raspi.list

Wieder ersetzen wir in der Datei die aktuelle Distribution durch die nachfolgenden Distribution, speichern ab und schließen den Editor.

APT List Changes löschen

Vor dem finalen Upgrade löschen wir noch die ListChanges.

sudo apt-get remove apt-listchanges

Aktualisieren der neuen Distribution

Jetzt aktualisieren wir die Distribution aus den neuen Quellen. Es ist damit zu rechnen, dass sehr viele interaktive Abfragen kommen. Also nicht weglaufen sondern dabei bleiben.

sudo apt update
sudo apt dist-upgrade

Unsupportete Pakete löschen

sudo apt purge timidity lxmusic gnome-disk-utility deluge-gtk evince wicd wicd-gtk clipit usermode gucharmap gnome-system-tools pavucontrol

Installation aufräumen

sudo apt autoremove -y

Wenn erfolgreich dann noch das target autoclean des Paketmanagers aufrufen.

sudo apt autoclean

Und zum Abschluss neu starten mit:

sudo reboot