Update OpenSSH to Version 9.0p1 (Buster/Bullseye/Bookworm)

Seit Ende Februar 2026 gibt es bei RPiOS-Installationen älterer Bauart (Buster/Bullseye/Bookworm) folgenden SSH-Hinweis:

** WARNING: connection is not using a post-quantum key exchange algorithm.
** This session may be vulnerable to „store now, decrypt later“ attacks.
** The server may need to be upgraded. See https://openssh.com/pq.html
Linux datev 5.10.103-v7+ #1529 SMP Tue Mar 8 12:21:37 GMT 2022 armv7l

Das betrifft alle SSH-Versionen vor 9.0 und die war (in RaspberryPiOS) erst ab Oktober 2023 Standard, das betrifft also alle Buster-, alle Bullseye- und sogar einige ältere Bookworm-Versionen, siehe die Version-History, das dürften locker ein paar Millionen Installationen sein.
Anbei Skript, was ich bei mindestens 3 Installationen erfolgreich angewendet habe, auf diversen RPi-Zeros und RPi-3A+-Geräten. Wenn man das Skript über ssh selbst ausführt (was möglich ist), muss man aber den letzten Schritt („Cleaning Up“) manuell ausführen, weil die ssh-Session natürlich vorher beendet wird, bzw. neugestartet, aber man wird nicht abgemeldet.
Wichtig: Repos müssen aktuell sein, siehe Kommentar am Anfang des Skriptes.

Continue reading „Update OpenSSH to Version 9.0p1 (Buster/Bullseye/Bookworm)“

rss-center

rss-center schreibt RSS-Daten in ein JPEG. Dieses Script läuft permanent aller 5 Minuten auf einem Raspberry und zwar mit mehreren Instanzen für diverse Feeds. Die 10 neuesten Nachrichten werden aus der RSS-Datei extraiert (Ordner „rss_data“), danach werden diese 10 Nachrichten plus Zeit in eine txt-Datei geschrieben (Ordner „rss_final“). Diese Datei wird dann in imagemagick geladen und gerendert. Die Resultate (Ordner „output“) werden bei mir per rsync auf meinen Mac übertragen und dienen dort als Quellordner für den Bildschirmschoner (Bild 2), der mir also vollkommen passiv die entsprechenden Schlagzeilen liefert. Das Logo oben rechts (optional) dient zur Unterscheidung der Quellen, also „S“ für „Spiegel“, „T“ für „Tagesschau“ usw.

Continue reading „rss-center“

RPIB (Raspberry Pi Backup Script for the home folder)


#!/bin/sh

echo "Sometimes need modules: apt-get install cifs-utils"
datum=$(date +%d_%m_%y)
source=$(hostname)

# Create local share point
mkdir -p ~/RPI_Backups

# Mount the remote backup folder
sudo mount -t cifs -o rw,guest,vers=3.0 //myserver.local/myshare/myfolder ~/RPI_Backups

# Create a subfolder for this host
sudo mkdir -p ~/RPI_Backups/$source

# Create the backup with tar, excluding the backup folder itself
sudo tar --warning=no-file-changed \
  --exclude=/home/pi/RPI_Backups \
  -czvf /home/pi/RPI_Backups/$source/home_backup_$datum.tar.gz /home/pi

# Unmount the remote share
sudo umount ~/RPI_Backups

quotes-rss (Videos from RSS-Feeds)

Der Anstoss für dieses RPiOS-Projekt kam von Adafruit Quotes, das ist mehr ein Demo-Projekt für diverse Apps und Geräte. Eine deutsche Variante musste her, und auch ein bisschen strukturierter, da ich Zitat und Autor getrennt haben wollte, um gestaltungstechnisch mehr Möglichkeiten zu haben. Und ich wollte Video_looper verwenden, um die Videos automatisch abzuspielen.
Mein Feed liegt hier:http://cargologo.com/feed/quotes/data_rss.xml. Und er lässt sich auch in einen RSS-Viewer einfügen, wie NetNewsWire oder Vienna.
Das Skript lädt den Feed runter, wählt einen Eintrag zufällig aus und erstellt ein Video (anhand eines Hintergrund-Videos und einer Schrift, siehe Assets-Folder). Das Hintergrund-Video (input.mp4) bestimmt die Länge und die Bild-Grösse der erstellten Video-Datei und es könnte auch Bild-Elemente beinhalten. Meine Testumgebung hier ist das ArgonPod-Video-Case mit RPi Zero 2, der ganz gut kleine FFMPEG-Aufgaben erledigen kann, im Gegensatz zum RPi Zero 1. Die Bildschirmgrösse und die Videobildgrösse hier ist 640×480, durch entsprechende Einstellungen bei FFMPEG kann man auch HD-Videos für andere Ausgabegeräte erstellen.
Extension: mit dem Command-Argument ./quotes-rss latest kann man den letzten Eintrag forciert anzeigen lassen.
BTW: jeder andere Feed, der title- und description-entries enthält, geht natürlich auch.

Continue reading „quotes-rss (Videos from RSS-Feeds)“

Airplay-Sender: Owntone

Update 27.11.25: Pi Zero 1 und Pi Zero 2 unterstützen offensichtlich keine AirPlay-Lautsprecher mehr (siehe Bild ganz unten), ziemlich ungünstig, den die Idee war eigentlich, den kleinsten technischen Fussabdruck zu wählen, der möglich war.
Nachdem ich die SD-Karte in ein RPi 3A+ gesteckt habe, war alles wieder wie vorher.

Es gibt Hunderte Anleitungen für RPi OS, um einen AirPlay-Receiver einzurichten, oft ist die Funktionalität schon Teil des Systems (Volumio, KODI). Aber die eigentlich praktischere Variante, nämlich Audio über AirPlay zu einem vorhandenen und meist auch teuren Audiosystem zu senden, wird sehr wenig besprochen.
Owntone ist ein DAAP-MediaServer, der sich elegant über die Apple Remote-App steuern lässt.
Installationsanleitung hier: https://forums.raspberrypi.com/viewtopic.php?t=49928

Continue reading „Airplay-Sender: Owntone“

Raspiaudio+ V2

Das DAC V2 (orange) von Raspiaudio wird nicht mehr vertrieben, stattdessen gibt es jetzt die Variante V3 (blau). Die Installation ist gleich wie bei V2, siehe Forum, in meinem Fall will ich das Videolooper-Setup dokumentieren.
Hier die Auszüge aus der /boot/video_looper.ini, hw_device ist nicht nötig, aber sound = alsa muss eingeschaltet sein.


# ALSA hardware device to use for sound output. This consists of the card
# number and subdevice number separated by a comma, e.g. '1,0'. Run
# 'aplay -l' to list available devices. If empty, the default output device is
# used.
hw_device =
#hw_device = 1,0
...
# Sound output for omxplayer, either hdmi, local, both or alsa. When set to
# hdmi the video sound will be played on the HDMI output, and when set to local
# the sound will be played on the analog audio output. A value of both will
# play sound on both HDMI and the analog output. A value of alsa will play
# sound through ALSA, using the device specified in the [alsa] section above.
# The both value is the default.
#sound = both
#sound = hdmi
#sound = local
sound = alsa

In der /boot/config.txt ist nur der hifiberry-Zusatz wichtig und Onboard-Audio aus.


# Enable audio (loads snd_bcm2835)
# dtparam=audio=on

# dac
dtoverlay=hifiberry-dac

Damit ist Audio über den Miniklinken-Ausgang eingeschaltet.

IKEA-Videoframe (KODI)

Ein KODI-Server lungert schon seit Jahren bei mir rum, aber es war mal Zeit für was Aufregendes. Bei IKEA findet man Praktisches und Schönes, ein Bilderrahmen lässt sich unauffällig in ein anderes Bild-Ensemble integrieren.
Die Elektronik muss klein und vor allem ohne grosse thermische Belastung auskommen, die aktuellen SSD-Preise (hier 29 Eur für 500 GB) lassen das zu und man kann endlich die alten mechanischen HDs rauswerfen.
Softwareseitig kommt LibreELEC Version 10 für RPi 3 zum Einsatz, die anderen Varianten, Version 11 und 12 für RPi 3 funktionierten nicht auf Anhieb, und das war auch Teil des Projektes, nämlich so schnell wie möglich Out-of-the-Box loslegen zu können. Das System auf dem RPi und die Daten auf der externen SSD sind getrennt benutzbar.
Die LibreELEC-Einrichtung erfordert den WLAN-Zugang, Hostname und SMB-Service-Einstellung, das dauert eine Minute, die angeschlossene Festplatte wird als externe Quelle mit der Formatierung MS-DOS (Dateigrössen-Limitierung 4 GB) erkannt.

Als Client für die Inhalte auf einer AppleTV-StreamingBox kommt Infuse zum Einsatz, die Anmeldung erfolgt über die Option „Anonymer Login“ und dort wird die Festplatte als „Favorit“, hier „Video500“, definiert. Danach sind alle Inhalte darüber verfügbar.

Unter macOS kann man eine konstante Datenrate von ca. 10 MB/s erreichen, das wäre auch das Maximum für die RPi-Hardware, also in einer Stunde könnte man 39 GB transferieren.
Alles in allem ein sehr nützliches und vor allem zuverlässiges Gerät, ähnliche Konfigurationen benutze ich schon mehrere Jahre ohne Ausfälle. Die Gesamtkosten betragen bei heutigem Stand 75 Euro plus Mini-SD-Karte und Stromversorgung, das ist nicht zuviel für eine elegante und langlebige Lösung.

BOM:

IKEA Vaestanhed Bilderrahmen

Intenso SSD 500 GB

SATA-USB-Adapter

Raspberry Pi 3A+

Update: anderer (getesteter) Client wäre VLC (AndroidTV/AppleTV).

Preisupdate: Gesamtkosten am 20.3.2026 -> RPi 3A+ (26 EUR), Rahmen (6 EUR), SSD (78 EUR), Adapter (8 EUR) = 118 EUR.

Undervoltage-LED, external

Über dmesg kann man den „Undervoltage“-Status auslesen und an eine externe LED anzeigen lassen. Das macht Sinn bei Custom Cases, bei der die Onboard-LED nicht zu sehen ist. Ausserdem kann man seinen eigenen „Alert Mode“ definieren: blinken, leuchten, blinken-leuchten, flimmern, flackern. Testen kann man das mit diversen Netzteilen und/oder Stromversorgung über Computer-USB, die in der Regel zu gering definiert ist, um einen Raspberry Pi zu betreiben. Liegt natürlich auch am jeweiligen Modell. Achtung: die Schreibweise von „Undervoltage detected!“ ändert sich auch mal entsprechend der Raspberry-Pi-OS-Versionen, z.B. „Under-voltage detected“, dieser String muss natürlich passen.


#!/bin/bash
while [ $loop 1 ] ; do
dmesg | grep -iC 3 "Undervoltage detected!"
if [ $? != 0 ]
then
    echo "normal voltage" &>/dev/null
else
    sh /home/pi/LED/voltage-led
    echo "under voltage" &>/dev/null
fi
sleep 1
done
sleep 0
done

Avahi Service File

<?xml version="1.0" standalone='no'?>
 <!DOCTYPE service-group SYSTEM "avahi-service.dtd">
 <service-group>
   <name replace-wildcards="yes">%h</name>
   <service>
     <type>_ssh._tcp</type>
     <port>22</port>
     <txt-record>path=/home/yep/</txt-record>
     <txt-record>u=fukit</txt-record>
   </service>
 </service-group>

/etc/avahi/services/ssh.service

sudo service avahi-daemon restart

ArgonPOD-Screen and VideoLooper (Zero 1 W/Zeros 2 W)

ARGON POD Display 2.8 inch

Legacy-Version required: 32-bit-version

Installer-Script:

#!/bin/bash
sudo apt-get update
sudo apt-get install -y git
sudo rm -rf LCD-show
git clone https://github.com/goodtft/LCD-show.git
chmod -R 755 LCD-show
cd LCD-show/
sudo ./LCD28-show
echo "2.8” RPi Display (MPI2801) ... finished"

Die offizielle Anleitung befindet sich hier: https://cdn.shopify.com/s/files/1/0556/1660/2177/files/ARGON_POD_MANUAL.pdf
Backup

VideoLooper: Timer

Play one file at full hour and change back to normal one („b.mp4“) 🙂
timer.sh

#/bin/bash
mv /home/pi/video/b.mp4 /home/pi/video_off
mv /home/pi/video_off/a.mp4 /home/pi/video
# videoduration a.mp4
sleep 300
mv /home/pi/video/a.mp4 /home/pi/video_off
mv /home/pi/video_off/b.mp4 /home/pi/video

crontab

0 13 * * * /bin/bash /home/pi/timer.sh >> /home/pi/timer.log 2>&1
0 14 * * * /bin/bash /home/pi/timer.sh >> /home/pi/timer.log 2>&1
0 15 * * * /bin/bash /home/pi/timer.sh >> /home/pi/timer.log 2>&1
0 16 * * * /bin/bash /home/pi/timer.sh >> /home/pi/timer.log 2>&1