Mittwoch, 6. November 2024

Raspberry Pi - WLAN Überwachungskamera mit MotionEyeOS (Zero W)

In diesem Beitrag werde ich auf das MotionEyeOS eingehen, welches eine Linux-Distribution für Einplatinencomputer ist und diese in ein Videoüberwachungssystem verwandelt. 


Der Anwendungsfall ist relativ einfach, die Software soll eine Bewegung vor der Kamera erkennen und diese Bilder auf der SD-Karte speichern und ggf. weitere Aktionen (z.B. E-Mail Benachrichtigung) ausführen.

Folgende Hardware wird benötigt:

Wie genau das Kamera Modul angeschlossen wird, habe ich bereits in dem Beitrag "Raspberry Pi - Camera Modul V2.1" beschrieben.

Hinweis: Am Besten als erstes die SD-Karte mit dem MotionEye Betriebssystem beschreiben, dann muss man später den Pi nicht wieder zerlegen.

MotionEyeOs Image Flashen

1. Neueste Version von MotionEyeOS herunterladen (entsprechend dem verwendeten Raspberry Pi-Modell): https://github.com/ccrisan/motioneyeos/releases

2. Micro SD-Karte in einem Computer einlegen und den Raspberry Pi Imager starten und "Use custom" auswählen


3. Jetzt die zuvor heruntergeladene Motioneyeos-Version (.img.xz Datei) auswählen und flashen (SD Card -> Write). Dies dauert ca. 1-2 Minuten.

Damit anschließend die WLAN-Konfiguration und der SSH-Zugriff funktioniert, bitte die nachfolgenden Beiträge beachten:

 

MotionEyeOS starten und einrichten

Wenn alles funktioniert hat, startet der Raspberry Pi jetzt mit dem installierten MotionEyeOS. Eine direkte Verbindung mit einem Monitor ist nicht unbedingt erforderlich beim ersten Start, ist aber hilfreich um die aktuell zugewiesene IP-Adresse auslesen zu können.

Die nachfolgende Konfiguration kann jetzt über das komfortable Webinterface erfolgen. Hierfür einfach die jetzt zugewiesene IP-Adresse in der Adresszeile des Browser eingeben (192.168.1.100) und als "admin" einloggen.

Benutername: admin
Passwort: <leer>

 

Folgende Einstellungen kann ich für den Raspberry Pi Zero W empfehlen:
  • Zeitzone: General -> Time Zone -> Europe Berlin
  • Feste IP-Adresse: Network -> IP Configuration > Manual Static IP
  • FTP Server deaktivieren: Services -> Enable FTP Server off
  • Kamera Name: Video Device -> Camera Name -> <Name> 
  • Video Auflösung: Video Device -> Video Resolution -> 1024×780
  • Bilder Pro Sekunde: Video Device -> Frame Rate -> 8
  • Aufbewahrungsfrist Bilder: Still Images -> Preserve Pictures -> For One Month
  • (Optional) E-Mail Benachrichtigung: Motion Notifications -> Send An Email (ggf. funktioniert hier nur der SMTP-Port 25)


Zugriff auf die Bilder per Windows Explorer (IP-Adresse des Raspberry Pi) im Windows Explorer eingeben. Zum Beispiel: \\192.168.1.100


Donnerstag, 24. Oktober 2024

Rsync - Sicherung von Dateien (auf dem Synology NAS) mit Fortschrittsbalken (Rsync Progress)

Mit Hilfe von rsync lassen sich z.B. Dateien auf einem NAS kopieren. Dies ist in der Regel komfortabler, wie mit cp/scp (siehe auch Rund um Linux - Einige nützliche Befehle für die Shell I).


Hierfür muss vorab auch das Rsync-Konto unter "Dateidienste" aktiviert werden, denn sonst kommt es zu dem Fehler "rsync @ERROR: account system disabled". 


Anschließend muss der nachfolgende rsync Syntax verwendet werden.

rsync [user]@[server]::[modul]

  • [user] - FTP-Account
  • [server] - IP/Domain
  • [modul] - FTP-Account
  • -e ssh - SSH-Verbindung nutzen
  • --progress - Fortschrittsbalken anzeigen
  • -a Archive Mode - Erhalt von Dateiattributen
  • -u update - Überschreibt Dateien nur, falls diese aktueller sind
  • -v verbose - Erweiterte Ausgabe
  • -z compress - Komprimierung, um Bandbreite zu sparen


Beispiel für ssh:
rsync /home/deck/pwdata.kdbx -e ssh --progress redleffer@192.168.1.50::redleffer/pwdata.kdbx

Beispiel für ftp:
rsync /home/deck/pwdata.kdbx --progress redleffer@192.168.1.50::redleffer/pwdata.kdbx


Sonntag, 20. Oktober 2024

Steam Deck - Video Vorschau im KDE File manager "Dolphin" aktivieren

Standardmäßig gibt es in der Dateiverwaltung Dolphin keine Vorschaufunktion für Videos bzw. Filme. Mit Hilfe der nachfolgenden Anleitung lässt sich diese aber auch beim Steam Deck im Desktop Modus sehr schnell aktivieren.

  1. Konsole öffnen (CTRL+ALT+T)
  2. Herunterladen von ffmpegthumbs für Dolphin:
    • sudo steamos-readonly disable
    • sudo pacman-key --init
    • sudo pacman-key --populate archlinux
    • sudo pacman-key --populate holo
    • sudo pacman -S ffmpegthumbs
  3. Dolphin öffnen und die folgenden Einstellungen vornehmen
    • Einrichten => Dolphin einrichten
    • Allgemein => Vorschauen
    • Videodateien (ffmpegthumbs) aktivieren
    • Anpassungen mit OK bestätigen

Bitte beachtet die Hinweise in meinem Beitrag Steam Deck - Veracrypt installieren (install ArchLinux packages)!


Samstag, 19. Oktober 2024

OpenSSH - Authentifizierung mittels Public-Key (Ubuntu, Raspberry Pi)

In diesem Artikel beschreibe ich, wie man den SSH-Zugang z.B. bei einem Raspberry Pi (Raspberry Pi Stretch Lite - Installation incl. SSH Fernsteuerung) für eine Authentifizierung mittels Public-Key-Verfahren konfiguriert. Basisinformationen zum Thema findet ihr in meinem Artikel Asymmetrische Kryptografie - Grundwissen (Zertifikate, OpenSSL, Public-Key-Authentifizierung, RSA).


Auf dem Client muss ein Schlüsselpaar erstellt werden, der öffentliche Schlüssel muss dann  auf den Server übertragen werden. Damit ein Login ohne Passwort möglich ist, muss der Server für die Schlüssel-Authentifizierung eingerichtet werden.

Schlüsselpaar am Client generieren mit ssh-keygen:
ssh-keygen -b 4096

Ich empfehle an dieser Stelle den Standardspeicherort beizubehalten, so kann der SSH-Client den SSH-Schlüssel automatisch bei der Authentifizierung finden.

Die Passphrase ist optional, welche zur Verschlüsselung der privaten Schlüsseldatei verwendet wird. Es wird empfohlen, den Schlüssel mit einer Passphrase zu schützen!

Jetzt muss der öffentliche Schlüssel auf den Server übertragen werden. Dies erfolgt mittels ssh-copy-id:
ssh-copy-id -i .ssh/id_rsa.pub pi@192.168.1.110

Der öffentliche Schlüssel befindet sich jetzt am Server, dies kann man mittels ssh testen:
ssh -i .ssh/id_rsa pi@192.168.1.110

Hinweis: Es wird hier jetzt nach Passphrase gefragt, mit der der Schlüssel geschützt ist!

Um seinen Server gegen Brute-Force-Angriffe zu schützen, sollte man die Passwort-Authentifizierung deaktivieren.

Hierfür muss die sshd-Konfiguration angepasst werden. Danach ist es nicht mehr möglich sich mit einem Passwort anzumelden:
sudo nano /etc/ssh/sshd_config
PasswordAuthentication no
sudo service ssh restart


Freitag, 4. Oktober 2024

Steam Deck - Install HP printer and scanner driver for ArchLinux (CUPS)

Nach dem ich mein Steam Deck auch als Desktop-Ersatz nutze, muss natürlich auch mein HP Multifunktions-Farblaserdrucker funktionieren. Grundlegende Infos zur Installations von Paketen findet ihr in meinem Beitrag Steam Deck - Veracrypt installieren (install ArchLinux packages).

Die nachfolgenden Schritte konnten erfolgreich unter VERSION_ID=3.5.19, BUILD_ID=20240422.1 von SteamOS (cat /etc/*release) durchgeführt werden.

Disable Read Only Steam Deck:
sudo steamos-readonly disable

Hauptpakete installieren:
sudo pacman -S cups ghostscript gsfonts hplip

Starten des CUPS printing service:
sudo systemctl enable --now cups 

Nach der Installation kann man im Browser unter http://localhost:631/admin den CUPS OpenPrinting Service öffnen und beliebige "Drucker hinzufügen".

HP Treiber plug-in installieren (root privileges are important here):
su root
sudo hp-setup -i

Ändern des root Passwort (falls noch nicht erfolgt):
sudo su
passwd

Jetzt dem nachfolgenden Anweisungen in der Konsole folgen!

Mit der letzten Frage, kann man sofort testen ob der Drucker funktioniert:
Would you like to print a test page (y=yes*, n=no, q=quit) ? y

Damit auch der Scanner funktioniert, muss noch unseren User (deck) zur Gruppe lp und Gruppe Scanner hinzufügen:
sudo gpasswd -a "$USER" lp
sudo gpasswd -a "$USER" scanner

Software zum Scannen installieren:
sudo pacman -S sane xsane simple-scan

Mit dem folgenden Befehl kann man überprüfen, ob ein Scanner gefunden wird:
sudo sane-find-scanner

Anschließend muss noch folgende Konfiguration angepasst werden:
sudo nano /etc/sane.d/dll.conf (hpaio => hinzufügen bzw. einkommentieren)

HPLIP Plugin Download and Install Utility installieren (root privileges are important here):
su root
sudo hp-plugin

Anschließend ist ein Scan direkt per GUI oder Konsole möglich:

sudo scanimage -L

Weitere Infos zu SANE finden sich auch unter: https://wiki.archlinux.org/title/SANE/Scanner-specific_problems#HP.


Steam Deck - E-Mail-Client (Thunderbird) mit Exchange / Office 365 verwenden (Linux)

Mit Hilfe von DavMail ist es möglich einen beliebigen E-Mail-Client (z.B. Thunderbird) mit Microsoft Exchange oder Office 365 zu verwenden. DavMail ist ein POP/IMAP/SMTP/Caldav/Carddav/LDAP-Gateway und kann unter Linux (somit auch Steam OS), MacOSX und Windows eingesetzt werden.


Ich selber verwende einen Hosted Microsoft Exchange von IONOS, und möchte auch mit meinem Steam Deck alle Vorteile der E-Mail- und Groupware-Lösung von Microsoft unter Steam OS nutzen.

Der Download erfolgt unter http://sourceforge.net/projects/davmail/files/, es muss die "davmail-version.zip" heruntergeladen werden.


Auf der Webseite von DavMail gibt es eine sehr gute Anleitung, siehe DavMail Setup on linux. Die ZIP-Datei muss nur entpackt und anschließend DavMail gestartet werden (./davmail).

Anschließend muss nur noch die Exchange OWA URL in der Konfiguration eingetragen werden. Siehe auch DavMail configuration.


Für die anschließende Konfiguration von Thunderbird (Mail, Kalender und Kontakte), bietet DavMail wieder ein sehr gute Anleitung.

02.11.2024: Update - Bash Script (davmail.sh) zum Starten

#!/bin/bash
#
echo '------------------------------------'
echo '| Start DavMail Steam OS           |'
echo '| (c) Sebastian Hemel, 2024        |'
echo '------------------------------------'
echo ' '

cd /home/deck/Tools/davmail
./davmail


Donnerstag, 3. Oktober 2024

Steam Deck - Veracrypt installieren (install ArchLinux packages)

Das Steam Deck lässt sich in einem Desktop-Modus starten und kann als "normaler" PC verwendet werden. So lässt sich das gesamte System, einschließlich der Systempakete, optimieren. In diesem Beitrag möchte zeigen, wie man VeraCrypt (Software zur Datenverschlüsselung) installieren kann.


Wie startet man in den Desktop?

Das "STEAM-Menü" öffnen, "Ein/Aus" auswählen und dann "Zum Desktop wechseln" anklicken.

Wie kann man sudo-Befehle ausführen?

Das "Terminalfenster" öffnen und mit dem Befehl passwd ein sicheres Passwort vergeben. Anschließend kann sudo überall dort eingesetzt werden, wo eine Erhöhung der Rechte erforderlich ist.

Wichtige Hinweise!

Kann man ArchLinux-Pakete auf dem Steam Deck installieren?

Ja, aber es ist nicht die empfohlene Vorgehensweise. Steam OS löscht die Systempartition nach jedem Update automatisch und eine erneute Installation ist erforderlich!
Flatpak ist daher die beste Möglichkeit, Pakete über der "Discover-App" auf dem Steam Deck zu installieren.

Valve bietet hierzu auch selber ein FAQ (Häufig gestellte Fragen zum Steam-Deck-Desktop) an, siehe https://help.steampowered.com/de/faqs/view/671A-4453-E8D2-323C.

Einrichten des Steam Deck-Systems

Wie oben bereits erwähnt, wird dies nach jedem Systemupdate rückgängig gemacht! Ich empfehle daher, ggf. ein Skript zu erstellen.

Systempartition des Steam Decks beschreibbar machen:
sudo steamos-readonly disable

Pacmans Schlüsselbund initialisieren:
sudo pacman-key --init

Füllen des Pacmans Schlüsselbund mit den Standard-Arch-Linux-Schlüsseln:
pacman-key --populate archlinux
pacman-key --populate holo

Aktualisieren der Systempakete:
sudo pacman -Syu

Jetzt kann man ArchLinux-Pakete auf dem Steam Deck installieren.

Veracrypt installieren

Die Installation kann jetzt mit dem folgenden Befehl erfolgen:
sudo pacman -S veracrypt


Damit ich meine verschlüsselten Festplatten mounten kann, habe ich die folgenden Ordner angelegt:

sudo mkdir /mnt/data
sudo mkdir /mnt/studium

Anschließend ist ein mount/dismount mit den folgenden Befehlen über die Konsole möglich:

sudo veracrypt -m=nokernelcrypto /home/deck/__disks/Storage-DATA-NEW /mnt/data
sudo veracrypt -m=nokernelcrypto /home/deck/__disks/Storage-STUDI-NEW /mnt/studium


sudo veracrypt -d /home/deck/__disks/Storage-DATA-NEW /mnt/data
sudo veracrypt -d /home/deck/__disks/Storage-STUDI-NEW /mnt/studium

 

Beispiel Script

#!/bin/bash
#
echo '------------------------------------'
echo '| Start veracrypt Steam OS         |'
echo '| (c) Sebastian Hemel, 2024        |'
echo '------------------------------------'
echo ' '

sudo veracrypt -m=nokernelcrypto /home/deck/__disks/Storage-DATA-NEW /mnt/data
kill -9 $PPID