Aus SatriaWiki
Wechseln zu: Navigation, Suche

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

  1. eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren.
  2. 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.
  3. 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 Name raspberrypi 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:

  1. Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön.
  2. 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.