Normale Ansicht

SSD der Nextcloud ersetzen

08. Dezember 2023 um 17:01

Der Black Friday ist für den Einzelhandel ein willkommenes Datum, um Waren an den Mann bzw. die Frau zu bringen. In dieser Zeit wird Lagerware abverkauft, um Platz für Neues zu schaffen. Der Endverbraucher profitiert meist durch Rabatte und Nachlässe auf interessante Artikel.

Angelockt durch solch ein Angebot, habe ich mir eine externe 2TB-SSD zugelegt, um den Speicher meiner Nextcloud zu erweitern. Im Vorfeld hatte ich mir hierzu schon einige Gedanken gemacht, wie ich die alte 500GB SSD durch das neue und größere Speichermedium ersetze.

Nextcloud auf dem Raspberry Pi mit SanDisk SSD (2 TB)
Raspberry Pi mit SanDisk SSD

Die perfekte Lösung für mich war das Duplizieren der Quelle mit Clonezilla. Hierbei wurden beide Festplatten an den Rechner angeschlossen, Clonezilla gestartet und mit device-device ein Duplikat erstellt. Bei diesem musste dann nur noch die Partition vergrößert werden. Da der Zielfestplatte die selbe UUID vergeben wurde, waren im Anschluss keine weiteren Maßnahmen erforderlich.

Clonezilla Auswahl device-device
Clonezilla device-device

Nextcloud AntiVirus for Files

23. November 2023 um 19:08

Heute möchte ich zeigen, wie ich meine Nextcloud mit dem Virenscanner ClamAV ausgerüstet habe. Da eine Cloud ja ein guter Verteiler von Daten ist, kann es schnell vorkommen, dass man mit einer Synchronisation viele Endgeräte unbeabsichtigt mit einem Virus infiziert. Um dies zu verhindern, bietet Nextcloud die App Antivirus for files aus dem hauseigenen App store an. Zur Nutzung der App sind jedoch ein paar Vorbereitungen auf dem Server nötig.

Da ich im privaten Alltag ausschließlich mit Linux arbeite, mache ich mir i.d.R. kaum wirkliche Sorgen um Viren, Trojaner und Co. Trotzdem möchte ich meine Cloud im höchsten Maße absichern und das System weiter härten.

Diese Anleitung bezieht sich auf eine Nextcloud-Instanz, welche auf einem Raspberry Pi mit Rasberry Pi OS gehostet ist und zeigt einen guten Ansatz, um die Verteilung von Viren zu verhindern.

Installation

Zuerst installiert man die Pakete clamav, clamav-freshclam und clamav-daemon mit folgendem Befehl.

sudo apt install clamav clamav-freshclam clamav-daemon -y

Im Anschluss muss der Dienst clamav-freshclam nochmals gestoppt werden, um die Virus-Datenbank aufzufrischen. Danach wird der Service erneut gestartet.

sudo service clamav-freshclam stop
sudo freshclam
sudo service clamav-freshclam start

Die Abfrage der Datenbank wird per Standard nun 12 Mal pro Tag automatisch ausgeführt.

Ein Check via

sudo service clamav-freshclam status

zeigt, ob der Dienst ordnungsgemäß läuft. Die Ausgabe sollte wie im Screenshot aussehen.

Terminalausgabe Service clamav-freshclam
Service clamav-freshclam

Ein weiterer Test gibt Aufschluss, ob der clamav-daemon ebenfalls korrekt arbeitet.

sudo service clamav-daemon status
Terminalausgabe Service clamav-daemon
Service clamav-daemon

Da dies bei mir nicht auf Anhieb funktionierte, musste ich diesen Service nochmals neu starten.

Dies erledigt man mit dem Befehl:

sudo service clamav-daemon restart

Natürlich sollte jetzt noch einmal der Status, wie zuvor erwähnt, abgefragt werden. Wenn beide Dienste fehlerfrei durchlaufen, kann man sich nun der Konfiguration der zuvor erwähnten App in der Nextcloud widmen.

Konfiguration

Nachdem beide Dienste korrekt arbeiten, installiert man die App Antivirus for files (Antivirus für Dateien). Unter Verwaltung -> Sicherheit wählt man folgende Einstellungen. Im Feld „Wenn infizierte Dateien während eines Hintergrund-Scans gefunden werden“ kann zwischen „Nur loggen“ oder „Datei löschen“ gewählt werden, wie mit einer infizierten Datei umgegangen werden soll.

Nextcloud Einstellungen Verwaltung Antivirus for files
Einstellungen – Antivirus for files

Das Abspeichern der Einstellungen sollte mit einem grünen „Gespeichert“ protokolliert werden. Wer das Ganze testen möchte, kann sich hierzu (Vorsicht: auf eigene Gefahr) einen Testvirus von eicar.org herunterladen und diesen in die Nextcloud hochladen.

Auf Windows-Systemen ist äußerste Vorsicht geboten, da man hier schnell vom eigenen Virenscanner in Quarantäne gesetzt wird. Diesen Test sollten nur Experten durchführen!

Nextcloud Auto Logout

16. November 2023 um 16:57

Heute möchte ich über ein sinnvolles und relativ schnell nachzurüstendes Feature zur Nextcloud berichten. Der zeitliche Aufwand beträgt nur wenige Minuten, ist aber zum Schutz der eigenen Daten eine gut investierte Zeit.

Ab und zu kam es vor, dass ich mich aus meiner Cloud nicht richtig abgemeldet, sondern nur den Browser geschlossen hatte. Beim nächsten Aufruf meiner Nextcloud stellte ich fest, dass ich plötzlich im Datenbereich bin, ohne mich vorher eingeloggt zu haben.

Mein Gedanke: Was würde passieren, wenn ein Unberechtigter so Zugriff auf alle in einer Cloud abgelegten Daten bekommt? Nicht auszudenken, der Schaden wäre wohl immens.

Damit dies nicht vorkommt, ist es sinnvoll ein Auto Logout einzurichten. Hierzu öffnet man als Erstes die config.php der Nextcloud

sudo nano /var/www/html/nextcloud/config/config.php

und trägt die folgenden Werte am Ende ein.

'remember_login_cookie_lifetime' => 1296000,
'session_lifetime' => 3600,
'session_keepalive' => false,
'auto_logout' => true,

Eine Session wird auf 30 Minuten sowie die Lebensdauer des Login-Cookies auf 15 Tage begrenzt. Diese Werte können natürlich den eigenen Wünschen und Gegebenheiten angepasst werden.

Dabei gilt zu beachten, dass die session.gc_maxlifetime in der php.ini >= der eingestellten session_lifetime sein muss. Dazu öffne ich die php.ini von PHP 8.1 FPM

sudo nano /etc/php/8.1/fpm/php.ini

und setze den Wert auf 3600.

session.gc_maxlifetime = 3600

Nun muss PHP bzw. der Webserver neu gestartet werden, um die Änderungen wirksam umzusetzen.

sudo service php8.1-fpm restart

Ein geschlossener Browser führt nun, wie gewünscht, zu einem Auto Logout.

Integration von OpenAI in Nextcloud

15. November 2023 um 17:43

Mit Hub 4 integriert Nextcloud die künstliche Intelligenz auf ethische Weise. So heißt es zumindest in der damaligen Vorstellung von Frank Karlitschek, CEO und Gründer der Nextcloud GmbH.

Nextcloud Hub 4 ist die erste Kollaborationsplattform, die intelligente Funktionen umfassend in ihre Anwendungen integriert und gleichzeitig die mit KI-Technologien einhergehenden Herausforderungen in Bezug auf Datenschutz und Kontrolle bewältigt.

Nextcloud Hub bietet fortschrittliche, KI-basierte Funktionen, von intelligenten Datei- oder Freigabe-Empfehlungen bis hin zur Erkennung verdächtiger Logins über neuronale Netzwerke und vieles mehr. Diese Version verbessert die bestehenden intelligenten Funktionen wie den intelligenten Posteingang in Mail und die Standortverwaltung mit Fotos und führt gleichzeitig die Dateiklassifizierung, die on-premises Übersetzung, die Umwandlung von Sprache in Text, Bilderstellung via Stable Diffusion und Dall-e, ChatGPT-basierte Texterzeugung, DeepL-Übersetzungen und mehr ein.

nextcloud.com

Diese intelligenten Funktionen findet man im Smart Picker. Hierüber wird es möglich, u.a. Links und Inhalte einzufügen. Weitere Optionen sind:

  • Aufgaben von Deck
  • Orte von Open Street Map
  • Wissensdatenbankeinträge von Collectives
  • Videos von YouTube und PeerTube
  • GIF-Dateien von Giphy
  • Vordefinierte Textausschnitte
  • Filme, Serien und Personen aus The Movie Database (TMDB)
  • Stable Diffusion (on-premises) oder Dall-E (online) generierte Bilder
  • ChatGPT generierter Text
  • Tabellen und mehr.

Den Smart Picker wählt man in der entsprechenden Anwendung (z.B. Text) aus, indem man ein „/“ eintippt. Dort öffnet sich ein Kontextmenü und die Anwendung kann ausgewählt werden.

Um jedoch auch Funktionen von OpenAI, wie ChatGPT, speech-to-text oder AI image nutzen zu können, muss zusätzlich die App OpenAI and LocalAI integration installiert werden. Hierzu benötigt man eine API, welche einen OpenAI-Account voraussetzt.

Smart Picker – OpenAI in der Nextcloud

Viel Spaß!

bcachefs in Linux gemerged

31. Oktober 2023 um 19:48

Die gestrige Veröffentlichung von Linux 6.6 bedeutet, dass das Merge-Window wieder geöffnet ist. Ein erster Kandidat wurde bereits gemerged mit einem Vorhaben, das in den vergangenen Wochen zu vielen Diskussionen geführt hat: bcachefs.

Um bcachefs zu erklären, muss ich kurz ein wenig weiter ausholen. bcachefs geht - wie der Name schon vermuten lässt - auf bcache zurück. Hierbei handelt es sich um ein Kernelmodul, das Einzug in Linux 3.10 in 2013 fand und einen Caching-Layer für Block-Devices einführte.

Daten können somit hybrid zwischen ganz schnellem Speicher (RAM), schnellem Speicher (SSDs) und langsamem Speicher (HDD) aufgeteilt werden. Werden bestimmte Blöcke häufiger abgerufen, werden sie in den schnelleren Speicher verschoben und anders herum ebenso. Dabei handelte es sich aber immer um eine Zwischenschicht, auf der ein echtes Dateisystem aufbauen musste. Während der Entwicklung fiel dem Hauptentwickler Kent Overstreet jedoch schnell auf, dass zu einem "full-fledged" Filesystem nicht mehr viel fehlte.

Ein erster Prototyp entstand bereits im Jahre 2015 und hat somit die Ära der Dateisysteme der neusten Generation eingeläutet. Auch btrfs gehört zu diesen moderneren Dateisystemen und setzt auch auf das Copy-on-Write-Prinzip. Da die Blöcke einer Datei nicht bei einer Kopie dupliziert werden, spart dies Speicherplatz und ermöglicht verzögerungsfreie Snapshots.

bcachefs mit seinen über 90.000 Zeilen Code konnte zwar - wie für ein neues Dateisystem üblich und nötig - ausgiebig getestet werden, war allerdings bisher nicht im Mainline Linux vorhanden. Mitte des Jahres ging es dann an die Einarbeitung des Codes.

Eigentlich sollte bcachefs schon in Linux 6.5 Einzug halten. Aber aufgrund andauernder Spannungen wurde auch bei Linux 6.6 aus dem Vorhaben nichts. Eines der Probleme sind die teils umfangreichen Änderungen in fremden Modulen, die den Unmut der Maintainer auf sich gezogen haben. Wer sich dafür interessiert, kann sich den großen E-Mail-Thread ansehen. Linus Torvalds stand grundsätzlich einer Übernahme positiv gegenüber, wollte aber noch einen Test in linux-next abwarten. Dies ist zwischenzeitlich geschehen.

Nun also der Merge in den Kernel. Sollten sich die Änderungen bis zum Release halten, steht somit dem Einsatz des neuen Dateisystems ab der Veröffentlichung von Linux 6.7 nicht mehr viel im Wege. Die Aufnahme in Mainline vereinfacht aber auch die Entwicklung, da diese nun nicht mehr Out-of-Tree stattfindet, was aufgrund der hohen Änderungsgeschwindigkeit im Linux-Source-Tree schnell zu aufwändigen Anpassungsarbeiten führen kann.

Weitere Informationen zu bcachefs sind auf der eigenen Homepage abrufbar. Hier ist auch eine Schnellstartanleitung für den eigenen Einsatz zu finden.

Weitere Quellen

Senden der Nachricht fehlgeschlagen

22. Oktober 2023 um 16:00

Seit 2016 verwende ich einen OpenPGP-Key, um bei Bedarf meine eMails zu verschlüsseln. Leider hat sich dieses Verfahren nicht so durchgesetzt, wie man es sich erhofft hat. Negativ wirkten sich auch u.a. auch die zahlreichen Attacken auf SKS-Keyserver und die dort hinterlegten öffentlichen Schlüssel aus. Durch die Verwendung des neuen Keyservers auf keys.openpgp.org kam jedoch etwas Ruhe in die ganze Sache. Zur Freude musste ich meinen Key nicht aufgeben, den ich tatsächlich hin und wieder einsetze.

Die eMails, welche ich von meinem Notebook versende, wurden bis letzte Woche mit diesem Key signiert. Das heißt, dass u.a. auch mein öffentlicher Schüssel an jede abgehende Nachricht angehängt wurde. Nun bemerkte ich aber, dass meine eMails, mit dem Hinweis „Senden der Nachricht fehlgeschlagen“, nicht mehr verschickt wurden. Schnell hatte ich herausgefunden, dass der Anhang Probleme machte. Also habe ich als Sofortmaßnahme die digitale Signatur mit OpenPGP abgeschaltet, was natürlich nur eine Übergangslösung darstellen sollte.

Heute konnte ich der Sache auf den Grund gehen und habe mir den Key in Thunderbird näher angesehen. Hier konnte ich jedoch nichts Außergewöhnliches feststellen.

Kein Backup, kein Mitleid

… so hört man es immer von den IT-Profis. Backups meines Schlüsselpaares existierten aber zum Glück. Bevor ich jedoch den Schlüssel in Thunderbird neu eingespielt habe, wurde meinerseits nochmals ein Backup des privaten Schlüssels über das Terminal mit

gpg --export-secret-keys -a user@domain.tld > secret.asc

angelegt. Dieses Backup packte ich nun zu den anderen. Hierbei fiel auf, dass der private Key nur 2,2kB groß war und das letzte Backup bei ca. 35kB lag. Eigentlich hätte doch der aktuelle Key größer sein müssen!?

Kurzerhand wurde also das letzte Backup des privaten Schlüssels in Thunderbird eingespielt und das Problem war tatsächlich gelöst. eMails können nun wieder mit digitaler Signatur versendet werden.

Ansicht Ende-zu-Ende-Verschlüsselung in Thunderbird privater OpenPGP-Schlüssel
Privater OpenPGP-Schlüssel in Thunderbird

Natürlich wurde gleich, mit dem oben erwähnten Befehl, ein aktuelles Backup erzeugt. Der neue private Key hat nun eine Größe von 36,8kB, was beruhigt.

Ende gut, alles gut!

QCAD im Straßenbau

22. Oktober 2023 um 04:00

Vor über 10 Jahren hatte ich im Artikel „QCad getestet“ darüber berichtet, ob die AutoCAD-Alternative QCAD (inzwischen mit vier großen Buchstaben geschrieben) im Baustellenalltag einer Straßenbaufirma einsetzbar wäre. Da man aber zu dieser Zeit keine Koordinaten punktgenau abgreifen konnte, habe ich das Projekt nicht weiter verfolgt.

Mit der aktuellen Version 3.28 sieht dies jedoch ganz anders aus. QCAD stellt nun tatsächlich eine Alternative zu anderen kommerziellen Programmen dar und ist durchaus für Bauleiter und Poliere geeignet, um Aufmaße zu erstellen bzw. kleinere Absteckungen vorzunehmen.

Installation

Es gibt zwei verschiedene Versionen von QCAD, zum einen QCAD Professional und zum anderen die freie und kostenlose QCAD Community Edition. Um die CAD-Software unter Ubuntu/Debian zu installieren, lädt man die aktuelle Version als „QCAD Demo“ herunter und führt das Installationsscript aus. Dazu wechselt man in das Download-Verzeichnis, wo die heruntergeladene Version liegt, macht das Script ausführbar

chmod +x qcad-*

und installiert mit

./qcad-*

die Software. Nun hat man 15 Minuten Zeit sich die Pro-Version genauer anzusehen. Ich persönlich finde die Zeit etwas kurz bemessen, um sich einen genauen Überblick über die Vollversion zu verschaffen. Nach Ablauf der erwähnten 15 Minuten wird über ein Widget angezeigt, dass die Testphase abgelaufen ist.

Pro vs. Community Edition

Nun kann man sich entscheiden die Pro-Version zu kaufen oder stattdessen auf die Community-Edition downzugraden. QCAD Professional verfügt über einen größeren Funktionsumfang, wie z.B. der Triangulation oder des DWG-Supports.

Umwandlung der Demo-Version in die Community Edition

Wie aus der Demo eine Community Edition wird, beschreibt der schweizer Entwickler folgendermaßen:

Wenn Sie die kostenlose Open Source QCAD Community Edition verwenden möchten, können Sie die Demoversion für Ihre Plattform herunterladen (siehe oben) und dann das QCAD Professional Add-On entfernen (klicken Sie im Widget „Testversion“ auf „Entfernen“ und folgen Sie den Anweisungen auf dem Bildschirm). Alternativ können Sie die QCAD Community Edition von den Quellen unten selbst kompilieren.

Quelle: https://qcad.org/de/download

Das Ganze lässt sich also relativ leicht realisieren. Hierzu sind einfach die Hinweise im Widget (nach Ablauf der Testphase) zu befolgen. Dies bedarf dem Löschen einiger Dateien im Installationspfad (siehe Grafik).

Anzeige zum Löschen der erforderlichen Dateien zum Downgrade auf Community Edition
Downgrade auf Community Edition

Ich habe mich für diesen Test bewusst für die für mich ausreichende Community-Variante entschieden, da diese alle Features beinhaltet, die ich zum Arbeiten benötige.

Anzeige QCAD Community Edition
QCAD Community Edition

Beispiele

Hier möchte ich einige wichtige Funktionen zeigen, die mir für den produktiven Einsatz genügen. Zum einen geht es um das Abgreifen von Koordinaten. Im gezeigten Beispiel können Koordinaten an einen Rover übergeben werden, um eine Bordanlage exakt auf der Baustelle abzustecken.

Anzeige Koordinaten Absteckpunkt Bord auf dem Lageplan
Koordinaten Absteckpunkt Bord

Eine andere wichtige Anwendung ist das Messen von Entfernungen im Lageplan.

Anzeige Entfernung messen auf dem Lageplan
Entfernung messen

Ein weiteres Tool hilft dabei, Flächen in Plänen zu messen. Dies geht ganz einfach in der linke Symbolleiste über Informationswerkzeuge -> Polygon Fläche.

Anzeige Fläche Verkehrsinsel auf dem Lageplan
Fläche Verkehrsinsel

Fazit

QCAD ist ein wirklich gutes Anwendungsprogramm, welches sich durchaus für den Baustelleneinsatz eignet. Der Preis von 40€ für die Vollversion ist im Gegensatz zu Preisen, die Mitbewerber aufrufen, ein echtes Schnäppchen.

OB diese Anwendung in einem Ingenieurbüro allerdings mit den großen CAD-Programmen mithalten kann, kann ich nicht beurteilen. Jedoch lohnt es sich, einen Blick auf die Software der RibbonSoft GmbH zu werfen.

QCAD ist für Windows, macOS und Linux erhältlich.

Remote Desktop und Raspberry Pi OS Bookworm

21. Oktober 2023 um 15:47

Die aktuelle Raspberry-Pi-Version verwendet auf den Raspberry-Pi-Modellen 4B, 400 sowie 5 Wayland als Default-Grafiksystem. Aus diesem Grund funktionieren viele Programme zur Fernwartung bzw. für Remote-Desktop-Funktionen nicht mehr wie gewohnt. Betroffen ist unter anderem RealVNC, bisher die Default-Lösung der Raspberry Pi Foundation. RealVNC verspricht etwas vage, im Verlauf des Jahres 2024 eine Wayland-kompatible Version ihrer Software zu veröffentlichen. An dieser Stelle erkläre ich Ihnen, was Sie tun können, wenn Sie nicht solange warten möchten.

Xorg versus Wayland

Das X Window System und der Xorg-Server bilden das traditionelle Grafiksystem von Linux. Es basiert auf einem Client/Server-Modell und hat sich jahrzehntelang bewährt. Allerdings ist der Xorg-Server mit vielen Altlasten und Sicherheitsproblemen verbunden. Die Software wird schon seit mehrere Jahren nicht mehr weiterentwickelt und kaum noch aktiv gewartet. Seine Zeit läuft ab.

Der Nachfolger von Xorg heißt Wayland ist dagegen »nur« ein neues Protokoll für die Kommunikation zwischen dem Wayland Compositor (einem Display-Server) und den Anwendungsprogrammen (Clients). Wayland bricht mit dem X Window System und verspricht ein System, das schlanker, sicherer und effizienter ist. Wayland gehört die Zukunft.

Zwar sind mittlerweile viele Programme Wayland-kompatibel, aber leider nicht alle. Besonders große Probleme gibt es bei Programmen, die den Bildschirminhalt auslesen wollen, also Tools für Screenshots, Screencasts, Screen Sharing und Remote Desktop. Derartige Funktionen sind auch unter Wayland möglich, müssen aber vollständig neu implementiert werden.

Aktuelles Grafiksystem ermitteln

Ob Ihr Raspberry Pi Wayland oder Xorg als Grafiksystem verwendet, stellen Sie am einfachsten mit einem Kommando im Terminal fest:

echo $XDG_SESSION_TYPE
  wayland

Im Desktop-Betrieb lauten die möglichen Antworten wayland oder x11. In einer SSH-Session im Textmodus lautet das Ergebnis dagegen tty.

Lösung 1: Xorg statt Wayland verwenden

Die bei weitem einfachste Lösung besteht darin, das Grafiksystem von Wayland zurück auf Xorg umzustellen. Dazu führen Sie in einem Terminal-Fenster sudo raspi-config aus und wählen zuerst den Menüpunkt Advanced Options, dann Wayland. Jetzt können Sie sich zwischen dem X11 Backend und dem Wayland Backend entscheiden. Gleichzeitig ändert sich auch der Window Manager (Openbox versus Wayfire). Optisch ergeben sich daraus aber nur geringe Unterschiede.

Die Einstellung wird in der Datei /etc/lightdm/lightdm.conf gespeichert:

# in der Datei /etc/lightdm/lightdm.conf
...
# für Wayland:
user-session=LXDE-pi-wayfire
# oder für X:
user-session=LXDE-pi-x

Die Umstellung des Grafiksystems wird erst nach einem Neustart wirksam. Die meisten Remote-Desktop-Tools inklusive RealVNC sollte nun wieder wie gewohnt funktionieren. Der RealVNC-Server ist standardmäßig installiert. Die Aktivierung kann aber nicht über das Raspberry-Pi-Konfigurationsprogramm erfolgen. Dessen VNC-Option gilt nur für wayvnc und muss deaktiviert (!) sein, sonst kommt es zu einem Port-Konflikt. Den RealVNC-Dienst aktivieren Sie anschließend wie folgt:

sudo systemctl enable --now vncserver-x11-serviced

Ein VNC-Icon im Panel zeigt an, dass der Start funktioniert hat, und gibt Aufschluss darüber, ob gerade eine Verbindung aktiv ist.

Allerdings gibt es auch hier eine Einschränkung: Der RealVNC-Server funktioniert nur in der 64-Bit-Version von Raspberry Pi OS Bookworm, nicht aber mit der 32-Bit-Version. Dieses Problem soll aber in naher Zukunft behoben werden.

Lösung 2: wayvnc

Wenn Sie bei Wayland bleiben, steht das neue Programm wayvnc zur Verfügung. Sie aktivieren es am einfachsten mit dem Programm Raspberry Pi-Konfiguration im Dialogblatt Schnittstellen, Option VNC.

Aktivierung des VNC-Servers im »Raspberry Pi-Konfigurationsprogramm«

Daraus resultiert die folgende Konfigurationsdatei /etc/xdg/autostart/wayvnc.desktop:

[Desktop Entry]
Type=Application
Name=wayvnc
Comment=Start wayvnc
NoDisplay=true
Exec=/usr/bin/wayvnc --render-cursor --keyboard=de
OnlyShowIn=wayfire

Jetzt brauchen Sie auf Ihrem Client-Rechner (auf dem Rechner, mit dem Sie Ihren Raspberry Pi steuern möchten), einen zu wayvnc kompatiblen VNC-Client. Der Raspberry-Pi-Blog empfiehlt das Programm vncviewer des Projekts TigerVNC. Die meisten Linux-Distributionen stellen ein entsprechendes Paket zur Verfügung. Für Windows und macOS (Intel) finden Sie hier Downloads.

Hier läuft der TigerVNC-Client auf meinem Notebook mit ArchLinux und ermöglicht die Fernsteuerung des Raspberry-Pi-Desktops

Bei meinen Tests unter Windows ist der Verbindungsaufbau mit dem Programm Remotedesktopverbindung gescheitert. Mit dem vncviewer von TigerVNC hat es dann aber funktioniert.

Sofern der Raspberry Pi mit einem eigenen Monitor verbunden ist, gilt für den Remote Desktop dieselbe Bildschirmauflösung. Wenn der Raspberry Pi dagegen »headless« läuft, können Sie die gewünschte Auflösung mit sudo raspi-config, Display Options, VNC Resolution einstellen (maximal 1920×1080, erfordert einen Reboot).

Quellen/Links

Hilfe, pip funktioniert nicht mehr!

19. Oktober 2023 um 08:08

pip ist das Paketverwaltungs-Tool von Python. Wenn Sie in einem Script ein Zusatzmodul benötigen, führen Sie einfach pip install xxx bzw. unter macOS und bei manchen Linux-Distributionen pip3 install xxx aus. pip lädt das erforderliche Modul sowie eventuelle Abhängigkeiten herunter und installiert die Pakete lokal (d.h., sie brauchen meine root-Rechte).

Meistens funktioniert pip gut — aber nicht immer. Die häufigste Fehlerquelle unter Windows ist die Parallelinstallation mehrerer Python-Versionen. Dann ist nicht immer klar, auf welche Python-Version sich pip bezieht. Nach meiner Erfahrung scheint pip zumeist die falsche Version zu nehmen. Daher mein Tipp: Vermeiden Sie unter Windows unbedingt die Mehrfachinstallation von Python!

Aber auch unter Linux kann es Probleme geben. Die Ursache hier besteht darin, dass viele Distributionen selbst eine riesige Sammlung von Paketen mit Python-Erweiterungen anbieten. Die Parallelinstallation eines Moduls, einmal mit apt oder dnf und ein zweites Mal mit pip, kann dann zu Konflikten führen — insbesondere dann, wenn nicht exakt dieselben Versionen zum Einsatz kommen. Die Python-Entwickler haben deswegen im ‎Python Enhancement Proposals (PEP) 668 festgeschrieben, dass in solchen Fällen Pakete aus Linux-Repositories vorzuziehen sind. PEP 668 gilt grundsätzlich seit Python 3.11. Tatsächlich implementiert ist es momentan nur in aktuellen Linux-Distributionen:

  • Ubuntu ab Version 23.04
  • Debian ab Version 12
  • Raspberry Pi OS ab dem Bookworm-Release (Okt. 2023)
  • Arch Linux

Noch nicht implementiert ist PEP 668 dagegen unter RHEL und Fedora (auch nicht in Version 39 Beta).

pip-Fehlermeldung

Der Versuch, mit pip ein Modul zu installieren, führt bei aktuellen Debian-, Ubuntu- und Raspberry-Pi-OS-Versionen zur folgenden Fehlermeldung:

$ pip install matplotlib

error: externally-managed-environment
This environment is externally managed

    To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.

    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.

    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.

    See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python 
installation or OS distribution provider. You can override this, 
at the risk of breaking your Python installation or OS, by 
passing --break-system-packages. Hint: See PEP 668 for the 
detailed specification.

Lösung 1: Installation des äquivalenten Linux-Pakets

Die obige Fehlermeldung weist direkt auf die beste Lösung hin — nämlich die Installation des entsprechenden Linux-Pakets mit apt python3-xxx, wobei xxx der Paketname ist. Für die matplotlib führen Sie unter Debian, Ubuntu und Raspberry Pi OS das folgende Kommando aus:

sudo apt install python3-matplotlib

Diese Empfehlung ist mit zwei Einschränkungen verbunden: Sie erfordert, dass Sie root– oder sudo-Rechte haben, und sie setzt voraus, dass das gewünschte Modul tatsächlich im Repository Ihrer Linux-Distribution zur Verfügung steht. Letzteres ist oft der Fall, aber nicht immer. Auf pypi.org gibt es fast 500.000 Projekte, die Debian-Standard-Repositories enthalten dagegen »nur« gut 4000 (apt list | grep python3- | wc -l).

Lösung 2: Verwendung einer virtuellen Umgebung

Ein Virtual Environment im Kontext von Python ist ganz einfach ein Projektverzeichnis, in das die für das Projekt erforderlichen Module lokal und projektspezifisch installiert werden. Das hat mehrere Vorteile:

  • Es ist klar, welche Module ein bestimmtes Projekt benötigt. Das Projekt lässt sich später einfacher auf einen anderen Rechner übertragen.
  • Es kann keine Konflikte zwischen unterschiedlichen Projekten geben, die unterschiedliche Module erfordern.
  • Sie sind nicht auf die von Ihrer Linux-Distribution angebotenen Python-Module eingeschränkt und brauchen keine Administratorrechte zur Installation von Linux-Paketen.

Virtuelle Umgebungen werden von Python durch das Modul venv unterstützt. Dieses Modul muss vorweg installiert werden, entweder mit apt install python3-venv oder durch apt install python3-full. Anschließen richten Sie Ihr Projekt ein:

$ python3 -m venv my-project

Python erzeugt das Verzeichnis my-project, falls dieses noch nicht existiert, und richtet dort eine minimale Python-Umgebung ein. (»Minimal« bedeutet: ca. 1500 Dateien, Platzbedarf ca. 25 MByte. Nun ja.) Nun führen Sie in Ihrem Terminal-Fenster mit source das Shell-Script activate aus, um die Umgebung zu aktivieren:

$ cd my-project
$ source bin/activate
(my-project)$ 

In dieser Umgebung funktioniert pip wie gewohnt. In der Folge können Sie Ihr Script ausführen, das die lokal installierte Module nutzt:

(my-project)$ pip install requests beautifulsoup4
(my-project)$ ./my-webscraping-script.py

Anstelle venv direkt zu nutzen, gibt es diverse Tools, um die Verwaltung Ihrer virtuellen Umgebungen zu vereinfachen. Am bekanntesten sind pipenv und virtualenv. Persönlich ist mir pipenv am liebsten. Das Tool muss vorweg installiert werden (apt install pipenv).

Lösung 3: Das Kommando pipx

pipx ist eine Variante zum klassischen pip-Kommando, das sich gleichzeitig um die Einrichtung einer virtuellen Umgebung kümmert (siehe auch die Dokumentation). pipx ist allerdings nicht zur Installation von Bibliotheken gedacht, sondern zur Installation fertiger Python-Programme. Diese werden in .local/bin gespeichert.

pipx ist nur dann eine attraktive Option, wenn Sie ein als Python-Modul verfügbares Programm unkompliziert installieren und ausführen wollen. Wenn Sie dagegen selbst Scripts entwickeln, die von anderen Modulen abhängig sind, ist pipx nicht das richtige Werkzeug.

Lösung 4: Option pip --break-system-packages

Ein vierter Lösungsweg besteht darin, an pip die Option --break-system-packages zu übergeben. Die Option ist weniger schlimm, als ihr Name vermuten lässt. Im Prinzip funktioniert pip jetzt so wie bisher und installiert das gewünschte Modul, ganz egal, ob es ein äquivalentes Paket Ihrer Distribution gibt oder nicht, und unabhängig davon, ob dieses Paket womöglich schon installiert ist.

Empfehlenswert ist der Einsatz dieser Option in CI-Scripts (Continuous Integration), z.B. in Test- oder Deploy-Scripts für git (siehe auch diesen Blog-Beitrag von Louis-Philippe Véronneau). Die Option --break-system-packages ist oft der schnellste und bequemste Weg, nicht mehr funktionierende Scripts wieder zum Laufen zu bringen.

Quellen/Links

Ubuntu 23.10

18. Oktober 2023 um 11:10

Nachdem Hasskommentare in der ukrainischen Übersetzungsdateien entfernt wurden (siehe auch omgubuntu.co.uk), steht das ISO-Image von Ubuntu 23.10 »Mantic Minotaur« wieder zum Download zur Verfügung. Die neueste Version von Ubuntu ist das letzte Release vor der nächsten LTS-Version — und insofern besonders interessant: »Mantic Minotaur« vermittelt eine erste Vorstellung, wie Ubuntu LTS die nächsten Jahre prägen wird.

Updates: 14.11.2023, Netplan

Installation und App Center

Ich habe die Installation diesmal nur in virtuellen Maschinen getestet. Zumindest dort hat das neue Installationsprogramm problemlos funktioniert — auf jeden Fall besser als in Version 23.04, in der das Installationsprogramm erstmalig zum Einsatz kam. Die für die meisten Nutzer wichtigste Neuerung besteht darin, dass nun standardmäßig eine »Minimalinstallation« durchgeführt wird — ohne LibreOffice, Thunderbird, Foto-Verwaltung, Audio-Player usw.

Standardmäßig wird eine Minimalinstallation ohne Office-Programme durchgeführt

Grundsätzlich mag ich diesen Minimalismus. Bei der Installation der fehlenden Programme hilft das mit der Bibliothek Flutter neu implementierte »App Center«, dessen Versionsnummer 1.0.0-alpha lautet. 1.0.0 klingt an sich schon abschreckend, »alpha« macht es noch schlimmer. Bei meinen Tests sind aber erfreulicherweise keine Probleme aufgetreten. Im App Center führt Entdecken / Jump start your desktop in die Sammlung Ubuntu Desktop, die auf bisher vorinstallierte Pakete verweist.

Eine Rubrik im neuen App Center offeriert wichtige Office-Programme ausschließlich im Snap-Format

Eines sollte Ihnen aber klar sein: Anders als manche Tester von Ubuntu 23.10 geschrieben haben, werden mit dem App Center ausschließlich Snap-Pakete installiert. Ob das gewünschte Programm auch im Debian-Format zur Verfügung steht oder nicht, spielt keine Rolle. Für das App Center gilt Snap only. Falls Sie Debian-Pakete vorziehen, müssen Sie diese nun im Terminal mit apt suchen und installieren (also z.B. apt install gimp). In Ubuntu gibt es keine (vorinstallierte) grafischer Oberfläche mehr, um Debian-Pakete zu installieren.

Das App Center ist auch insofern ein Rückschritt, als es nicht in der Lage ist, heruntergeladene Debian-Pakete zu installieren. Wenn Sie im Webbrowser die gerade heruntergeladene *.deb-Datei anklicken, erhalten Sie die Fehlermeldung, dass es kein (grafisches) Programm zur Verarbeitung von *.deb-Dateien gibt. Sie müssen die Installation wie folgt durchführen:

sudo apt install ~/Downloads/name.deb

Platzbedarf

Ich habe in der Vergangenheit oft über den immensen Platzbedarf von Snap-Paketen geschimpft, sowohl auf der SSD als auch (nach dem Start) im Arbeitsspeicher. Für diesen Artikel wollte ich diese Aussagen mit neuem Zahlenmaterial untermauern, bin aber auf überraschende Ergebnisse gestoßen.

Die neue »Minimalinstallation« beansprucht 4,7 GByte Platz auf der SSD. Nicht mitgerechnet ist dabei die Swap-Datei /swap.img. Das Installationsprogramm richtet diese Datei je nach Hardware sehr großzügig ein (bei meinen Tests mit 3,9 GiB). Tipps, wie Sie die Swap-Datei bei Bedarf verkleinern können, folgen gleich.

Der Snap-Anteil nach einer Minimalinstallation beträgt ca. 1 GByte:

du -h -d 0 /var/lib/snapd/

  970M   /var/lib/snapd/

snap list

  Name                       Version          Revision  Tracking         Herausgeber  Hinweise
  bare                       1.0              5         latest/stable    canonical✓   base
  core22                     20230801         864       latest/stable    canonical✓   base
  firefox                    118.0.1-1        3216      latest/stable/…  mozilla✓     -
  firmware-updater           0+git.e8771be    109       latest/stable/…  canonical✓   -
  gnome-42-2204              0+git.ff35a85    141       latest/stable/…  canonical✓   -
  gtk-common-themes          0.1-81-g442e511  1535      latest/stable/…  canonical✓   -
  snap-store                 0+git.e118b05    1046      latest/stable/…  canonical✓   -
  snapd                      2.60.4           20290     latest/stable    canonical✓   snapd
  snapd-desktop-integration  0.9              83        latest/stable/…  canonical✓   -

ls -lhS /var/lib/snapd/snaps/

  -rw------- 2 root root 497M Okt 16 12:41 gnome-42-2204_141.snap
  -rw------- 2 root root 241M Okt 16 12:40 firefox_3216.snap
  -rw------- 2 root root  92M Okt 16 12:41 gtk-common-themes_1535.snap
  -rw------- 2 root root  74M Okt 16 12:41 core22_864.snap
  -rw------- 2 root root  41M Okt 16 12:41 snapd_20290.snap
  -rw------- 2 root root  12M Okt 16 12:41 firmware-updater_109.snap
  -rw------- 2 root root  11M Okt 16 12:41 snap-store_1046.snap
  ...

Ich habe nun alle Snaps aus der Rubrik Ubuntu Desktop installiert, also LibreOffice, Thunderbird, Shotwell usw., insgesamt 10 Pakete. Der Platzbedarf der Snaps steigt auf 2,8 GByte:

du -h -d 0 /var/lib/snapd/

  2,8G   /var/lib/snapd/


ls -lhS /var/lib/snapd/snaps/

  -rw------- 2 root root 1,1G Okt 18 08:39 libreoffice_300.snap
  -rw------- 2 root root 497M Okt 16 12:41 gnome-42-2204_141.snap
  -rw------- 2 root root 350M Okt 18 08:38 gnome-3-38-2004_143.snap
  -rw------- 2 root root 241M Okt 16 12:40 firefox_3216.snap
  -rw------- 2 root root 153M Okt 18 08:37 remmina_6117.snap
  -rw------- 2 root root 105M Okt 18 08:35 thunderbird_395.snap
  -rw------- 2 root root  92M Okt 16 12:41 gtk-common-themes_1535.snap
  -rw------- 2 root root  74M Okt 16 12:41 core22_864.snap
  -rw------- 2 root root  64M Okt 18 08:35 core20_2015.snap
  -rw------- 2 root root  45M Okt 18 08:35 shotwell_7.snap
  -rw------- 2 root root  41M Okt 16 12:41 snapd_20290.snap
  -rw------- 2 root root  36M Okt 18 08:35 cheese_37.snap
  -rw------- 2 root root  14M Okt 18 08:35 gnome-calendar_182.snap
  -rw------- 2 root root  12M Okt 16 12:41 firmware-updater_109.snap
  -rw------- 2 root root  11M Okt 16 12:41 snap-store_1046.snap
  -rw------- 2 root root 4,3M Okt 18 08:35 transmission_54.snap
  -rw------- 2 root root 3,6M Okt 18 08:35 gnome-mahjongg_170.snap
  ...

Der RAM-Bedarf des Ubuntu-Desktops im Leerlauf mit einem Terminal-Fenster und dem Programm Systemüberwachung beträgt laut free -h ca. 1,2 GByte. Nun habe ich Firefox (ca. 8 Sekunden), Shotwell (wieder 8 Sekunden) und LibreOffice Writer (20 Sekunden) gestartet, ohne darin aktiv zu arbeiten. Alle Tests habe ich in einer virtuellen Maschine mit 2 CPU-Cores und 4 GiB RAM durchgeführt. Auf echter Hardware sind schnellere Startzeiten zu erwarten.

Der Speicherbedarf im RAM steigt dann auf moderate 1,9 GByte an.

Kurz und gut: Der Platzbedarf von Snap-Paketen sowohl auf dem Datenträger als auch im Arbeitsspeicher ist beträchtlich, aber er ist nicht mehr so exorbitant hoch wie früher. Und je mehr Snap-Pakete parallel installiert werden, desto geringer ist der gemeinschaftliche Overhead durch die Parallelinstallation diverser Bibliotheken. (Unter Ubuntu 23.10 ist Gnome 45 installiert. Aber damit alle Snap-Pakete der Kategorie Ubuntu Desktop ausgeführt werden können, ist parallel dazu auch Gnome 42 und Gnome 3.38 erforderlich — siehe das obige Listing.)

Die Startzeiten von Programmen sind weiterhin etwas höher als bei einer gleichwertigen Installation durch Debian-Pakete, aber damit kann ich mich abfinden. Canonical hat seine Snap-Infrastruktur also in den vergangenen Jahren schrittweise verbessert. Sie funktioniert nun spürbar besser als in den ersten Versionen.

Als wichtigster Kritikpunkt bleibt der proprietäre Snap Store, der alleine durch Canonical verwaltet wird. Alternative Snap-Paketquellen sind nicht vorgesehen (ganz im Gegensatz zu Red Hats Flatpak-System).

Swap-Datei verkleinern

Sie können die Swap-Datei bei Bedarf Ihren eigenen Bedürfnissen entsprechend verkleinern:

sudo swapoff /swap.img
sudo rm /swap.img
sudo dd count=1024 bs=1M if=/dev/zero of=/swap.img  # 1024 x 1 MiB = 1 GiB
sudo chmod 600 /swap.img
sudo mkswap /swap.img
sudo swapon /swap.img

CUPS doch nicht als Snap-Paket

Canonical wollte CUPS eigentlich in ein Snap-Paket umbauen (siehe openprinting.github.io) und in dieser Form in Ubuntu integrieren. Aufgrund technischer Probleme ist dieses Vorhaben nun voraussichtlich bis Version 24.10 verschoben. Die LTS-Version 24.04 ist für derartige Experimente nicht so gut geeignet.

TPM-Verschlüsselung

Technisch sehr interessant ist Canonicals Konzept, die Verschlüsselung des Datenträgers mittels TPM (Trusted Platform Modules, also in die CPU eingebaute Kryptografie-Funktionen) abzusichern. Unter Windows, macOS, iOS und Android ist dies längst eine Selbstverständlichkeit. Mangels geeigneter Hardware habe ich diese Funktionen allerdings nicht testen können.

Aktuell bezeichnet die Dokumentation dieses Feature zudem noch als experimentell. Es wird nur ausgewählte TPM-Hardware unterstützt. Die Implementierung basiert (natürlich) auf Snap-Paketen für den Bootloader und den Kernel. Proprietäre Kernel-Module (NVIDIA) können nicht verwendet werden. Soweit ich das Konzept verstanden habe, muss das Verschlüsselungspasswort weiterhin eingegeben werden, d.h. das Hochfahren und Authentifizieren nur per Fingerabdruck ist nicht möglich. Oder, anders formuliert: Das Boot-Konzept wird sicherer, aber nicht komfortabler.

Netplan

Ubuntu verwendet mit Netplan seit 2016 ein selbst entwickeltes System zur Administration der Netzwerkverbindungen. Netplan ist vor allem bei Server-Installationen wichtig, wo es eine zentrale Rolle einnimmt. Am Desktop delegiert Netplan die Kontrolle über die WLAN-Schnittstellen dagegen an den NetworkManager. Insofern haben Desktop-Anwender Netplan nie bemerkt.

Grundsätzlich ändert sich daran auch mit Version 23.10 nichts. Neu ist aber, dass die Kommunikation zwischen dem NetworkManager und Netplan nicht länger eine Einbahnstraße ist. Bisher wusste Netplan nichts von den durch den NetworkManager verwalteten Netzwerkverbindungen. Laut dem Ubuntu Blog hat sich das mit Version 23.10 geändert: Vom NetworkManager eingerichtete Verbindungen werden nun in /etc/netplan gespeichert (und nicht mehr in /etc/NetworkManager/system-connections/). Dabei kommt die Netplan-eigene Syntax für Konfigurationsdateien zum Einsatz. Bei einem Update von älteren Ubuntu-Versionen werden vorhandene WLAN-Verbindungen automatisch nach /etc/netplan migriert.

Desktop

Ubuntu 23.10 verwendet Gnome 45 als Desktop. Mehrere vorinstallierte Shell Extensions (Desktop Icons, Ubuntu AppIndicators, Ubuntu Dock und Ubuntu Tiling Assistand) stellen sinnvolle Zusatzfunktionen zur Verfügung:

  • Das Dock kann wahlweise links, rechts oder unten platziert werden.
  • Fenster können so verschoben werden, dass diese ein Bildschirmviertel ausfüllen (Quarter Tiling). Außerdem gibt es einige fortgeschrittene Tiling-Funktionen. (Gnome ohne Erweiterungen kennt bekanntermaßen nur Bildschirmhälften, was auf einem großen Monitor mager ist.)

  • Auf dem Desktop können Icons dargestellt werden.

  • Ältere Gnome-Programme können Indikator-Icons im Panel darstellen.

Ubuntu verwendet Gnome 45 als Desktop, angereichert um ein paar Extensions für das vertikale Dock, Quarter-Tiling und Desktop-Icons

Versionsnummern

Basis             Desktop             Programmierung   Server
---------------   ------------------  ---------------  --------------
Kernel      6.5   Gnome          45   bash        5.2   Apache     2.4
glibc      2.38   Gimp         2.10   docker.io 20.10   CUPS       2.4
X-Server   21.1   LibreOffice   7.6   gcc          13   MariaDB  10.11
Wayland    1.22                       git        2.40   MySQL      8.0
Mesa       23.2                       Java         17   OpenSSH    9.3
Systemd     252                       PHP         8.2   qemu/KVM   8.0
NetworkMan 1.44                       Python     3.11   Postfix    3.8
GRUB       2.12                                         Samba     4.18

Der Fokus auf Snap macht es nicht immer ganz klar, wo welches Paket zu suchen ist. Gimp, LibreOffice, aber auch Docker (!) können als Snap-Pakete installiert werden. Programmiersprachen wie C, Java, Python oder PHP (Ausnahme: Go, siehe Kommentare) sowie Server-Anwendungen wie Apache, MySQL oder Samba sind vorerst noch gewöhnliche Debian-Pakete.

Raspberry Pi

Ubuntu 23.10 läuft auch auf dem nagelneuen Raspberry Pi 5. Einen diesbezüglichen Test habe ich schon vor ein paar Tagen veröffentlicht.

Fazit

Aus meiner Sicht ist und bleibt Ubuntu die erste Anlaufstelle für Linux-Einsteiger. Der Desktop ist optisch ansprechend, Gnome Shell Extensions helfen dort nach, wo Gnome Defizite hat. In ganz vielen Fällen gilt: It just works.

Allerdings hat sich Canonical — allen Widerständen zum Trotz — dazu entschieden, voll auf das eigene Snap-Paketformat zu setzen. Grundsätzlich funktioniert das gut. Aus der Sicht von Canonical ist es natürlich toll, nur ein Paket für verschiedene Ubuntu-Releases warten zu müssen — und die Paket-Version losgelöst von der Ubuntu-Version auch aktualisieren zu können. Canonical kann also durch die Änderung eines Pakets ein LibreOffice-Update auf das nächste Major-Release für alle gerade aktiven Ubuntu-Versionen durchführen. Diesem Vorteil steht anwenderseitig ein — sagen wir mal — großzügiger Umgang mit Ressourcen gegenüber.

Bisher konnte man als erfahrener Ubuntu-Anwender Snap-Paketen aus dem Weg gehen, also snap deinstallieren und anstelle von Snap-Paketen gleichwertige Debian-Pakete installieren. Das wird zunehmend unmöglich, und das ist letztlich auch der falsche Denkansatz. Vielmehr gilt: Wer Ubuntu sagt, muss auch Snap sagen. Und wer das nicht will, muss sich von Ubuntu verabschieden.

Ich bin deswegen auf ArchLinux umgestiegen und habe es nicht bereut. Für Linux-Einsteiger, die dem Snap-Kosmos misstrauisch gegenüberstehen, sind Debian oder Linux Mint einfachere Alternativen. Wenn Sie dagegen keine ideologischen Einwände gegen Snap haben und einen ordentlichen Rechner besitzen, ist Ubuntu samt Snap eine runde Sache.

Quellen/Links

Andere Tests

Ubuntu 23.10 auf dem Raspberry Pi 5

13. Oktober 2023 um 15:16

(Aktualisiert am 15.10.2023, Geekbench-Ergebnisse mit/ohne Lüfter)

Nach Raspberry Pi OS Bookworm habe ich mir heute auch Ubuntu 23.10 auf dem Raspberry Pi angesehen. In aller Kürze: Der Raspberry Pi 5 ist ein großartiger Desktop-Rechner, Ubuntu mit Gnome unter Wayland läuft absolut flüssig.

Ubuntu 23.04 mit Gnome-Desktop und Wayland auf einem Raspberry Pi 5

Systemvoraussetzungen

Die Desktop-Version von Ubuntu 23.10 läuft nur auf den Modellen 4B, 400 und 5 und beansprucht zumindest 4 GiB RAM. Bei meinem Test mit offenem Terminal, Firefox (zwei Tabs mit GitHub und orf.at) sowie dem neuen App Center waren erst gut 2 GiB RAM in Verwendung. Mit offenem Gimp, VS Code und App Center steigt der Speicherbedarf dann auf 4 GiB. Insofern sind für’s ernsthafte Arbeiten 8 GiB RAM sicher kein Schaden.

Installation

Zur Installation habe ich mit dem Raspberry Pi Imager Ubuntu 23.10 auf eine SD-Karte übertragen. Die Spracheinstellung in der Konfigurationsphase beim ersten Starts bleibt wirkungslos und muss später in den Systemeinstellungen nachgeholt werden. Außerdem müssen mit Installierte Sprachen verwalten alle erforderlichen Sprachdateien heruntergeladen werden.

Ein initiales Ubuntu-Desktop-System beansprucht etwa 6 GByte auf der SD-Karte. Mit Schuld am verhältnismäßig großem Speicherbedarf für ein Ubuntu-»Minimalsystem« ohne Anwendungsprogramme ist der unmäßige Speicherbedarf der vorinstallierten Snap-Paketen (App Center, Firefox plus alle dazu erforderlichen Basisbibliotheken).

Gnome

Gnome 45 mit Wayland läuft absolut flüssig. Nur der Start von Snap-Apps führt zu kleinen Verzögerungen — das kennt man ja auch von Ubuntu-Installationen auf hochwertiger Hardware. Bei meinem Testrechner (Pi 5 mit 8 GiB RAM) braucht Firefox beim ersten Start ca. 4 Sekunden, bis es am Bildschirm erscheint. Damit kann man wirklich leben ;-)

Screenshots funktionieren auf Anhieb.

Bei der Erkennung der Systemdaten (also Info/Systemdetails in den Einstellungen) versagt Gnome aber und kann weder die CPU noch die Größe der SD-Karte erkennen (siehe die Abbildung oben). Aber das sind Kleinigkeiten.

Kernel

Ubuntu verwendet mit Version 6.5 einen neueren Kernel als Raspberry Pi OS. Im Gegensatz zu Raspberry Pi OS kommt die »normale« Pagesize von 4 kByte zum Einsatz:

pi5u$ uname -a
  Linux pi5u 6.5.0-1005-raspi #7-Ubuntu SMP PREEMPT_DYNAMIC 
  Sun Oct  8 08:06:18 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux

pi5u$ getconf PAGESIZE
4096

Visual Studio Code

Erstaunlicherweise fehlt in der Snap-Bibliothek Visual Studio Code. Ein Debian-Paket für ARM64 kann von https://code.visualstudio.com heruntergeladen werden. Es muss dann mit sudo apt install ./code_xxx.deb installiert werden. Die nachfolgende Fehlermeldung pkgAcquire::Run / Keine Berechtigung können Sie ignorieren. Vergessen Sie aber nicht, ./ bzw. einen gültigen Pfad voranzustellen, sonst glaubt apt, code_xxx.deb wäre der Paketname und verweigert die Installation der lokalen Datei.

Geekbench

Unter https://www.geekbench.com/preview/ gibt es eine AArch64-Version von Geekbench, die ich heruntergeladen, ausgepackt und ausgeführt habe. Die Temperatur des SoC steigt während der Tests auf über 85 °C. Die CPU-Frequenz wird in der Folge auf 1,5 GHz gedrosselt. Ich habe keine Kühlung verwendet (weder aktiv noch passiv). Ergebnisse unter diesen Voraussetzungen: 657
Single-Core Score, 1233 Multi-Core Score. Mehr Details finden Sie hier: https://browser.geekbench.com/v6/cpu/3060411

Geekbench

Im Leerlauf unter Ubuntu 23.10 beträgt die CPU-Temperatur übrigens gut 70°C, also auch schon mehr als genug.

Ubuntu fehlt eine dynamische Lüftersteuerung. Sobald ein Lüfter angeschlossen wird, läuft dieser mit maximaler Leistung und produziert ein durchaus störendes Ausmaß an Lärm. Die CPU-Temperatur sinkt dann im Leerlauf auf gut 30°C. Selbst während der Ausführung von Geekbench steigt die Temperatur nur kurzzeitig über 45°C. Gleichzeitig fallen die Werte etwas besser aus (siehe auch https://browser.geekbench.com/v6/cpu/3095791).

Geekbench 6      Single-Core      Multi-Core
--------------  ------------    ------------
Ohne Lüfter              657            1233
Mit Lüfter               737            1542

Eine letzte Anmerkung zu Geekbench: Die 64-Bit-Version von Raspberry Pi OS und Geekbench 6.2 sind wegen der 4-kByte-Pagesize inkompatibel zueinander.

Abstürze

Während meiner Tests kam es zweimal zu kapitalen Abstürzen (Bildschirm wurde schwarz, kein Netzwerkzugriff mehr etc.). Möglicherweise war das von mir eingesetzte Netzteil zu schwach. (Unter Raspberry Pi OS hatte ich mit demselben Netzteil allerdings keine Probleme.)

Ich bin dann auf das neue Original-Raspberry-Pi-Netzteil umgestiegen (27 W für einen Minirechner erscheinen wirklich mehr als üppig, aber sei’s drum). Die Komplett-Abstürze haben sich nicht wiederholt.

Allerdings ist in der Folge auch Gimp bei der Verwendung des Dateiauswahldialogs zweimal abgestürzt. Das kenne ich von meinem Notebook überhaupt nicht. Ich kann natürlich nicht sagen, ob dieses Problem ARM-, Ubuntu- oder Raspberry-Pi-spezifisch ist. Aber für zwei Stunden Betrieb waren das für meinen Geschmack recht viele Abstürze …

Quellen/Links

Raspberry Pi OS »Bookworm«

12. Oktober 2023 um 17:21

Seit gestern ist die neue Version von Raspberry Pi OS auf der Basis von Debian 12 (»Bookworm«) verfügbar. Diese Version ist Voraussetzung für den Raspberry Pi 5, läuft aber natürlich auch auf älteren Raspberry Pis. Ich habe meine Tests auf einem Pi 5 sowie einem Pi 400 durchgeführt.

Auf den ersten Blick sieht der Desktop auf der Basis von LXDE nahezu unverändert aus. Aber dieser Eindruck täuscht erheblich: Raspberry Pi OS verwendet jetzt Wayland, PipeWire und den NetworkManager.

Auf den Modellen Pi 4, Pi 400 und Pi 5 läuft der Pixel Desktop unter Wayland

Wayland für Pi 4 und 5, Abschied von X in Raten

Auf aktuellen Raspberry-Pi-Modellen (Pi 4, Pi 400, Pi 5) kommt nun standardmäßig Wayland statt xorg als Fundament für das Grafiksystem zum Einsatz.

pi5$ echo $XDG_SESSION_TYPE
  wayland

Das ist ein großer Schritt, weil dafür viele Komponenten verändert bzw. hinzugefügt werden mussten:

  • Compositor: Wayfire
  • Panel/Desktop-Shell: wf-panel-pi

Zusammen mit dem Panel mussten auch die diversen Plugins für das Menü, die Bluetooth- und WLAN-Konfiguration, Lautstärkeeinstellung usw. neu implementiert werden.

Das für Wayland neu implementierte Panel hat zwei Plugins, die die CPU-Auslastung und -Temperatur anzeigen

Der Wayland-Umstieg ist mit den von anderen Desktop-Systemen bekannten Einschränkungen bzw. Kinderkrankheiten verbunden: Fernwartung, Screenshots usw. zicken bzw. funktionieren gar nicht. Auf das Thema VNC und Remote Desktop gehe ich hier in einem eigenen Artikel ein. Zum Erstellen von Screenshots verwenden Sie am besten das Kommando grim (siehe Projektseite). Gimp und scrot liefern lediglich schwarze Bilder, shutter stürzt ab.

Ältere Raspberry-Pi-Modelle (Pi 3, Zero etc.) verwenden aufgrund von Performance-Problemen weiterhin xorg. Aber auch bei diesen Modellen ist in Zukunft der Wechsel zu Wayland geplant.

Audio-System PipeWire

Nach Fedora, Ubuntu & Co. verwendet nun auch Raspberry Pi OS das neue PipeWire-Audiosystem. Es ersetzt PulseAudio. Für die Desktop-Nutzung der Audio-Funktionen sollten sich dadurch nichts ändern. Wenn Sie Audio-Funktionen per Script steuern möchten, müssen Sie sich an die neuen pw-xxx-Kommandos gewöhnen (siehe https://docs.pipewire.org/page_tools.html).

Netzwerkkonfiguration mit dem NetworkManager

Ähnlich wie beim Audio-System passt sich Raspberry Pi OS auch bei der Netzwerkkonfiguration den anderen Distributionen an und verwendet nun den NetworkManager als Backend. dhcpcd hat ausgedient. Wiederum ist von der Änderung an der Oberfläche nicht viel zu sehen. Die Konfigurationswerkzeuge zur Herstellung einer WLAN-Verbindung sehen ähnlich aus wie bisher. Allerdings gibt es nun diverse neue Funktionen, z.B. zur Herstellung von VPN-Verbindungen. Änderung ergeben sich auch, wenn Sie die Netzwerkkonfiguration per Script verändern möchten. Das wichtigste neue Kommando ist nmcli. Die Konfigurationsdateien werden in /etc/NetworkManager gespeichert. WLAN-Passwörter landen in /etc/NetworkManager/system-connections/*.conf.

Bei meinen Tests traten im Zusammenspiel mit dem Raspberry Pi Imager bei der Vorweg-Konfiguration (z.B. für Headless-Systeme) noch Fehler auf. Es ist aber zu erwarten/hoffen, dass diese bald gelöst sein werden.

Webbrowser: Firefox oder Chromium?

In der Vergangenheit galt Chromium als Default-Webbrowser für Raspberry Pi OS. In Kooperation mit Mozilla wurde nun auch Firefox besser an die Hardware- und Software-Eigenheiten angepasst und wird nun als gleichwertige Alternative angeboten. Standardmäßig sind beide Programme installiert. Den Default-Webbrowser können Sie im Programm Raspberry-Pi-Konfiguration festlegen.

Mathematica

Aus nostalgischen Gründen bin ich ein großer Fan von Mathematica und finde es fantastisch, dass das Programm Raspberry-Pi-OS-Anwendern kostenlos zur Verfügung steht. Das gilt auch für die neue Version von Raspberry Pi OS — aber aktuell nicht auf dem Pi 5. Dort erscheint beim Start der Hinweis, dass ein Lizenzcode erforderlich ist. Anscheinend soll dieses Problem
noch behoben werden. Die Raspberry Pi Foundation wartet diesbezüglich auf ein Update von Wolfram (Quelle).
Update 9.11.2023: Mit den neuesten Updates funktioniert nun auch Mathematica wieder — und zwar schneller denn je!

Versionsnummern

Dank des neuen Fundaments auf der Basis von Debian 12 haben sich viele Versionsnummern geändert:

Basis             Desktop              Programmierung   Server
---------------   ------------------   --------------   --------------
Kernel      6.1   Gimp          2.10   bash       5.2   Apache     2.4
glibc      2.36   LibreOffice    7.4   gcc       12.2   CUPS       2.4
Mesa       23.2   LXDE            11   Java        17   MariaDB  10.11
Systemd     247   VLC            3.0   PHP        8.2   OpenSSH    9.2
X-Server   21.1                        Python    3.11   Samba     4.17
Wayland    1.21

Python-Module

Bisher war es unter Python gebräuchlich, Zusatzmodule einfach mit pip bzw. pip3 zu installieren. In aktuellen Python-Versionen ist das nicht mehr erwünscht und führt zu einem Fehler:

$ pip install --user matplotlib

error: externally-managed-environment

  This environment is externally managed
  To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.

    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.

    For more information visit http://rptl.io/venv

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

Es gibt zwei Auswege:

Der geänderte Umgang mit Python-Modulen hat übrigens nichts mit Raspberry Pi OS zu tun, sondern ist eine von der Python-Entwicklergemeinde vorgegebene Änderung, die alle modernen Linux-Distributionen betrifft.

32 oder 64-Bit?

Auf https://www.raspberrypi.com/software/operating-systems sowie im Programm Raspberry Pi Imager wird nach wie vor die 32-Bit-Version von Raspberry Pi OS empfohlen. Die 64-Bit-Version ist dort nur die zweite Option.

Ich habe meine Tests dagegen mit der 64-Bit-Version durchgeführt, die für Pi-Modelle mit mehr als 2 GByte zweckmäßiger ist, einzelnen Prozessen mehr RAM zuordnen kann und etwas mehr Geschwindigkeit verspricht.

Interessanterweise kommt je nach Raspberry-Pi-Modell eine unterschiedliche Pagesize zum Einsatz: 16 kByte auf dem Raspberry Pi 5 aber wie bisher 4 kByte auf dem Raspberry Pi 400.

pi5$ getconf PAGESIZE
16384

pi400$ getconf PAGESIZE
4096

Die 16-kByte-Pagesize ist übrigens zu manchen Programmen inkompatibel. Unter anderem kann deswegen Geekbench 6.2 nicht in der 64-Bit-Version von Raspberry Pi OS ausgeführt werden.

Lüftersteuerung

Der Raspberry Pi 5 enthält eine Buchse zum Anschluss eines CPU-Lüfters. Raspberry Pi OS kümmert sich darum, den Lüfter nur nach Bedarf einzuschalten, und auch dann dynamisch (also nur in der erforderlichen Drehzahl). Im Leerlaufbetrieb bleibt der Raspberry Pi 5 lautlos.

Upgrade

Ein Upgrade eines bereits installierten Raspberry Pi OS »Bullseye« auf Version »Bookworm« ist theoretisch durch eine Veränderung der Paketquellen möglich (siehe z.B. hier im Raspberry-Pi-Forum). Diese Vorgehensweise wird aber explizit nicht unterstützt und führt nach meinen eigenen Erfahrungen oft zu massiven Problemen. Wenn Sie die aktuelle Version von Raspberry Pi OS nutzen möchten, müssen Sie also eine SD-Karte neu damit einrichten. Das hat natürlich den Nachteil, dass Sie alle Konfigurationsarbeiten wiederholen und ggfs. Ihre eigenen Projekte bzw. Ihren Code manuell übertragen und womöglich auch adaptieren müssen.

Quellen/Links

Linux Script - Postfix Mail Server Logauswertung mit dem Postfix Log Entry Summarizer

28. Februar 2014 um 08:41

Wer sich schon einmal mit MTAs (Mail Transfer Agent) auseinandergesetzt hat, dem wird Postfix sicherlich ein Begriff sein. Postfix zählt zu den bekanntesten Mailservern im Linuxbereich, ist schnell und recht einfach zu konfigurieren, eine gewisse Grundkenntnis vorausgesetzt. Für einen sicheren Mailverkehr möchte ich hier noch einmal auf das Crypto Handbuch verweisen.

Letzte Woche war ja ein wenig Exchange Server im Programm, heute soll es aber um eine Auswertung des Mailverkehrs, welcher täglich über einen Postfix Server rauscht, gehen. 

Postfix Log Entry Summarizer

Hierfür gibt es sicherlich einige Monitoring Tools, eines davon ist Pflogsumm (Postfix Log Entry Summarizer), welches eine ausführliche Auswertung bietet, ohne, dass der Anwender viel konfigurieren muss.

Unter Ubuntu ist dieses Tool recht schnell konfiguriert und im Optimalfall erhaltet ihr am Ende eine Übersicht aller Nachrichten, egal ob gesendet, empfangen oder geblockt. Auch der Traffic, die Menge oder die Mailadressen werden ausgewertet. Bis zu dieser Statistik ist aber noch ein wenig Vorarbeit zu leisten.

Pflogsumm installieren (Ubuntu)

sudo apt-get install pflogsumm 

Postfix Log Entry Summarizer konfigurieren

Ihr habt nun die Möglichkeit das Tool direkt aufzurufen und euch eine Liveauswertung geben zu lassen, um zu sehen was gerade auf dem Mailserver passiert. Pflogsumm macht nichts anderes, als auf die Logfiles des Postfix Server zurückzugreifen und diese auszuwerten. Mit einem Einzeiler lässt sich so eine Statistik in eine Datei schreiben oder per Mail versenden.

sudo pflogsumm -u 5 -h 5 --problems_first -d today /var/log/mail.log >> test oder

sudo pflogsumm -u 5 -h 5 --problems_first -d today /var/log/mail.log | mail -s "Postfix Mail Report" info@example.com

Vorarbeit zur regelmäßigen Postfix Analyse

Eine IST Auswertung mag zwar interessant sein, die regelmäßige Auswertung der letzten Tage ist jedoch um einiges interessanter. Realisierbar ist dies mit den Logs des Vortages, diese werden Mittels logrotate gepackt und können danach ausgewertet werden. Zunächst muss logrotate angepasst werden, damit täglich neue Logs geschrieben werden.

sudo nano /etc/logrotate.conf

/var/log/mail.log {
    missingok
    daily
    rotate 7
    create
    compress
    start 0
    }
sudo nano /etc/logrotate.d/rsyslog

    #/var/log/mail.log

Wenn gewünscht ist, dass die Logrotation pünktlich zu einer gewissen Uhrzeit laufen soll, sagen wir um 2 Uhr Nachts , ist es nötig crontab zu editieren und dort die Laufzeit anzupassen.

sudo nano /etc/cron.daily anzupassen 0 2 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

Skript zur Postfix Analyse 

Nun können wir unser eigenes Script zusammen stellen, welches am Schluss eine Auswertung versendet. 

sudo nano mailstatistiken.sh

#!/bin/bash
#
###############
# mailstats   #
###############

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

# Log Archive entpacken
gunzip /var/log/mail.log.1.gz

#Temporaere Datei anlegen
MAIL=/tmp/mailstats

#Etwas Text zum Anfang
echo "Taeglicher Mail Stats Report, erstellt am $(date "+%H:%M %d.%m.%y")" > $MAIL
echo "Mail Server Aktivitaeten der letzten 24h" >> $MAIL

#Pflogsumm aufrufen
/usr/sbin/pflogsumm --problems_first /var/log/mail.log.1 >> $MAIL

# Versenden der Auswertung
cat /tmp/mailstats | mail -s "Postfix Report $(date --date='yesterday')" stats@example.com

#Archiv wieder packen, damit alles seine Ordnung hat
gzip /var/log/mail.log.1

Insgesamt eine leichte Übung. Das fertige Skript noch mit "chmod +x" ausführbar machen und am besten via "crontab -e" zu einem gewünschten Zeitpunkt ausführen.

Am Ende solltet ihr jeden Tag per Mail eine ausführliche Zusammenfassung der E-Mails Statistiken erhalten.

Grand Totals

------------

messages

   4321   received

   1234   delivered

      5   forwarded

      1   deferred  (3  deferrals)

      0   bounced

      0   rejected (0%)

      0   reject warnings

      0   held

      0   discarded (0%)

   1234m  bytes received

   1234m  bytes delivered

    123   senders

    321   sending hosts/domains

   1234   recipients

    123   recipient hosts/domains

message deferral detail

-----------------------

  smtp (total: 3)

         3   invalid sender domain 'example.de' (misconfigured ...

message bounce detail (by relay): none

message reject detail: none

message reject warning detail: none

message hold detail: none

message discard detail: none

smtp delivery failures: none

Warnings: none

Fatal Errors: none

Panics: none

Master daemon messages: none

Per-Hour Traffic Summary

------------------------

    time          received  delivered   deferred    bounced     rejected

    --------------------------------------------------------------------

    0000-0100           0          0          0          0          0 
.....

 

Neue Services: Hat.sh & Wormhole

06. September 2023 um 10:02

Zwei neue adminForge Services können ab sofort genutzt werden. 1) Hat.sh ist eine Webanwendung, die eine sichere lokale Dateiverschlüsselung im Browser ermöglicht. Sie ist schnell, sicher und verwendet moderne kryptografische Algorithmen mit Chunked-AEAD-Stream-Verschlüsselung/Entschlüsselung. 2)...

by adminForge.

❌