Änderungsstand: 2024-04-06
Diese Einträge beziehen sich auf RaspiOS „Bookworm“.
Verfügbare Infos (wird fortlaufend vervollständigt):
- 1. SSH-Port ändern
- 2. Statische IP-Adresse vergeben
- 3. Swap
- 4. Externes Laufwerk einbinden
- 5. Samba einrichten
- 6. NVMe Boot
- 7. System von SD-Card auf NVMe am Raspi selbst kopieren (diesmal nicht mittels Raspi Pi Imager)
- 8. ASM1166 NVME-SATA Adapter am Raspi (dieser Adapter funktionierte am Ende am Raspi NICHT!!!)
1. SSH Port ändern:
sudo nano /etc/ssh/sshd_config
Ich suche nun folgenden Eintrag:
#Port 22
Diesen Eintrag ändere ich folgend:
Port 12345
Strg-x, y, Enter
Port 12345 ist ab nun der Port, der für den SSH-Zugang verwendet wird.
Dieser Port, so wie er in diesem Beispiel angegeben wurde, sollte natürlich nicht so verwendet werden! Bitte einen eigenen, freien Port verwenden!!!
sudo systemctl restart ssh
Im Terminal mit dem neuen Port anmelden – fertig.
2. Statische IP-Adresse vergeben:
sudo nmcli c show
Nun lese ich den zugewiesenen Namen meiner Schnittstelle ab:
NAME UUID TYPE DEVICE
Wired connection 1 03538099-72b3-3f27-af7f-8fcd6f89b121 ethernet eth0
Ich verwende dementsprechend „Wired connection 1“.
sudo nmcli c mod 'Wired connection 1' ipv4.addresses 192.168.1.150/24 ipv4.method manual
sudo nmcli con mod 'Wired connection 1' ipv4.gateway 192.168.1.1
sudo nmcli con mod 'Wired connection 1' ipv4.dns "192.168.1.1"
sudo nmcli c down 'Wired connection 1' && sudo nmcli c up 'Wired connection 1'
3. Swap:
Mitunter kann es sinnvoll sein, den Swap etwas zu erweitern. Ich verwende diese Möglichkeit an meinem Test-Raspi, der nur 1GB Ram besitzt, in Verbindung mit einer SSD als Systemplatte. Bei Verwendung einer SD-Card deaktiviere ich meist den Swap um unnötige Schreibzugriffe zu vermeiden.
Ich verwende als Swap meist den doppelten Wert des verbauten Rams.
sudo nano /etc/dphys-swapfile
Folgende Zeile suchen:
CONF_SWAPSIZE=100
Und ändern in:
CONF_SWAPSIZE=2048
Strg-x, y, Enter
sudo reboot
Test:
free -h
Swap deaktivieren:
sudo systemctl disable dphys-swapfile
sudo reboot
Swap wieder aktivieren:
sudo systemctl enable dphys-swapfile
sudo reboot
4. Externes Laufwerk einbinden:
Laufwerk mittels USB anschließen. Achtung! Immer ein Laufwerk mit einer ext. Spannungsquelle verwenden (notfalls mittels Adapter)! Ich verwende für die Testreihe eine SSD. Dann:
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 119,2G 0 disk
├─sda1 8:1 0 256M 0 part
└─sda2 8:2 0 119G 0 part
mmcblk0 179:0 0 29,8G 0 disk
├─mmcblk0p1 179:1 0 256M 0 part /boot
└─mmcblk0p2 179:2 0 29,6G 0 part /
Wichtig ist die Ausgabe in diesem Fall von sda1 und sda2. Das ist meine SSD, welche ich nun neu partitioniere:
Alle vorhandenen Daten des Laufwerkes werden gelöscht!
sudo parted /dev/sda "mklabel gpt"
- Yes
Formatieren als ext.4 Laufwerk:
sudo mkfs.ext4 /dev/sda
- y
Checken, ob auch alles soweit funktioniert hat:
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 119,2G 0 disk
mmcblk0 179:0 0 29,8G 0 disk
├─mmcblk0p1 179:1 0 256M 0 part /boot
└─mmcblk0p2 179:2 0 29,6G 0 part /
Jetzt mounte ich das Laufwerk nach /mnt/ssd:
(ssd ist meine dafür verwendete Bezeichnung)
sudo mkdir -p /mnt/ssd
sudo mount /dev/sda /mnt/ssd
sudo chmod -R 777 /mnt/ssd/
Zur Erklärung, da immer wieder Fragen aufkommen und die gängigsten Beispiele:
- 777: Jeder kann Lesen, Schreiben, Ausführen (rwx rwx rwx).
- 755: Der Besitzer, die Gruppe und andere Personen können Lesen –> Schreiben und Ausführen nur Besitzer (rwx rx rx).
- 600: Nur der Eigentümer kann Lesen und Schreiben (rw – -).
Auto-Mount:
Zuerst muss ich die UUID meiner SSD feststellen:
sudo blkid
Als Ausgabe bekomme ich:
/dev/sda: UUID="4x659dk3-0egs-xxdd-ghpe-9f4583196fk1" BLOCK_SIZE="4096" TYPE="ext4"
Meine UUID lautet demzufolge: 4x659dk3-0egs-xxdd-ghpe-9f4583196fk1
Nun trage ich die nötigen Sachen in der fstab ein:
sudo nano /etc/fstab
Folgendes trage ich am Ende ein:
# ext. ssd einhängen
UUID=4x659dk3-0egs-xxdd-ghpe-9f4583196fk1 /mnt/ssd ext4 auto,nofail,sync,users,rw 0 0
Strg-x, y, Enter
sudo mount -a
Zum Test, ein obligatorischer Reboot:
sudo reboot
Nach dem Start ist meine SSD unter dem erstellten Mountpoint verfügbar.
5. Samba einrichten:
Benutzer pi (nur für Samba) einrichten:
sudo su
useradd pi
passwd pi
2x Passwort eingeben
usermod -g users pi
Optional (für Terminalzugriff [ich benötige das nicht] ):
usermod -s /bin/bash pi
exit
Samba-Freigabe:
Ich richte die SMB-Freigaben ein, damit ich meine Medien mittels Netzwerk auf meinem Server kopieren kann. Mein Benutzername ist pi.
sudo apt update && sudo apt upgrade -y
sudo apt install samba samba-common smbclient -y
Check, ob alles passt:
sudo service smbd status
Als wichtige Ausgabe erhalte ich:
Active: active (running)
Ggf. Strg-c drücken.
Samba ist nun installiert. Auf zur Konfiguration:
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf_old
sudo nano /etc/samba/smb.conf
Folgendes füge ich ein:
[global]
workgroup = WORKGROUP
security = user
client min protocol = SMB2
client max protocol = SMB3
Strg-x, y, Enter
SMB-Freigabeverzeichnis einrichten:
Ich habe eben meine SSD als Mount zu /mnt/ssd gesetzt. Dieses Verzeichnis verwende ich und setze die Freigabe meines Samba-Freigabeordners (sharedfolders) für den Benutzer pi:
sudo mkdir -p /mnt/ssd/sharedfolders
sudo chown -R pi:pi /mnt/ssd/sharedfolders
Oder optional:
sudo chmod -R 770 /mnt/ssd/sharedfolders
Achtung! Dieser Freigabeordner /mnt/ssd/sharedfolders ist auf dem Raspi selbst nur noch mittels Benutzer pi und root verwendbar (Lesen und Schreiben)! Das trifft nicht für den Hauptordner /mnt/ssd zu. Dieser kann in meinem Beispiel mit jedem Benutzer verwendet werden.
sudo nano /etc/samba/smb.conf
Folgendes trage ich am Ende dieser Datei ein:
[shared]
comment = Samba-Pi-Freigabe
path = /mnt/ssd/sharedfolders
browseable = yes
read only = no
Strg-x, y, Enter
Achtung! –> Das Freigabeverzeichnis für den Ordner /mnt/ssd/sharedfolders lautet nun shared. Soll das Freigabeverzeichnis sichtbar für andere Kuchen heißen, muss die Zeile [shared] in [Kuchen] geändert werden!
sudo service smbd restart
sudo service nmbd restart
SMB-Passwort erstellen:
sudo smbpasswd -a pi
Optional: Deaktivieren des pi-Users für Samba-Zugriffs:
sudo smbpasswd -d pi
Optional: Re-Aktivieren des pi-Users für Samba-Zugriffs:
sudo smbpasswd -e pi
sudo chown -R pi:pi /mnt/ssd/sharedfolders
Die SMB-Freigabe kann nun verwendet werden und ich kann mittels Windows-Rechner darauf zugreifen (Bsp.: \\192.168.1.200\shared).
sudo reboot
6. NVME Boot:
Optional:
sudo rpi-eeprom-update
Essentiell bzw. förderlich:
sudo raspi-config
- 6 (Advanced Options)
- A4 (Boot Order)
- B2 (NVMe/USB Boot) selektieren
- Ok wählen
- A4 (Boot Order)
Die Bootreihenfolge wird nun geändert und es sollte nun auch relativ schnell gehen.
Optional (nur für Raspi5!) : Die Geschwindigkeit der NVMe anpassen (wird offiziell NICHT empfohlen):
sudo nano /boot/firmware/config.txt
Folgendes dort einfügen ( arm_boost=1 steht schon drin):
# Run as fast as firmware / board allows
arm_boost=1
## PCI-EXPRESS-Port auf Gen3 setzen
dtparam=pciex1_gen=3
Test Geschwindigkeit (meine NVME heißt snvme0n1):
sudo apt install hdparm -y
sudo hdparm -tT /dev/nvme0n1
Test am Raspi5, mit Gen3:
Test folgt...pi@pi:~ $ sudo hdparm -tT /dev/nvme0n1
/dev/nvme0n1:
Timing cached reads: 7032 MB in 2.00 seconds = 3517.94 MB/sec
Timing buffered disk reads: 2474 MB in 3.00 seconds = 824.56 MB/sec
pi@pi:~ $
Test am Raspi5, ohne Gen3:
Test folgt...pi@pi:~ $ sudo hdparm -tT /dev/nvme0n1
/dev/nvme0n1:
Timing cached reads: 7006 MB in 2.00 seconds = 3505.50 MB/sec
Timing buffered disk reads: 1252 MB in 3.00 seconds = 417.13 MB/sec
pi@pi:~ $
Test am Raspi4, ohne Gen3:
pi@OMV:~ $ sudo hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 2124 MB in 2.00 seconds = 1062.03 MB/sec
Timing buffered disk reads: 1122 MB in 3.00 seconds = 373.42 MB/sec
pi@OMV:~ $
7. SD-Card auf NVMe kopieren (ohne „Raspberry Pi Imager)“:
Am Terminal:
lsblk
(mmcblk0 = die Bezeichnung meiner SD-Card & nvme0n1= die Bezeichnung meine NVMe)
Die NVMe muss größer sein oder sollte zumindest die identische Größe haben, wie die verwendete SD-Card.
Dann:
sudo dd if=/dev/mmcblk0 of=/dev/nvme0n1 bs=4M status=progress
Zeitmessung: Bei einer Samsung Evo mit 128GB dauerte das Ganze knapp 23 Min. Die Übertragungsgeschwindigkeit belief sich bei ca. 94.4MB/s – 95.2MB/s.
Anschließend die Bootreihenfolge zu NVMe/USB ändern, System ausschalten, SD-Card entfernen und System wieder einschalten. Dann:
sudo raspi-config
- 6 (Advanced Options)
- A1 (Expand Filesystem)
Am Ende ein Neustart. Fertig.
Boot von SD-Card (sudo shutdown now, dann Knopf drücken und Zeitmessung, bis die Eingabeaufforderung erscheint): 29 Sekunden
Boot von NVMe (sudo shutdown now, dann Knopf drücken und Zeitmessung, bis die Eingabeaufforderung erscheint): 24 Sekunden
8. ASM1166 NVME-SATA Adapter am Raspi:
Achtung! Alle Tests schlugen fehl!
# Sichern der aktuellen dtb
sudo cp /boot/firmware/bcm2712-rpi-5-b.dtb /boot/firmware/bcm2712-rpi-5-b.dtb.bak
# Decompilierung der dtb (Warnungen ignorieren)
sudo dtc -I dtb -O dts /boot/firmware/bcm2712-rpi-5-b.dtb -o ~/test.dts
# Bearbeiten der Datei:
nano ~/test.dts
# Change the line: msi-parent = <0x2b>; (under `pcie@120000`) „(Suche nach msi-parent mit F6 –> Achtung! Datei ist 4x vorhanden – nur unter pcie@120000 ändern)“
# To: msi-parent = <0x66>;
# Then save the file.
# Recompile the dtb and move it back to the firmware directory
sudo dtc -I dts -O dtb ~/test.dts -o ~/test.dtb
sudo mv ~/test.dtb /boot/firmware/bcm2712-rpi-5-b.dtb
sudo reboot
Quelle:
https://www.jeffgeerling.com/blog/2023/how-customize-dtb-device-tree-binary-on-raspberry-pi
Zur Info: Der Start des Raspis dauert nun gefühlt 2 Minuten und dieser Adapter wird immer noch nicht erkannt! Die Abarbeitung des Tutorials hat dementsprechend nichts gebracht. Ich stellte das Ganze wieder zurück.
Nächster Test zum gleichen Thema:
sudo nano /boot/firmware/config.txt
Am Ende folgendes einfügen:
dtoverlay=pcie-32bit-dma-pi5
Auch kein Erfolg damit. Am Ende werde ich diesen Adapter erst einmal nicht verwenden. Schade eigentlich…