Kategorien
Allgemein CodeSnippet HowTo Skripte Technik

Raspberry Pi aufsetzen

Setup Raspberry Pi

Im ersten Schritt muss ein Raspbian Image auf eine SD Karte geschrieben werden.

  • Download neustes Raspbian
  • Verwende nun Etcher um es auf eine SD Karte zu schreiben

Über den Finder/Windows Explorer auf der Boot Partition eine Datei ssh anlegen (die leer ist) und die SD-Karte in den Pi stecken und starten.

Raspi Konfigurieren

Via ssh anmelden

$ ssh pi@raspberrypi

Standard Passwort lautet „raspberry“.

Als ersten Schritt sollte man den Pi konfigurieren

$ sudo raspi-config

Einstellen sollte man:

  • Passwort
  • Sprache
  • Hostname
  • Wifi
  • Tastaturlayout

SSH Login

SSH Login via id_rsa einrichten, dazu ein Unterverzeichnis .ssh anlegen und dort vom Lokalen Rechner den Inhalt von id_rsa.pub in die Datei .ssh/authorized_keys einfügen.

Falls lokal noch keine Keys vorliegen (macOS):

$ ssh-keygen

# den Anweisungen auf dem Bildschirm folgen

# Um die Passphrase in der macOS KeyChain zu speichern:
$ ssh-add -K ~/.ssh/id_rsa

Danach kann man sich an dem Pi ohne die Eingabe eines Passworts anmelden.

Share einrichten

Als erstes Samba auf dem Pi installieren

$ sudo apt-get update
$ sudo apt-get install samba samba-common-bin smbclient cifs-utils

Danach ein Verzeichnis aussuchen (z.B. /share) und dieses in der smb.conf als Freigabe festlegen.

$ sudo nano /etc/samba/smb.conf
[share]
Path = /share
Browseable = yes
Writeable = Yes
create mask = 0777
directory mask = 0777
Public = no

Noch ein Passwort für den Benutzer pi festlegen und Samba neu starten.

$ sudo smbpasswd -a pi
$ sudo samba restart

Samba Service Komplett neu starten, nachdem die Konfiguration geändert wurde:

$ sudo systemctl restart smbd.service

Aktuellen Samba Status anzeigen:

$ sudo smbstatus

Kiosk Mode

Wird der Raspberry an einem Bildschirm betrieben und soll nur zur Anzeige einer Webseite dienen, kann man diesen so konfigurieren, dass er direkt nach dem Boot Vorgang Chromium im Vollbildmodus startet und die gewünschte Seite öffnet.

Um die umzusetzen, müssen wir ein Package installieren und danach noch die Konfigurationsdatei entsprechende anpassen.

# install XDOTool
$ sudo apt-get install xdotool

# lx folder - if you don't use the user pi, adept
$ mkdir -p /home/pi/.config/lxsession/LXDE-pi/

# finally edit the autostart file
$sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart
@xset s off
@xset -dpms
@xset s noblank
@chromium-browser --incognito --kiosk http://localhost/mysite

Install a service

If you want an own service to run directly on startup, just create a service configuration file and enable the service.

# Here a service with the name dashboard will be created
$ sudo nano /etc/systemd/system/dashboard.service
[Service]
WorkingDirectory=/home/pi/dashboard
ExecStart=mydashboard start
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=dashboard
User=root
Group=root
[Install]
WantedBy=multi-user.target

With this configuration a service called dashboard will be started after boot. The command mydashboard start will be executed with root permissions in the directory /home/pi/dashboard. The service will automatically be restarted, if it crashed/stops. All logs will be written to syslog (cat /var/log/syslog | grep dashboard).

Last task is to correct the file permissions and to enable the service

$ sudo chmod u+rwx /etc/systemd/system/dashboard.service

# With this the service is enabled after reboot
$ sudo systemctl enable dashboard

# To start the service direct
$ sudo systemctl start dashboard

# To stop the service
$ sudo systemctl stop dashboard

PiDrive

Wenn ein PiDrive (oder ein USB Stick) angeschlossen ist, muss dieser Speicherplatz noch mit dem Pi verbunden werden.

Erstmal schauen wo/wie das Laufwerk verbunden ist:

$ sudo fdisk -l
...
Disk /dev/sda: 931,5 GiB, 1000170586112 bytes, 1953458176 sectors
Disk model: Elements 25A2
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Unter /dev/sda ist ein 1TB großes Medium gefunden worden.

Dieses muss jetzt partitioniert, formatiert und verbunden werden.

# Mount Verzeichnis anlegen
$ sudo mkdir /mnt/data

# Partition anlegen
$ sudo fdisk /dev/sda
- F --> zeigt Liste des verfügbaren Speichers
- n --> legt eine neue Partition an (Defaults übernehmen)
- w --> Änderungen speichern

# Platte formatieren
sudo mke2fs -t ext4 -L rootfs /dev/sda1

# Platte einbinden
$ sudo mount /dev/sda1 /mnt/data

Damit die Platte beim nächsten Start auch wieder verbunden wird, muss sie noch in fstab eingetragen werden. Dafür braucht man die UUID der Partition.

$ sudo blkid
/dev/mmcblk0p1: LABEL_FATBOOT="boot" LABEL="boot" UUID="9E2F-0678" TYPE="vfat" PARTUUID="5e4fa3db-01"
/dev/mmcblk0p2: LABEL="rootfs" UUID="edf2ea8b-042f-47f5-953e-577d8860de55" TYPE="ext4" PARTUUID="5e4fa3db-02"
/dev/mmcblk0: PTUUID="5e4fa3db" PTTYPE="dos"
/dev/sda1: LABEL="rootfs" UUID="eb34fa03-55c5-494b-ab8b-3bf7e6aa9529" TYPE="ext4" PARTUUID="067ed9f2-01"

Die benötigte UUID lautet in dem Fall eb34fa03-55c5-494b-ab8b-3bf7e6aa9529.

$ sudo nano /etc/fstab

# Zeile am Ende einfügen
/dev/disk/by-uuid/eb34fa03-55c5-494b-ab8b-3bf7e6aa9529 /mnt/data ext4 defaults,noatime,nofail 0 0

Bei Bedarf, wie oben, ein Share einrichten.

Und wenn man statt eines langen Unterverzeichnis direkt auf Root-Verzeichnis Ebene noch einen Link anlegt, ist das ganze sozusagen voll eingebunden.

$ ln -s /mnt/data /data

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.