Inhaltsverzeichnis
Vorbereitung von Raspbian
Das gilt für viele Images, die auf Raspbian basieren.
Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition
- eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren.
- eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:
country=DE
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network=
{
ssid="name"
scan_ssid=1
psk="passwort"
key_mgmt=WPA-PSK
}
scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. - LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich
169.254.x.x
geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:169.254.1.1/16
. Dann wird der Nameraspberrypi
zu dem Raspi führen, um die erste Konfiguration durchführen zu können.
Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer
sudo raspi-config
ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern.
RaspiOS Standardbenutzer
In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt:
username:passwordhash
passwordhash stellt das verschlüsselte Passwort dar, das so generiert werden kann:
echo 'passwort' | openssl passwd -6 -stdin
"passwort" ist hierbei natürlich frei zu wählen.
Verschiedene Tricks
Statische / Dynamische IP Adresse
In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen.
Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert.
IP Adressen erneuern
Das Kommando
sudo dhclient -v
erneuert die IP Adressen der entsprechend konfigurierten Interfaces.
Wifi abschalten
In /boot/config.txt:
dtoverlay=disable-wifi
Periodische Tasks
Mit
crontab -e
editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste.
Mit
crontab -l
ruft man sich die Liste aller derzeit geplanten Tasks ab.
Spannungswarnung deaktivieren
Wenn auf der Console ständig eine Meldung erscheint wie
hwmon hwmon1: Undervoltage detected!
und es einfach beim Schreiben nervt, lässt sich das abschalten mit dem Befehl:
sudo dmesg -n 1
armhf auf arm64
Notiz:
dpkg --add-architecture armhf
Benchmarks
Einige Benchmark Kommandos:
sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run
sysbench --test=fileio --file-total-size=512M prepare
sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run
sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run
sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run
sysbench --test=fileio --file-total-size=512M cleanup
sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run
Raspberry PI mit GUI
Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm".
Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden:
apt install lightdm
und
apt install lxsession
Danach kann über
sudo lightdm
der Desktop gestartet werden oder per raspi-config das System so eingestellt werden, dass es immer in den Desktop bootet.
Nützliche tools
Was beim Benutzen des Desktops helfen kann, sind diese tools, die sich per apt install installieren lassen
- file-roller (Archivverwaltung)
- gdebi (Debian packet installer)
- gedit (Texteditor)
microSD Karten Image verkleinern
Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei:
- Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön.
- Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird.
Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe:
Voraussetzungen für diese Anleitung:
- microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch
microSD.img
- Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen.
- Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS.
- Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert.
- Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll.
Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet.
Startposition der 2. Partition ermitteln
Ich gehe davon aus, die externe Festplatte wurde in /media/pi/BackupHDD
gemounted. (Hilfe: Linux#USB_HDD)
sudo fdisk -l /media/pi/BackupHDD/microSD.img
Die Sektorangabe für microSD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288
Mounten der 2. Partition des Images
Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden:
sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))
GParted
sudo gparted /dev/loop0
In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert.
Nach Fertigstellung, klappt man die Details auf bis man den Befehl resize2fs
findet. Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.
Die Partition kann jetzt wieder freigegeben werden:
sudo losetup -d /dev/loop0
Größenanpassungen im Image mit fdisk
Es wird jetzt das ganze Image gemounted:
sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img
Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt:
sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w
Zur Kontrolle:
sudo fdisk -l /dev/loop0
/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656
Das Image kann unmounted werden:
sudo losetup -d /dev/loop0
Das Image verkleinern
Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden:
truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img
Fertig.
Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/
Die kleine Partition auf einer neuen SD Karte wieder expandieren
Der umgekehrte Weg funktioniert ähnlich, aber etwas einfacher. Wenn das verkleinerte Image auf eine neue SD Karte geflashed wurde, wird diese Karte per Kartenleser wieder an den Raspberry mit Desktop angeschlossen.
Sie sei verfügbar unter /dev/sda. Ihre 2 Partitionen sind dann /dev/sda1 und /dev/sda2.
In einem Terminal schaut man sich die Partitionierungsdaten einmal an:
sudo fdisk -l /dev/sda
Hier ist der Start der 2. Partition (/dev/sda2) zu notieren. Er sei exemplarisch 524288.
Jetzt verändert man nun wie folgt die 2. Partition:
sudo fdisk /dev/sda2 d 2 n p 2 524288 (der tatsächlich notierte Wert) [leer lassen, nur ENTER drücken] (es wird automatisch der größt mögliche Wert angenommen w
Wieder brauchen wir gparted:
sudo gparted /dev/sda2
Hier wählt man für die angezeigte Partition "Überprüfen", woraufhin man in den Details die Meldung sehen kann, dass das Dateisystem bis zum Auffüllen der Partition vergrößert wurde.
Fertig!
Bluetooth Eingabegerät verbinden
Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH:
sudo bluetoothctl
Ich erhielt hier eine Ausgabe wie:
Agent registered [bluetooth]#
Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein:
scan on
Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet:
trust E4:5F:01:A8:4C:52
connect E4:5F:01:A8:4C:52
Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit.
Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard
Raspberry PI 5 mit Debian 12 bookworm
WiFi
In dieser OS Version lässt sich das Wifi nicht mehr über die wpa_supplicant.conf einrichten. Hier muss der NetworkManager verwendet werden. Dessen config findet man hier
/etc/NetworkManager/system-connections
Alternativ kann man mit dem "Raspberry PI Imager" eine firstrun.sh erstellen, die u.A. das Wifi beim ersten Start automatisch konfiguriert.