Raspberrypi
Übersicht über aktuelle Projekte
Grundsätzliche Vorarbeiten für ein "Headless" System
Vorarbeiten
SD-Karte
Kauf
- minimal sind 16 GByte für den normalen Betrieb notwendig, 8 ist etwas zu klein!
- Samsung Pro+ sind empfehlenswert gibts leider nur als 32 GByte (je grösser desto Wear-Levelling-Algorithmus- freundlicher!)
Prüfen
- Test, ob die Speicherkarte einwandfrei funktioniert: mit https://www.heise.de/download/product/h2testw-50539
Image brennen
- Empfohlen: dotNetDiskImager_0.7.347.27_Installer.exe: https://sourceforge.net/projects/dotnetdiskimager/files/bin/
- Alternativ: Win32DiskImager-0.9.5-install.exe : https://sourceforge.net/projects/win32diskimager/
- das jeweilige aktuelle Image die SD-Karte schreiben und damit gebootet
erster Start
"headless"
- also ohne Anschluss von Monitor/Tastatur/Maus
- Dazu ist ein anderes lauffähiges System notwendig (PC/Android-Smartphone usw.)
- Man legt die für den Raspi vorgesehene Micro-SD Karte in ein anderes Gerät ein
- Es sollte die Partition "boot" erkannbar sein
- Es ist ein kleines Standard-File-System (ich glaube FAT) mit nur wenigen MByte
- Im Hauptverzeichnis legt man eine leere Datei "ssh" an
- Mit dieser SD-Karte nun starten, aber bitte nur einmal!
- Nun bei deinem Server ermitteln welche IP Adresse der RASPI gezogen hat
tail -2000 /var/log/messages | grep dhcp Mar 11 17:09:40 raib25 dhcpd: DHCPACK on 192.168.115.205 to b8:27:eb:8b:9b:0a (raspberrypi) via eth0
mit "Monitor/Tastatur/Maus"
- für die erste Konfiguration ist der Anschluss von Keyboard/Maus/Monitor notwendig. (im nächsten Kapitel eine M)
- Terminal starten
- sudo raspi-config
- (4) Localization Options
- Change Keyboard Layout
- Generic 105-key (Intl) PC
- ggf. Other ...
- German - German (eliminate dead keys)
- The default for the keyboard layout
- No compose key
- <No>
- (4) Localization Options
- den ssh Dienst dauerhaft aktivieren
- (5) Interfacing Options
- SSH
- Enable <YES>
- (5) Interfacing Options
zweiter Start
ssh Zugang nur für root
- per Putty kann man sich direkt als User "pi" mit dem Passwort "raspberry" einloggen
- Hat man mit Maus & Tastatur gestart einfach ein Terminal starten
- das Passwort des Users "pi" jetzt stark machen
passwd
neues Passwort für pi setzen (altes ist "raspberry")
- das Passwort des Users "root" jetzt stark machen
sudo passwd
neues Passwort für root setzen (ein altes wird nicht abgefragt)
- nun dem User root den Login erlauben
sudo apt-get install joe
sudo joe /etc/ssh/sshd_config
PermitRootLogin yes
sicherstellen (die entsprechende Zeile muss ABGEÄNDERT werden)AllowUsers root
sicherstellen (NUR noch User "root" kann sich per ssh einloggen! Diese Zeile muss neu eingetragen werden)
- Verhindern dass die grafische Benutzeroberfläche gestartet wird
update-rc.d lightdm disable
sudo systemctl set-default multi-user.target
- UnDo this:
systemctl set-default graphical.target
- Nun ist der erste Headless Start möglich
sudo halt
- Stromzufuhr entfernen
- Keyboard und Maus ggf. entfernen
- Neu starten durch Einstecken der Stromzufuhr
dritter Start
- Nun sollte man sich schon als "root" per Putty einloggt haben
System-Update
- Jetzt kann erstmalig ein Login per User "root" über die Netzwerkschnittstelle erfolgen.
apt-get update
apt-get upgrade
rpi-update
- Die 100 MByte Swap-Bereich abschalten
swapoff -a
service dphys-swapfile stop
systemctl disable dphys-swapfile
vnc-server
vncserver-x11-serviced.service vncserver-virtuald.service
Hostname setzen
- 2 Dateien müssen geändert werden
joe /etc/hosts joe /etc/hostname
Tipps und Tricks
Ermitteln der IP-Adresse eines frisch gestarteten RASPIs
- Ein Standard-Image meldet sich als host "raspberry" bei deinem DHCP-Server
- So kann man mit
tail -3000 /var/log/messages | grep DHCP | grep raspberry
- ermitteln wie die IP Adresse des Raspi ist
- Mit ssh nun einloggen
ssh pi@x.x.x.x # Passwort wird abgefragt, es ist "raspberry"
SD-Karten-Platz sparen
- Erst möglich wenn das System läuft
- apt-get --purge remove epiphany-browser epiphany-browser-data libreoffice sonic-pi wolfram-engine
- apt-get autoremove
smb Mount
[Unit] Description=srv-ftp [Mount] What=//192.168.115.25/web$ Where=/srv/ftp Type=cifs Options=guest,vers=1.0 [Install] WantedBy=remote-fs.target