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.
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
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
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