Normale Ansicht

Es gibt neue verfügbare Artikel. Klicken Sie, um die Seite zu aktualisieren.
Ältere BeiträgeKoflers Blog

📚 Photovoltaik-Buch erschienen

25. November 2022 um 16:28

Zusammen mit Christian Ofenheusle habe ich im Sommer das Buch »Photovoltaik« verfasst. Es richtet sich an alle, die Stromkosten mit einer PV-Anlage senken möchten oder ein Balkonkraftwerk in Betrieb nehmen möchten. Das Buch erklärt alle relevanten Grundlagen und konzentriert sich auf die optimale Planung. Nach der Lektüre verstehen Sie Ihre (geplante) PV-Anlage und können das Angebot Ihrer Installateurfirma kritisch hinterfragen.

Cover

Erschienen: Ende November 2022
Umfang: 214 Seiten
Autoren: Michael Kofler und Christian Ofenheusle
ISBN: 978-3-8362-9439-3
Preis: Euro 39,90 (in D inkl. MWSt.)

Aus dem Inhalt

  • Von Kilo, Watt und Peak: Wie viel Strom braucht man eigentlich? Wo kann man sparen?
  • Technik: PV-Module, Wechselrichter, Maximum Power Point Tracking
  • Speichersysteme und Batterien
  • Notstromfunktion und Inselanlage
  • Das Balkonkraftwerk
  • PV-Anlagen für Ein- und Mehrfamilienhäuser
  • Wärmepumpen
  • Best Practices und Fallstricke
  • Förderungen und EEG

Mehr Details …

Multipass: Ubuntu-VMs unter Windows, macOS und Linux ausführen

19. September 2022 um 14:49

Multipass ist eine von Canonical entwickelte Software, um Ubuntu als virtuelle Maschine unter Linux, Windows oder macOS auszuführen. Ich bin über Multipass gestolpert, weil ich eine unkomplizierte Möglichkeit suchte, Ubuntu unter macOS mit M1/M2-CPU auszuführen. Dieser Artikel stellt zuerst Multipass kurz vor. Es folgt eine persönliche (= subjektive) Wertung.

Multipass installieren

  • Windows, macOS: Für Windows und macOS gibt es jeweils einen Installer, siehe https://multipass.run/install
  • Linux: Für Linux steht leider nur ein Snap-Paket zur Verfügung: sudo snap install multipass

  • Arch Linux stellt Multipass als AUR-Paket zur Verfügung: https://aur.archlinux.org/packages/canonical-multipass (Paket wird lokal kompiliert, das dauert > 15 Minuten; bei mir gab es zuletzt einen Fehler, dem ich nicht auf den Grund gegangen bin)

Multipass Command Line Interface (CLI)

Multipass wird über Kommandos in der Konsole genutzt. Um zu überprüfen, dass die Installation geklappt hat, führen Sie multipass version aus:

multipass version

  multipass   1.10.1+mac
  multipassd  1.10.1+mac

Die zur Auswahl stehenden Multipass-Images ermittelt multipass find:

multipass find

  Image     Aliases     Version    Description
  18.04     bionic      20220901   Ubuntu 18.04 LTS
  20.04     focal,lts   20220824   Ubuntu 20.04 LTS
  22.04     jammy       20220902   Ubuntu 22.04 LTS
  docker                latest     A Docker environment ...
  ...

Um eine neue Instanz zu starten, führen Sie multipass launch aus. Beim ersten Start muss das betreffende Image heruntergeladen werden, hier für Ubuntu 22.04. Der Start weiterer Instanzen erfolgt wesentlich schneller.
Das folgende Kommando erzeugt eine Instanz von Ubuntu 22.04 und gibt dieser den Namen myinstance.

multipass launch -n myinstance 22.04

Standardmäßig erhält die neue VM eine CPU, 1 GB RAM und eine Disk mit 5 GB und NAT-Networking. Andere Eckdaten können Sie mit Parametern festlegen:

  • -c <n>: Anzahl der CPU-Cores
  • -d <n>G: Disk-Größe, -d 15G für 15 GB Disk
  • -m <n>M oder -m <n>G: RAM, z.B. -m 4G für 4 GB RAM
  • -n <name> oder -n primary: gibt der VM einen Namen bzw. macht sie zur primären Instanz

multipass launch startet die VM, führt sie aber im Hintergrund aus. Um die VM zu bedienen, führen Sie multipass shell <name> aus:

multipass shell myinstance

  Welcome to Ubuntu 22.04.1 LTS (GNU/Linux 5.15.0-47-generic aarch64)
  ...

Als Standard-User ist ubuntu aktiv. Dieser Benutzer ist nicht mit einem Passwort abgesichert und hat sudo-Rechte. Auch wenn Multipass-VMs normalerweise nur in einem privaten Netzwerk zugänglich sind (192.168.*.*), sollten Sie den ubuntu-Account mit einem Passwort absichern: sudo passwd ubuntu.

multipass list listet die aktuell eingerichteten Instanzen auf und gibt an, welche IP-Adresse der Instanz zugeordnet ist.

multipass list

  Name          State         IPv4             Image
  primary       Running       192.168.64.7     Ubuntu 22.04 LTS
  myinstance    Running       192.168.64.8     Ubuntu 22.04 LTS

Mit multipass info <name> können Sie mehr Details zu einer VM ermitteln.

multipass info myinstance

  Name:           myinstance
  State:          Running
  IPv4:           192.168.64.8
  Release:        Ubuntu 22.04.1 LTS
  Image hash:     9620f479bd5a (Ubuntu 22.04 LTS)
  Load:           0.28 0.25 0.10
  Disk usage:     1.4G out of 4.7G
  Memory usage:   153.5M out of 961.9M

multipass start <name> oder multipass stop <name> startet bzw. beendet die Ausführung einer VM.

multipass delete <name> löscht die VM vorläufig. Der Vorgang kann mit multipass revover rückgängig gemacht werden.

Erst multipass purge entfernt die zuvor gelöschten VMs endgültig und gibt den Speicher frei.

Weitere CLI-Kommandos sind hier dokumentiert.

Primäre VM

Eine VM kann als »primär« gekennzeichnet werden (launch -n primary ...). Das hat zwei Konsequenzen:

  • An einige multipass-Kommando braucht kein Name als Parameter übergeben werden. Beispielsweise bezieht sich multipass shell automatisch auf die primäre Instanz.
  • Innerhalb der VM steht das lokale Heimatverzeichnis (also das des Host-Computers) unter /home/ubuntu/Home zur Verfügung. Das ermöglicht einen unkomplizierten, nahtlosen Zugriff auf Host-Dateien durch die VM.

Bridged Networking

Wenn Sie VMs in das lokale Netzwerk integrieren möchten, ermitteln Sie zuerst mit multipass networks die zur Auswahl stehenden Netzwerkschnittstellen und aktivieren dann eine davon für die Netzwerkbrücke:

multipass networks

  Name     Type         Description
  bridge0  bridge       Network bridge with en2, en3
  en0      ethernet     Ethernet
  en1      wifi         Wi-Fi
  en2      thunderbolt  Thunderbolt 1
  ...

multipass set local.bridged-network=en1

In der Folge können Sie an multipass launch die Option --bridged übergeben.

Ubuntu samt Desktop installieren

Um Ubuntu samt Desktop zu installieren, müssen Sie die VM ausreichend groß dimensionieren:

multipass launch 22.04 -n primary -c 2 -m 4G -d 15G

  Launched: primary                                                               
  Mounted '/Users/kofler' into 'primary:Home'

Nach dem Einrichten verbinden Sie sich mit der VM, legen ein Passwort für den Benutzer ubuntu fest und installieren alle Updates:

multipass shell

  ubuntu@primary:~$ sudo passwd ubuntu
  New password: 
  Retype new password: 

  ubuntu@primary:~$ sudo apt update

  ubuntu@primary:~$ sudo apt full-upgrade -y

Zur Installation eines Desktops samt RDP-Server gehen Sie so vor:

  ubuntu@primary:~$ sudo apt install ubuntu-desktop xrdp -y

Sie müssen wissen, welche IP-Adresse Ihre VM hat. Dazu führen Sie innerhalb der VM hostname -I aus, oder außerhalb multipass list.

ubuntu@primary:~$ hostname -I

  192.168.64.10

Jetzt brauchen Sie einen RDP-Client. Unter Linux funktionieren die meisten VNC-Viewer. Unter macOS installieren Sie am einfachsten im App Store Microsoft Remote Desktop. Dort richten Sie eine neue Verbindung ein und verwenden die zuvor ermittelte IP-Adresse. In der Regel ist es sinnvoll, die Option Start session in full screen zu deaktivieren. Hingegen ist die Optionen Update the session resultion on resize zweckmäßig. Die Anpassung der virtuellen Bildschirmauflösung hat bei meinen Tests (macOS als Host-System) ausgezeichnet funktioniert. Außerdem sollten Sie als User account ubuntu angeben.

Beim ersten Start erscheint der Ubuntu-Setup-Assistent. Dort können Sie das deutsche Tastaturlayout hinzufügen. (Standardmäßig ist nur das englische Layout installiert.)

Der Desktop erscheint in englischer Sprache. Die Umstellung auf Deutsch können Sie im Programm Settings durchführen. Die Änderung wird nur wirksam, wenn Sie sich aus- und neu einloggen.

Grundsätzlich hat der Ubuntu-Desktop bei meinen Tests ausgezeichnet funktioniert — allerdings mit »Vanilla Gnome«, d.h. ohne die Ubuntu-spezifischen Erweiterungen wie dem verschiebbaren Dock. Auch die entsprechenden Optionen im Programm Einstellungen fehlen. (Die Optionen tauchen auf, wenn das Einstellungsprogramm mit XDG_CURRENT_DESKTOP=ubuntu:GNOME gnome-control-center gestartet wird. Aber die Ubuntu-spezifischen Einstellungen bleiben wirkungslos.)

Ubuntu wird auf einem Mac mit M1-CPU ausgeführt und über ein RDP-Fenster bedient.

Multipass versus herkömmliche Virtualisierungssysteme versus Container

Eigentlich möchte man meinen, es gäbe bereits genug Software zur Ausführung von virtuellen Maschinen und Containern. Was kann Multipass also bieten, was andere Programme nicht können? Und wo sind die Grenzen von Multipass?

Im Gegensatz zu Docker oder Podman findet bei Multipass eine echte Virtualisierung statt. Der Overhead einer Installation ist deswegen vergleichsweise groß. Andererseits steht Ubuntu »komplett« zur Verfügung, d.h. mit systemd, mit verschiedenen Benutzern etc.

Standardmäßig werden keine Desktop-Pakete installiert. Diese können nachinstalliert werden. Das setzt aber voraus, dass die VM ausreichend groß dimensioniert ist (RAM, Speicherplatz).

Im Vergleich zu Virtualisierungsprogrammen wie VirtualBox, VMware & Co. hat Multipass keine grafische Oberfläche. Für Profis ist das kein Nachteil, für Einsteiger schon. Es gibt auch keine Grafiktreiber etc. Die Desktop-Nutzung erfolgt über RDP (ein Netzwerkprotokoll) und ist vergleichsweise langsam. Ausreichend schnell für Entwickleraufgaben, aber nicht ideal, um Videos abzuspielen oder Spiele zu spielen.

Der größte Nachteil von Multipass im Vergleich zu Virtualisierungs- und Container-Software besteht darin, dass nur Ubuntu ausgeführt werden kann. Multipass ist also keine universelle Lösung, sondern ein Admin- und Developer-Tool für die Ubuntu-Gemeinde.

Positiv: Multipass ist Open-Source-Software, die Quellen sind auf GitHub zu finden.

Persönliche Bewertung

Meine Beweggründe, mich überhaupt mit Multipass auseinanderzusetzen, ist der Linux-Unterricht. 2/3 der Studentinnen arbeiten mit einem Windows-Notebook, 1/3 mit MacBooks, vielleicht halb/halb mit Intel/Apple-CPU. Jetzt sollen alle eine VM mit Ubuntu installieren. Früher war das einfach: Alle verwenden VirtualBox und richten damit eine VM mit Ubuntu ein (oder Fedora, oder Debian, egal, solange es für alle einheitlich ist).

Heute geht das nicht mehr:

  • Unter Windows zickt VirtualBox in einen unerträglichen Ausmaß. Ob Microsoft daran Schuld ist (ständige Änderungen an Hyper-V) oder Virtualbox (weil es Hyper-V nicht korrekt nutzt), kann ich nicht beurteile — es ist eigentlich egal. Fakt ist, dass in einer Gruppe von 20 Studierenden VirtualBox bei mindestens zwei nicht funktioniert und die Probleme sich nicht trivial lösen lassen.
  • Unter macOS läuft VirtualBox nur auf alten Geräten mit Intel-CPU. Auf modernen Geräten mit Apple Silicon (M1, M2 usw.) ist Virtualisierung zwar auch möglich, aber das ist entweder teuer (Parallels, VMware) oder wenig intuitiv (UTM, siehe https://mac.getutm.app/).

Unter Windows kann ich auf WSL ausweichen. Das funktioniert verblüffend gut, aber ist für den Unterricht kein vollwertiger Ersatz. Kein cron, kein systemd etc. Grafische Desktop-Oberflächen laufen auch nur über Umwegen.

Auf allen OS kann ich Docker verwenden. Aber ein Ubuntu-Container ist halt auch kein vollwertiger Ersatz, selbst wenn man vom fehlenden Desktop absieht. Docker hat eine ganz andere Zielsetzung (und da brilliert es).

Zurück zu Multipass: Der Charme besteht darin, dass es OS-übergreifend einen einheitlichen Weg bietet, um Ubuntu in einer virtuellen Maschine auszuführen. Der Desktop-Zugriff erfolgt über RDP, was für den Unterricht gut genug ist. Multipass greift auf das Virtualisierungsframework des jeweiligen Betriebssystem zurück, erfindet diesbezüglich das Rad also nicht neu.

Aber:

  • Das Einrichten einer Ubuntu-VM in Multipass ist nicht trivial. Für meinen spezifischen Einsatzzweck ist es jedenfalls ungeeignet. Multipass richtet sich an Profis, nicht an Einsteiger.
  • Ubuntu-only ist auch irgendwie sinnlos. Aus meiner Sicht ist Ubuntu für den Linux-Unterricht gut genug, aber vielleicht will ich Server-Administration unterrichten. Da wäre mir dann Rocky oder Alma Linux lieber. Oder ich bin mit Debian vertrauter als mit Ubuntu, will Snap aus dem Weg gehen usw.

  • Linux-hostseitig wird Multipass auch nur als Snap-Paket angeboten. In der engen Canonical-Welt mag das OK sein, aber nicht jeder ist ein Fan von Snap.

Langer Rede kurzer Sinn: Multipass richtet sich in erster Linie an Entwickler und Admins, die ausschließlich mit Ubuntu arbeiten. Für diese Zielgruppe ist Multipass durchaus interessant.

Multipass ist auch ein relativ einfacher Weg, um Ubuntu (samt Desktop) auf einem Mac mit M1/M2-CPU auszuführen.

Darüberhinaus ist es aber wohl doch nur eine weitere Insellösung/Eigenentwicklung von Canonical mit ungewisser Zukunft. Die Zielgruppe ist so eng, dass ein Durchbruch aus der Nische nicht zu erwarten ist. Das ist schade, weil Multipass durchaus vielversprechende Ansätze zeigt.

Quellen/Links

Ubuntu 22.04 in VirtualBox (Windows-Host) installieren

17. Oktober 2022 um 19:17

Wer Linux ausprobieren oder samt Desktop anwenden möchte, unter Windows arbeitet und keine physische Installation durchführen will, für den/die ist das Virtualisierungssystem VirtualBox eine attraktive Wahl. Dieser Artikel fasst die wichtigsten Schritte einer Installation von Ubuntu 22.04 zusammen und erklärt auch die Nutzung der Gasterweiterungen und die Konfiguration für eine SSH-Verbindung zwischen Host (=Windows) und der Virtuellen Maschine (VM).

Testumgebung: Windows-PC mit Intel-CPU, Windows 11 Pro mit 22H2-Update (Hyper-V und WSL aktiviert), VirtualBox 7.0

VirtualBox 7 unter Windows 11 mit einer virtuellen Maschine mit Ubuntu 22.04

Der erste Schritt ist die Installation von VirtualBox. Dieses Virtualisierungssystem von Oracle kann von der folgenden Seite kostenlos heruntergeladen werden:

https://www.virtualbox.org/wiki/Downloads

Beachten Sie, dass das Grundprodukt VirtualBox zwar kostenlos genutzt werden darf, das diese Regel aber nicht für das optionale VirtualBox Extension Pack gilt! Dessen Nutzung ist nur Privatnutzern bzw. zur Evaluation erlaubt, erfordert beim Einsatz in Firmen aber eine Lizenz! Die im Extension Pack enthaltenen Funktionen (RDP, Disk Image Verschlüsselung, NVMe und PXE Boot für Intel Systeme) werden normalerweise nicht benötigt. Wenn Sie unsicher sind, installieren Sie das Extension Pack nicht!

Virtuelle Maschine (VM) einrichten

Als Grundlage für die Installation müssen Sie von der Ubuntu-Website ein ISO-Image für Ubuntu 22.04 (64 Bit) herunterladen.

https://ubuntu.com/download/desktop

Mit dem Button Neu starten Sie die Installation einer neuen VM. Im ersten Dialog müssen Sie der VM einen Namen geben, einen Speicherort am Hostsystem (in unserem Fall ist das Windows) angeben, ein ISO-Image auswählen sowie Linux-Typ und -Versionsnummer auswählen.

Neue virtuelle Maschine einrichten

Ubuntu 22.04 wird von VirtualBox besonders gut unterstützt. Standardmäßig wird eine Unattended Installation durchgeführt. Damit kommen Sie mit dem Installationsprogramm von Ubuntu gar nicht in Berührung. Stattdessen geben Sie den Hostnamen, den Benutzernamen und das Passwort für die Ubuntu-VM vorweg in einem VirtualBox-Dialog an. In der virtuellen Maschine werden die sogenannten »Gasterweiterungen« automatisch installiert. Das ermöglicht eine bessere Integration zwischen Hostsystem (Windows) und Gast (Ubuntu), z.B. zum Austausch von Text über die Zwischenablage oder zum Austausch von Dateien über ein gemeinsames Verzeichnis (Shared Folder).

Tipp: Verwenden Sie ein Passwort ohne Sonderzeichen und ohne die Buchstaben Y und Z. Nach der Installation gilt für den Ubuntu-Login das US-Tastaturlayout.

Einstellungen für die »Unattended Installation«

Bevor es richtig losgeht, müssen Sie noch die Eckdaten der VM einstellen. Meine Empfehlung:

  • unbedingt 4 GByte Hauptspeicher/RAM (nicht nur 2 GByte, wie der VirtualBox-Assistent empfieht)
  • 2 CPU-Cores
  • 25 GByte Disk Size (außer, Sie haben vor, in der VM viele große Dateien zu speichern — dann brauchen Sie mehr)

Den Arbeitsspeicher und das RAM können Sie bei Bedarf später unkompliziert verändern. Die Disk-Größe kann hingegen nur sehr umständlich vergrößert werden, eine Verkleinerung ist nahezu unmöglich. Vergleichsweise einfach ist es, später eine zweite Disk hinzuzufügen. Allerdings müssen Sie schon etwas Linux-Erfahrung haben, um die zweite Disk dann auch innerhalb von Ubuntu sinnvoll nützen zu können.

RAM-Größe und CPU-Anzahl einstellen
Größe der virtuellen Disk konfigurieren
Zusammenfassung aller Einstellungen

Nach dem Zusammenfassungsdialog startet VirtualBox die virtuelle Maschine und führt darin — wie von Zauberhand — die gesamte Installation durch. Das dauert einige Minuten, während der Sie nur zusehen können (oder sich einer anderen Aufgabe zuwenden).

Erste Schritte in Ubuntu

Nach Abschluss der Installation wird die virtuelle Maschine neu gestartet. Sie können sich jetzt einloggen, wobei Sie den im Dialog »Unattended Installation« Namen und das dort gewählte Passwort angeben. Das VirtualBox-Fenster ist anfänglich ziemlich klein. Sie können es einfach vergrößern, die Auflösung des Desktops der virtuellen Maschine passt sich automatisch an.

Ein Nachteil der Unattended Installation besteht darin, dass Ubuntu beim ersten Start Englisch als Sprache verwendet und ein US-Tastaturlayout vorsieht. Um die Einstellungen zu ändern, starten Sie das Programm Settings, am einfachsten im Systemmenü, das Sie rechts oben im Panel öffnen.

Die Spracheinstellungen finden Sie im Modul Region & Lanugage. Mit Manage Installed Languages und Install/Remove Language fügen Sie German hinzu. (Dabei müssen diverse Pakete installiert werden, weswegen dieser Vorgang ca. eine Minute dauert.) Schließlich können Sie die Präferenz der Sprachen einstellen, in dem Sie Deutsch in der Liste der installierten Sprachen ganz nach oben verschieben. Die geänderte Sprache ist noch nicht aktiv — dazu müssen Sie sich aus- und neu einloggen.

Vorher sollten Sie gleich noch das Tastaturlayout ändern. Dazu wechseln Sie im Einstellungsprogramm in den Dialog Keyboard, fügen zuerst das neue Layout German hinzu und entfernen dann das Layout English (US).

Damit diese Einstellungen wirksam werden, müssen Sie sich aus- und neu einloggen. Im Systemmenü, das Sie rechts oben im Panel öffnen, klicken Sie zuerst auf Power Off/Log Out und im nun erscheinenden Untermenü auf Log Out.

Default-Sprache einstellen
Tastaturlayout einstellen

sudo-Ärger

Normalerweise hat der erste in Ubuntu eingerichtete Benutzer sudo-Rechte. Dafür gibt es unter Ubuntu kein Passwort für den Benutzer root.

Wenn Sie in VirtualBox die Unattended Installation durchgeführt haben, gelten andere Regeln: Der eingerichtete Benutzer gehört nicht zur sudo-Gruppe und hat entsprechend keine administrativen Rechte. Dafür hat der Benutzer root das gleiche Passwort, das Sie dem Standardbenutzer zugewiesen haben.

Damit sich Ubuntu auch in VirtualBox so verhält wie immer, öffnen Sie über Aktivitäten ein Terminal-Fenster und führen dann die folgenden Kommandos aus, mit denen Sie den Standardbenutzer der Gruppe sudo hinzufügen:

username$ su -l 

  Passwort: ********   (das Passwort, das Sie in VirtualBox 
                        vor der Installation angegeben haben)

root# usermod -a -G sudo <username>

Anstelle von <username> geben Sie den Namen Ihres Accounts an.

Die Änderung wird wiederum erst wirksam, wenn Sie sich in Ubuntu aus- und neu einloggen.

Nachdem Sie sudo repariert haben, können Sie — wenn Sie möchten — noch das Tastaturlayout für den Ubuntu-Login auf Deutsch umstellen. Dazu öffnen Sie ein Terminal-Fenster und führen dort sudo dpkg-reconfigure keyboard-configuration aus. Als Tastaturmodell wählen Sie Generic 105-key PC, als Sprache German. Alle weiteren Optionen bestätigen Sie einfach mit Return.

Zwischenablage aktivieren

Damit Sie unkompliziert Text zwischen dem Host-Rechner (Windows) und der virtuellen Maschine (Ubuntu) über die Zwischenablage austauschen können, führen Sie im Menü des VirtualBox-Fensters Geräte / Gemeinsame Zwischenablage / Bidirektional aus. (Diese Funktion setzt voraus, dass in der virtuellen Maschine die VirtualBox-Gasterweiterungen installiert sind. Das ist bei der Unattached Installation automatisch der Fall. Wenn Sie eine manuelle Installation von Ubuntu durchgeführt haben, müssen Sie die Pakete virtualbox-guest-utils und virtualbox-guest-x11 installieren und außerdem den Ubuntu-Standardbenutzer der zusätzlichen Gruppe vboxsf zuordnen.)

Aktivierung der gemeinsamen Zwischenablage

Gemeinsames Verzeichnis zum Dateiaustausch einrichten

Über Geräte / Gemeinsame Ordner gelangen Sie in einen Dialog, in dem Sie ein Windows-Verzeichnis (in der folgenden Abbildung: Dokumente) mit einem Verzeichnis innerhalb der virtuellen Maschine (hier: /mnt/win-documents) verbinden können. Damit können Sie innerhalb der virtuellen Maschine unkompliziert auf Windows-Dateien zugreifen. (Auch diese Funktion setzt voraus, dass zuvor die VirtualBox-Gasterweiterungen installiert wurden.)

Verzeichnis zum Austausch von Dateien zwischen Host (hier: Windows) und virtueller Maschine (hier: Ubuntu) einrichten

SSH-Zugriff aktivieren

Wenn ich auf Kommandoebene arbeite, bediene ich meine virtuellen Maschinen gerne über SSH. Unter Ubuntu muss dazu der SSH-Server installiert werden, was mit sudo apt install openssh-server rasch gelingt.

Das reicht aber noch nicht: VirtualBox gibt der virtuellen Maschine standardmäßig mittels Network Address Translation Zugriff auf die Netzwerkverbindung des Host-Computers. Die virtuelle Maschine ist aber im Netzwerk des Hosts unsichtbar, eine SSH-Verbindung ist unmöglich.

Die einfachste Lösung ist eine Port-Weiterleitung. Dazu führen Sie im VirtualBox-Fenster Geräte / Netzwerk / Einstellungen aus, klappen bei Adapter 1 den Bereich Erweitert aus und klicken auf Port-Weiterleitung. Nun richten Sie eine neue Regel ein, die Port 2222 des Hosts (127.0.0.1) mit Port 22 der virtuellen Maschine (10.0.2.15) verbindet.

Eine Port-Weiterleitung in der Netzwerkkonfiguration ermöglicht eine SSH-Verbindung zwischen Host (Windows) und Gast (Ubuntu)

Nachdem Sie die Einstellungen gespeichert haben (ein Neustart der virtuellen Maschine ist nicht notwendig), können Sie in cmd.exe oder in der PowerShell von Windows mit dem folgenden Kommando eine SSH-Verbindung in die virtuelle Maschine herstellen:

ssh -p 2222 name@localhost

Wichtig ist dabei die Option -p 2222. ssh soll nicht wie üblich Port 22 verwenden, sondern eben Port 2222. Wichtig ist auch, dass Sie als Zieladresse localhost angeben. Aufgrund der Port-Weiterleitung landen Sie wunschgemäß in der virtuellen Maschine. Anstelle von name geben Sie Ihren Ubuntu-Account-Namen an.

Fazit: VirtualBox 7 für Windows ist wieder OK

Die Windows-Variante von VirtualBox 7 hat mich mit dem Programm ein wenig versöhnt. In den letzten Jahren hatte ich unter Windows nämlich derart häufig Stabilitätsprobleme (ausgelöst vermutlich durch das schlechte Zusammenspiel mit Hyper-V), dass ich den Einsatz von VirtualBox für Windows nicht mehr empfohlen habe und diesen auch im Linux-Unterricht — so gut wie möglich — vermieden habe. Mit Version 7 hatte ich diesbezüglich (bisher) keine Probleme — gut so.

Ein wenig irritierend ist der bunte Mix von deutschen und englischen Texten in den Dialogen. Aus meiner Sicht wäre English Only die beste Option. Aber wenn eine deutschsprachige GUI erwünscht ist, wäre es gut, die Lokalisierung konsequent fertigzustellen. So wirkt das halbfertig.

Die Unattended Installation überzeugt mich nicht: Was ich an Zeit während der Installation gespart habe, musste ich später wieder investieren, um Sprach- und Tastatureinstellungen zu ändern und die sudo-Konfiguration zu reparieren. Da ist mir eine manuelle Installation lieber, das weiß ich wenigstens, was ich bekomme. Als einziger Vorteil bleibt die automatische Installation der VirtualBox-Gasterweiterungen, deren manuelle Durchführung mühsam ist.

Nachwort: VirtualBox 7 für Macs mit M1/M2

VirtualBox 7 unterstützt erstmals auch Apple Rechner mit Apple Silicon (M1, M2 …). Oracle weist explizit darauf hin, dass diese Funktionen noch experimentell und langsam sind. Ich habe VirtualBox 7 auf einem Mac Mini mit M1-CPU dennoch ausprobiert, und war etwas konsterniert: Die virtuellen Maschinen müssen eine 32-Bit x86-CPU verwenden (kein 64-Bit x86, auch nicht ARM).

Ganz egal, wie die Performance ist, engt das die Auswahl doch sehr stark ein. Viele Desktop-Distributionen für x86 sind 64-Bit-only. Ich hätte eigentlich erwartet, dass VirtualBox wie UTM auf virtuelle Maschinen für die ARM-Plattform setzt, aber meine diesbezüglichen Experimente sind ins Leere gegangen.

Gescheitert bin ich selbst mit dem Versuch, eine 32-Bit-Version (i386) von Debian zu installieren — selbst hier die Nachricht unsupported CPU. Diese Beta ist wirklich noch sehr experimentell :-(

📚 Hacking & Security (3. Aufl.) erschienen

25. November 2022 um 16:20

Unser Hacking- und Security-Bestseller liegt ab sofort in der 3. Auflage vor!

Für die hier vorliegende Auflage haben wir das Buch umfassend aktualisiert. Neu hinzugekommen sind die Behandlung zusätzlicher Hacking-Techniken, Testumgebungen und Tools. Besonders erwähnen möchten wir:

  • IT-Forensik (neues Kapitel)
  • Intrusion-Detection-Systeme und Snort (neues Kapitel)
  • Bug-Bounty-Programme
  • Sliver, Starkiller, Malduino
  • Purple Teaming
  • Linux Kernel Hardening

Mehr Details und Bestellinformationen finden Sie hier.

Ärger mit Arch und NVIDIA

03. Dezember 2022 um 15:11

Wie berichtet, habe ich mein Arbeits-Notebook im Frühjahr 2022 auf Arch Linux umgestellt. Bisher für mich eine Erfolgsgeschichte, alles läuft, wie es soll, und ich habe stets aktuelle Software. Mein Interesse an anderen Distributionen hat seither spürbar nachgelassen.

Mit dem letzten Update, das ich gestern durchgeführt habe, begann allerdings das Grafiksystem zu spinnen. Während sich der Maus-Cursor weiterhin flüssig bewegt, sinkt die Framerate beim Verschieben eines Fensters auf deutlich unter 1 fps (d.h. vernünftiges Arbeiten ist undenkbar).

Die Umstände des Fehlers sind merkwürdig: Der Totaleinbruch der Grafikgeschwindigkeit kommt nur zustande, wenn mein Notebook mit einem externen 4k-Monitor verbunden ist UND der Notebook-Deckel geschlossen ist.

Hardware: Lenovo P1 mit Hybrid-Grafik Intel/NVIDIA (i7-8750H + Quadro P1000 Mobile)
Software: aktueller Kernel (6.0), aktueller proprietärer NVIDIA-Treiber (525.60), Xorg, GDM, Gnome 43)

Interessanterweise wird die Grafikgeschwindigkeit wieder normal, sobald ich den Notebook-Deckel öffne und somit BEIDE Bildschirme aktiv sind. Und, wie gesagt: das Setup hat jetzt über sieben Monate wunderbar funktioniert, ich habe nichts geändert. Irgendein Update (ich kann nicht sagen, welcher Komponente: Kernel, NVIDIA-Treiber, Xorg?) hat das fragile Gleichgewicht gestört.

Die Lösung: optimus-manager

Kurzes googlen führt zu diesem Forumbeitrag von 2021, der exakt mein Problem beschreibt:

https://bbs.archlinux.org/viewtopic.php?id=270330

Die dort beschriebene Lösung: optimus-manager installieren.

Der optimus-manager ist ein kleines Script, um den Grafiktreiber explizit zwischen einer integrierter CPU-Grafik und der externer GPU umzuschalten. Unter Ubuntu hatte ich in der Vergangenheit schon Erfahrungen mit prime-select gemacht. optimus-manager greift offenbar die gleiche Idee und (zumindest was gdm betrifft) den gleichen Code auf.

Die Aktivierung des optimus-manager verlangt die Installation von zwei AUR-Paketen, eben optimus-manager sowie gdm-prime, eine minimal veränderte Variante von gdm. Ich verwende yay zur Installation:

yay -Sy optimus-manager gdm-prime

Optimus ist anscheinend nicht Wayland-kompatibel. Bei mir ist Wayland sowieso deaktiviert (sonst funktioniert der externe Monitor gar nicht), aber gegebenenfalls müssen Sie eine Zeile in /etc/gdb/custom.conf ändern:

# Datei /etc/gdm/custom.conf
[daemon]
# Uncomment the line below to force the login screen to use Xorg
WaylandEnable=false

Nach einem Rechner-Neustart wird nur die integrierte Intel-GPU verwendet. Abhilfe schafft:

optimus-manager --switch nvidia

Und danach funktioniert mein Rechner wieder wie in den letzten sieben Monate …

Zwei Stunden wertvolle Lebenszeit vergeudet :-(

Fazit

Nie wieder ein Notebook mit NVIDIA. (Ich wiederhole mich, ich weiß …)

Quellen/Links

WSL mit systemd

04. Dezember 2022 um 10:10

Das Windows Subsystem for Linux ist erwachsen geworden. Es ist nur für Windows 10 und Windows 11 im Microsoft Store erhältlich und gilt nicht mehr als »experimentell«. Der größte Vorteil der neuen Bezugsquelle: WSL-Updates werden in Zukunft unabhängig von Windows-Updates viel einfacher und schneller erfolgen.

Die Umstellung auf die Microsoft-Store-Variante ist denkbar einfach: Entweder installieren Sie WSL einfach aus dem Microsoft Store neu (vorhandene WSL-Distributionen bleiben dabei erhalten), oder Sie führen wsl --update aus (das setzt aber voraus, dass Ihre Windows-Version über alle aktuellen Updates verfügt).

Endlich systemd!

Aus meiner persönlichen Perspektive viel interessanter ist der Umstand, dass WSL nun endlich systemd unterstützt. Die Aktivierung erfolgt ganz einfach, in dem Sie in der WSL-Distribution die Datei /etc/wsl.conf verändern und dort zwei Zeilen hinzufügen:

# in /etc/wsl.conf  (innerhalb der WSL-Distribution)
[boot]
systemd=true

Die Änderung wird erst aktiv, wenn Sie die Distribution beenden, WSL herunterfahren (wsl --shutdown) und die Distribution dann neuerlich starten. Bei meinen Tests hat die systemd-Aktivierung erstaunlicherweise auch bei WSL-Distributionen funktioniert, die schon recht alt waren (z.B. Ubuntu 21.04).

Ubuntu 22.04 unter WSL 2 mit systemd und cron

Der entscheidende Fortschritt im Vergleich zu älteren WSL-Versionen ohne systemd besteht darin, dass es nun endlich unkompliziert möglich ist, Server-Dienste (SSH, Apache, MySQL usw.) so einzurichten, dass Sie mit dem Start der WSL-Distribution automatisch mitaktiviert werden. Auch Cron-Jobs funktionieren jetzt ohne Verrenkungen.

Beachten Sie, dass Server-Dienste nur zur Verfügung stehen, solange die betreffende WSL-Distribution aktiv ist, also ein WSL-Fenster geöffnet ist.

SSH-Ärger

Noch zwei Tipps zum Betrieb eines SSH-Servers unter WSL mit Ubuntu 22.04. Der initiale Start scheitert, weil es keine SSH-Host-Keys gibt, und weil die sonst übliche automatischer Erzeugung beim ersten Start aus mir nicht nachvollziehbaren scheitert. Abhilfe schafft einmalig ssh-keygen -A. Danach führt systemctl enable --now ssh zum Erfolg. Der Versuch, sich von Windows aus mit ssh <name>@172.30.xxx.yyy anzumelden, führt zum Fehler permission denied: publickey. Schuld ist die Einstellung PasswordAuthentication no in /etc/ssh/sshd_config innerhalb von Ubuntu. Stellen Sie die Option auf yes und starten Sie den SSH-Server neu, dann klappt es.

Alles in allem ist die Verwendung von SSH im Zusammenspiel mit WSL + Ubuntu 22.04 weiterhin mühsam.

WSL 1 und WSL 2

WSL liegt in zwei grundlegenden Varianten/Architekturen vor, die (noch) beide gepflegt werden.

  • WSL 2 greift auf einen »echten« Linux-Kernel zurück, der via Hyper-V in einer virtuellen Maschine ausgeführt wird. In den meisten Fällen ist diese Variante vorzuziehen. Sie ist schneller und funktioniert bei Hardware- oder Kernel-nahen Funktionen besser.
  • WSL 1 bildet dagegen Linux-Funktionen nach (und ist aus technischer Sicht viel bemerkenswerter). Die Integration der WSL-Distributionen in das lokale Netzwerk ist anders als bei WSL 2 (manchmal vorteilhafter). Der Hauptunterschied: WSL 1 erfordert keine Virtualisierung, läuft also auch dann, wenn sich Windows selbst in einer virtuellen Maschine befindet!

Standardmäßig wird bei einer WSL-Installation aus dem Microsoft Store nur WSL 2 aktiviert. Die für WSL 1 erforderlichen Features können aber problemlos mit wsl --install --enable-wsl1 nachinstalliert werden.

Losgelöst von der WLS-Architektur 1 und 2 gibt es auch eine WSL-Versionsnummer, die nichts mit der Architektur zu tun hat. wsl --version liefert aktuell 1.0.0.0 und zeigt, dass WSL dem Beta-Stadium entwachsen ist.

Nachwort

Aus meiner Linux-Perspektive ist es immer wieder erstaunlich, wie viele »offizielle« Wege es gibt, um Windows-Komponenten zu installieren:

  • Für WSL oder das neue Terminal verwenden Sie den Microsoft Store.
  • Andere Komponenten wie der SSH-Client und -Server sind tief in den Einstellungen versteckt (Apps / Optionale Features, das muss man wirklich erst mal finden …).

  • Wieder andere Komponenten wie Hyper-V & Co. gelten als Windows Features und werden über das gleichnamige Programm aktiviert.

Da soll noch einer sagen, Linux wäre schwer verständlich ;-)

Quellen/Links

📚 Englische Ausgaben von »Git« und »Docker«

13. Dezember 2022 um 17:13

Wenige Dinge erfreuen Autoren mehr, als die Übersetzung ihrer Werke ins Englische. Gleich zwei Büchern von Bernd Öggl und mir wurde diese Ehre nun zuteil. Nachdem sich die deutschen Ausgaben schon sehr passabel verkauft haben, hoffen wir nun auf einen ähnlichen Erfolg im englischen Sprachraum :-)

Die Übersetzungen sind bei Rheinwerk Publishing alias SAP Press erschienen, können aber auch beim deutschen Verlag bestellt werden:

Die beiden Bücher reihen sich in eine lange Liste weiterer Übersetzungen ein.

Programmieren im Zeitalter von ChatGPT

02. März 2023 um 17:55

ChatGPT ist in aller Munde. Es formuliert in flüssigem Deutsch oder Englisch Hausaufgaben, löst Philosophie-Wiederholungsfragen und fügt bei Bedarf frei erfundene Quellen hinzu, damit der Text seriöser/wissenschaftlicher wirkt. Wenn man das Programm hinweist, dass 2+3 keineswegs 5 ist, entschuldigt es sich höflich für seinen Fehler. Kurzum, Bananen-Software, reift beim Anwender? Ich bin nicht dieser Meinung.

Trotz aller Unzulänglichkeiten schätze ich das Programm mittlerweile so sehr, dass ich bereit wäre, für seine Anwendung zu zahlen. Bisher war das nicht notwendig. Mit ein paar Versuchen ist mir der Login noch jedes Mal gelungen, auch bei angeblich unerwartet hoher Auslastung.

Nun zähle ich nicht zu den Twitter- oder YouTube-Enthusiasten, die Ihnen versprechen, mit ChatGPT 10 x produktiver zu arbeiten oder 10.000 EUR pro Monat extra zu verdienen. Blödsinn! Aber ich bin mittlerweile überzeugt, dass mir ChatGPT mehr Zeit erspart, als ich brauche, um die ca. 23 EUR zu verdienen, die ChatGPT Plus aktuell pro Monat kostet. Und ich bin schon sehr gespannt, welche KI-Tools als Nächstes kommen!

ChatGPT unterstützt mich beim Programmieren

Berufsbedingt wechsle ich zwischen rund einem Dutzend Sprachen hin und her. Manche Sprachen brauche ich beinahe täglich oder zumindest wöchentlich, bei anderen vergehen schon mal etliche Monate von der einen Anwendung zu nächsten. Das bringt es mit sich, dass ich mir einfach nicht auswendig merken kann, wie ich die letzten drei Zeichen einer Zeichenkette in einem SQL-Statement, in der PowerShell oder in Java extrahiere. Wie ich einen regulären Ausdruck in PHP anwende, und welche Funktionen dagegen in Python verwendet werden.

Solange ich nicht in meinen eigenen Büchern nachschauen kann (deren Aufbau kenne ich so gut, dass die Suchzeit gegen Null geht), habe ich mir derartige Fragen bisher meist von Google beantworten lassen. Google führt dann in die Dokumentation der jeweiligen Sprache oder (bevorzugt) auf einen Beitrag von StackOverflow. Und natürlich weiß ich, welche Seiten am ehesten zum Ziel führen. Dessen ungeachtet dauert es üblicherweise ein paar Minuten, um das im Internet präsentierte Wissen auf die eigene Fragestellung anzuwenden, die Streu eines langatmigen Blog-Beitrags vom Weizen zu trennen. (Mit Videos habe ich mich dagegen nie recht anfreunden können. Es dauert einfach viel zu lange, um an die Stelle zu kommen, wo es interessant wird.)

In den letzten zwei Monaten ist die Anzahl meiner Google-Programmier-Suchen stark gesunken. ChatGPT kann auch programmieren! Warum soll ich umständlich nach Details suchen, wenn ChatGPT innerhalb von Sekunden Code liefert, der nicht nur für die ganz spezifische Fragestellung funktioniert, sondern den die KI auch noch erläutert?

Beispiele

Ein Bild sagt mehr als 1000 Worte? Nun denn:

Wie kann ich in einem PHP-Programm das Bearer Token eines GET-Requests ermitteln?
Vor kurzem habe ich einen regulären Ausdruck gebraucht, um ein Datum im US-Format (also mm/dd/yyyy) zu erkennen.
Hier geht es nur um einen Vorschlag für die Struktur (das Grundgerüst) eines Scripts. Um die Details kümmere ich mich dann selbst, d.h. ich mache das wofür ich bezahlt werde, aber verschwende keine Zeit an Trivialitäten.
Ich will in einem Python-Script eine Datei herunterladen, aber ohne Zusatzmodule zu verwenden.
In einer Folgefrage suche ich nach einem Weg, beim GET-Request einen eigenen Header anzugeben. ChatGPT antwortet im Kontext der vorigen Frage.
In einem Bash-Script will ich die Kennung einer Datei auslesen.
ChatGPT kennt auch Kotlin samt der Datenbankbibliothek Exposed. Die Antwort schießt ein wenig über das Ziel hinaus und enthält auch Code, um eine neue Tabelle einzurichten.
Extrem cool: Ich habe Code in einer Sprache (hier in der Bash) und brauche äquivalenten Code in einer anderen Sprache (hier für die PowerShell). Kein Problem für ChatGPT.
Hier hilft ChatGPT bei der Formatierung von Bildern in einem Markdown-Dokument, das mit Pandoc verarbeitet wird. ChatGPT weist auf die Pandoc-spezifische Erweiterung der Markdown-Syntax hin.
ChatGPT hilft auch bei der Linux-Administration. Hier geht es darum, mit »tar« ein inkrementelles Backup zu erstellen.

ChatGPT versus Copilot

Aus Sicht von Entwicklern ist der GitHub Copilot ein kostenpflichtiges Konkurrenzprodukt zu ChatGPT. Der Copilot soll die Code-Erstellung in Editoren wie VSCode beschleunigen. Im Prinzip geben Sie einen möglichst aussagekräftigen Funktions- oder Methodennamen an, und der Copilot schlägt dafür fertigen Code vor. Die Code-Schnipsel kommen aus dem riesigen Angebot öffentlicher Git-Repositories.

Auch der Copilot nutzt KI-Technik bei der Auswahl und Adaptierung von Code-Schnipsel. Copyright-technisch ist das bedenklicher als die Vorgehensweise von ChatGPT, die in der Regel Code wirklich neu generiert. Natürlich kann es passieren, dass der Copilot Code vorschlägt, der bekannte Fehler oder gar Sicherheitslücken enthält. Das sind aber Probleme, die auch bei ChatGPT auftreten können. Letztlich bleibt es die Verantwortung des Entwicklers / der Entwicklerin, den Code zu verstehen und zu entscheiden, ob er für das Problem taugt oder nicht.

Für mich liegt der wesentliche Unterschied zwischen ChatGPT und dem Copilot weniger im produzierten Code als in der Bedienung: Mit ChatGPT kann ich gewissermaßen sprechen, ich kann mein ganz spezifisches Problem in Deutsch oder (besser!) in Englisch beschreiben und erhalte eine Antwort, die exakt auf die Aufgabenstellung eingeht. Bei Bedarf kann ich sogar um eine Nachbesserung im einen oder anderen Punkt bitten. Die Arbeitsweise ist für mich ungleich intuitiver, angenehmer und »menschlicher« als der Ansatz des Copiloten, einfach nur Code zu einer Funktionsdeklaration zu liefern.

Mich hat der Copilot schon in der Beta-Phase nicht so recht begeistert, und mit ChatGPT sieht das Angebot — nur wenige Monate nach der Markteinführung — schon ziemlich alt aus.

Letzte Anmerkungen

  • Ich habe aktuell keine Angst, dass mich ChatGPT oder eine ähnliche Technik als Programmierer, Admin, Vortragender oder Autor ablöst. Für mich ist ChatGPT einfach ein neues Hilfsmittel bei meiner Arbeit.
  • Insofern halte ich es auch für verrückt, den Einsatz in Schulen, Unis etc. zu verbieten. Das Ziel muss es vielmehr sein, KI-Tools produktiv (und durchaus verantwortungsvoll) anwenden zu lernen. Dieser Grundsatz gilt ja auch für andere Werkzeuge, die wir heute als selbstverständlich einsetzen, von der Rechtschreibkorrektur bis zur Nutzung der Wikipedia.
  • Ich bin mir ziemlich sicher, dass der Nutzen von KI-Tools umso höher ist, je größer das eigene Wissen ist. Insofern ersetzen diese Tools weder qualifizierte Mitarbeiter noch deren Ausbildung.
  • Vielleicht bin ich altmodisch, aber ich pflege einen höflichen Umgangston mit ChatGPT und vergleichbaren Werkzeugen.
  • Zu guter Letzt habe ich das Gefühl (das ich aber nicht objektiv belegen kann), dass die Kommunikation in englischer Sprache zu besseren Ergebnissen führt als Anfragen in Deutsch. Grundsätzlich ist es verblüffend, dass ChatGPT nahezu jeder Sprache mächtig ist. Aber die IT-Welt ist englisch. StackOverflow ist englisch. Die Originaldokumentation nahezu jedes IT-Tools ist englisch. Selbst Entwickler, die eine andere Muttersprache haben, verwenden in der Regel englischsprachige Variablen-, Klassen- und Methodennamen, kommentieren ihren Code idealerweise in Englisch. Insofern erscheint es mir nahe liegend, Code-Fragen in Englisch zu formulieren, was sich auch in den meisten Screenshots dieses Texts widerspiegelt.

Links

Eine andere Meinung, etwas skeptischer, aber auch mit wesentlich spezielleren Fragen:

Ubuntu Pro

03. März 2023 um 15:21

Bereits seit einigen Jahren bietet Canonical »Ubuntu Pro« an. Anfänglich war Ubuntu Pro auf AWS-Kunden beschränkt, denen Ubuntu Pro Updates über einen Zeitraum von 10 Jahren garantiert (statt der üblichen fünf Jahre für Ubuntu LTS). Später wurde Ubuntu Pro auf andere Clound-Anbieter ausgedehnt, und seit ein paar Wochen ist Ubuntu Pro als kostenpflichtiges Update-Service auch für »gewöhnliche« Installationen verfügbar. Privat- bzw. Kleinanwender dürfen Ubuntu Pro für fünf Installationen kostenlos nutzen.

Canonical bewirbt Ubuntu Pro beim Login sowie bei der Ausführung des apt-Kommandos. Das hat zu Unmut bei manchen Benutzern gestört. Ich kann das nicht ganz nachvollziehen. Es wird ja niemand gezwungen, Ubuntu Pro zu verwenden. Für manche Anwender bzw. Server-Administratoren ist die 10-jährige Update-Garantie durchaus ein attraktives Angebot. In diesem Beitrag versuche ich das Angebot im Kontext anderer Distributionen (Red Hat Enterprise, kostenlose Klone) einzuordnen.

Update 19.4.2023: Canonical erlaubt im Rahmen von Ubuntu Pro zwar die kostenlose Verwendung der Kernel-Livepatches, allerdings erhalten Sie dann Patches früher als zahlende Kunden. Sie sind quasi ein Beta-Tester für die Kernel-Patches. Wenn keine Probleme auftreten, werden die gleichen Patches mit einer gewissen Verzögerung auch an zahlende Kunden ausgeliefert.

Varianten

Ubuntu Pro gibt es aktuell in vier Ausprägungen:

  • Cloud: Die Cloud-Anbieter AWS, Azure und Google bieten virtuelle Maschinen (Cloud-Instanzen) mit Ubuntu Pro an. Die monatliche Gebühr ist höher als bei Ubuntu-LTS-Instanzen, dafür beträgt der Update-Zeitraum zehn statt fünf Jahre. Über diese Form des Ubuntu-Pro-Angebots habe ich schon vor Jahren in meinem Blog geschrieben.
  • Physische Desktop/Workstation-Installation: 25 $ / Jahr, 10 Jahre Updates für die Paketquellen main und universe

  • Physische Server-Installation, »Infra-only«: 225 $ / Jahr, 10 Jahre Updates nur für die main-Paketquelle. Das Angebot richtet sich insbesondere an Server, die als Virtualisierungs-Host verwendet werden.

  • Physische Server-Installation: 500 $ / Jahr, 10 Jahre Updates für die Paketquellen main und universe

Alle vier Angebote umfassen auch Live Kernel Patches, die bisher als eigenes Produkt verkauft wurden. Zu diesen Grundangeboten gibt es diverse Support-Erweiterungen, die die Sache natürlich teurer machen:

https://ubuntu.com/pricing/pro

Technische Details

Die technische Voraussetzung für Ubuntu Pro ist das Kommando pro, das sich im Paket ubuntu-advantage-tools befindet. Es sollte standardmäßig installiert sein. pro security-status gibt einen Überblick über die installierten Pakete (hier auf einem Server mit Ubuntu 20.04 OHNE Ubuntu Pro).

$ pro security-status

1090 packages installed:
     854 packages from Ubuntu Main/Restricted repository
     228 packages from Ubuntu Universe/Multiverse repository
     3 packages from third parties
     5 packages no longer available for download

To get more information about the packages, run
    pro security-status --help
for a list of available options.

This machine is receiving security patching for Ubuntu Main/Restricted
repository until 2025.
This machine is NOT attached to an Ubuntu Pro subscription.

Ubuntu Pro with 'esm-infra' enabled provides security updates for
Main/Restricted packages until 2030.

Ubuntu Pro with 'esm-apps' enabled provides security updates for
Universe/Multiverse packages until 2030 and has 19 pending security updates.

Die Ausgabe macht auch gleich Werbung für den Abschluss eines Ubuntu-Pro-Upgrades und verspricht Updates für 19 Universe-Pakete, zu denen es ohne Ubuntu Pro eben keinen Schutz gibt. Welche Pakete das sind, können Sie mit pro security-status --esm-apps herausfinden (siehe den folgenden Screenshot).

Ubuntu Pro verspricht Sicherheits-Updates für die fett hervorgehobenen universe-Pakete

Wenn Sie dieser Wink mit dem Zaunpfahl überzeugt, entschließen Sie sich dazu, Ubuntu Pro auszuprobieren. Dazu brauchen Sie ein Konto bei Ubuntu One. Damit können Sie sich beim Ubuntu Pro Dashboard anmelden. Dort erhalten Sie fünf kostenlose Tokens für Ubuntu Pro. Wenn Sie mehr brauchen, müssen Sie dafür bezahlen.

Das Ubuntu-Pro-Dashboard

Die Aktivierung von Ubuntu Pro für eine Ubuntu-Installation ist denkbar einfach. Sie führen pro attach <token> aus, fertig!

$ sudo pro attach <token>

Enabling default service esm-apps
Updating package lists
Ubuntu Pro: ESM Apps enabled
Enabling default service esm-infra
Updating package lists
Ubuntu Pro: ESM Infra enabled
Enabling default service livepatch
Installing snapd
Updating package lists
Installing canonical-livepatch snap
Canonical livepatch enabled.
Unable to determine current instance-id
This machine is now attached to 'Ubuntu Pro - free personal subscription'

SERVICE          ENTITLED  STATUS    DESCRIPTION
esm-apps         yes       enabled   Expanded Security Maintenance for Applications
esm-infra        yes       enabled   Expanded Security Maintenance for Infrastructure
fips             yes       disabled  NIST-certified core packages
fips-updates     yes       disabled  NIST-certified core packages with priority security updates
livepatch        yes       enabled   Canonical Livepatch service
usg              yes       disabled  Security compliance and audit tools

NOTICES
Operation in progress: pro attach

Enable services with: pro enable <service>

     Account: <account-name>
Subscription: Ubuntu Pro - free personal subscription

Anschließend können Sie mit apt full-upgrade alle Pakete aktualisieren. Dabei kommen nun die Ubuntu-Pro-Paketquellen zum Einsatz:

$ sudo apt full-upgrade

Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
Paketaktualisierung (Upgrade) wird berechnet... Fertig
Die folgenden NEUEN Pakete werden installiert:
  python3-defusedxml
Die folgenden Pakete werden aktualisiert (Upgrade):
  ant ant-optional composer fail2ban glances libjs-jquery-ui libopenexr24 libpython2.7
  libpython2.7-minimal libpython2.7-stdlib lynx lynx-common ntpdate php-symfony-console
  php-symfony-filesystem php-symfony-finder php-symfony-process python2.7 python2.7-minimal
19 aktualisiert, 1 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
19 esm-apps security updates
Möchten Sie fortfahren? [J/n] y
...

Hinter den Kulissen hat pro attach zwei neue Paketquellen eingerichtet:

$ ls /etc/apt/sources.list.d/ubuntu-esm*

/etc/apt/sources.list.d/ubuntu-esm-apps.list  
/etc/apt/sources.list.d/ubuntu-esm-infra.list

Außerdem hat pro attach die Kernel-Live-Patch-Funktion aktiviert. Beachten Sie, dass dafür ein Snap-Paket verantwortlich ist. Snap ist also eine zwingende Voraussetzung für diese Funktion. Den Status können Sie so überprüfen:

$ sudo canonical-livepatch status

last check: 6 minutes ago
kernel: 5.4.0-139.156-generic
server check-in: succeeded
patch state: ✓ no livepatches needed for this kernel yet
tier: updates (Free usage; This machine beta tests new patches.)
machine id: <id>

Im Prinzip war’s das. Ubuntu Pro läuft jetzt selbstständig, Sie müssen sich nur noch darum kümmern, regelmäßig Updates zu installieren. pro security-status verspricht jetzt Updates bis 2030 :-)

$ pro security-status

1093 packages installed:
     857 packages from Ubuntu Main/Restricted repository
     228 packages from Ubuntu Universe/Multiverse repository
     3 packages from third parties
     5 packages no longer available for download

To get more information about the packages, run
    pro security-status --help
for a list of available options.

This machine is attached to an Ubuntu Pro subscription.

Main/Restricted packages are receiving security updates from
Ubuntu Pro with 'esm-infra' enabled until 2030.

Universe/Multiverse packages are receiving security updates from
Ubuntu Pro with 'esm-apps' enabled until 2030. You have received 19 security
updates.

Ich habe das kostenlose Angebot von Ubuntu Pro aktuell auf zwei Server laufen, bisher ohne irgendwelche Probleme. Langzeiterfahrungen kann ich allerdings noch keine bieten, dafür ist das Angebot zu jung.

Kernel-Patches: »Free usage; This machine beta tests new patches.«

Ein Leser dieses Beitrags hat mich auf eine Ergebniszeile von sudo canonical-livepatch status hingewiesen:

tier: updates (Free usage; This machine beta tests new patches.)

Es ist offensichtlich so, dass für zahlende Kunden tier: stable gilt, während an nicht zahlende Kunden Kernel-Updates aus tier: updates verteilt werden. Mit anderen Worten: Wenn Sie Kernel-Patches aktivieren, ohne dafür zu zahlen, sind Sie quasi ein Beta-Tester für die zahlenden Kunden. Wenn keine Probleme auftreten, erhalten zahlende Kunden etwas später die gleichen Updates. (Ein ähnliches Schema gilt übrigens für CentOS Stream, dort für alle Update-Pakete.)

An sich ist diese Vorgehensweise nachvollziehbar. Sie hat bei mir bisher auch keine Probleme verursacht. ABER: Die Informationspolitik von Canonical ist diesbezüglich extrem intransparent. Obwohl ich eine Weile danach gesucht habe, bin ich auf kein offizielles Dokument gestoßen, dass auf diesen Umstand deutlich hinweist oder die Hintergründe erklärt. Ein paar Lese-Tipps:

Bewertung

Das Ubuntu-Pro-Versprechen ist zweiteilig:

  • Einerseits garantiert Ubuntu Pro Sicherheits-Updates für zehn Jahre statt für fünf. Der Nutzen ist leicht zu begründen. Aus der Sicht von Canonical ist das Problem aber, dass viele Admins Ihrer Server ohnedies nicht so lange laufen lassen — oder nur wenig länger. Also macht es wirtschaftlich Sinn, die ersten fünf Jahre die kostenlosen LTS-Updates zu genießen und erst für die Folgejahre Ubuntu Pro zu zahlen. Aus Anwendersicht kosteneffizient, aber für Canonical ein schlechtes Geschäftsmodell.
  • Andererseits verspricht Ubuntu Pro recht vollmundig auch Updates für die ca. 23.000 Universe-Pakete. Mit diesem Argument versucht Canonical seine Kunden davon zu überzeugen, Ubuntu Pro auch in den ersten Jahre zu bezahlen. Ubuntu Pro hat also einen Zusatznutzen, weil Canonical den Support für die universe-Paketquelle übernimmt; bisher kümmerte sich nur die etwas diffuse »Community« darum.

Ich bin allerdings sehr skeptisch, wie weit das universe-Update-Versprechen reicht. Auf https://ubuntu.com/pricing/pro steht wörtlich: »Support for over 23,000 packages in the Ubuntu Universe repository«. Aber was heißt das? Ich habe nirgendwo das Kleingedruckte gefunden, das eine Abgrenzung vornimmt, für welche Pakete das Versprechen gilt, wie groß das Sicherheitsproblem ist, damit sich Canonical um die Behebung kümmert etc.

Ein Punkt ist klar: Selbst wenn Canonical hoch motiviert ist und ein riesiges Budget für ein großes Security- und Maintenance-Team aufbringt — 23.000 Pakete parallel für fünf LTS-Releases zu warten ist schlicht unmöglich. (Aktuell gibt es nur universe-Updates für die Versionen 18.04, 20.04 und 22.04, weil die universe-Wartungszusage für ältere Releases nicht gilt; aber in drei Jahren müssten die universe-Quellen für Ubuntu 18.04, 20.04, 22.04, 24.04 und 26.04 gleichzeitig gewartet werden! Das sind dann über 100.000 Pakete von Programmen und Bibliotheken in unterschiedlichen Versionen. Man könnte jetzt weiter rechnen, wie viele Zeilen Code das sind, mit wie vielen Maintainer Kontakt gepflegt wird etc.)

Red Hat (IBM) verspricht RHEL-Updates für ein viel kleineres Paketangebot und für weniger Releases zugleich (weil RHEL-Major-Versionen in der Regel drei bis vier Jahre auseinander liegen) — aus gutem Grund! Die restlichen Pakete befinden sich in der EPEL-Paketquelle oder anderen externen Paketquellen, dafür übernimmt Red Hat keine Verantwortung.

Es fällt schwer zu glauben, dass Canonical ein Kunststück gelingt, das Red Hat (mit sicher mehr Einnahmen) nicht einmal anstrebt.

Wartungszeitraum verschiedener Server-Distributionen

Bei aller Kritik: Ubuntu Pro ist ein attraktives Angebot. Es erlaubt den Einsatz von Ubuntu gerade im Server-Bereich für längere Zeiträume als bisher, zu vertretbaren Kosten (und für fünf Server sogar kostenlos, extrem fair!). Ein kurzer Vergleich zu anderern Distributionen:

  • Red Hat Enterprise Linux: 10 Jahre (mit Einschränkungen sogar 13 Jahre), kostenpflichtig
  • RHEL-Klone (Rocky, AlmaLinux etc.): 10 Jahre, kostenlos, aber ohne Garantien
  • SUSE Linux Enterprise: 10 Jahre (mit Einschränkungen sogar 13 Jahre), kostenpflichtig
  • Ubuntu LTS: 5 Jahre kostenlos
  • Ubuntu Pro: 10 Jahre kostenpflichtig (wobei es möglich ist, Ubuntu LTS die ersten fünf Jahre kostenfrei zu nutzen und erst dann auf Ubuntu Pro umzusteigen)

Ich bin gespannt, in welchem Ausmaß Canonical liefern kann, was es aktuell verspricht. Und wie viele zahlende Ubuntu-Pro-Kunden Canonical finden kann. Für das Linux-Universum wäre es auf jeden Fall gut, wenn Canonical erfolgreich ist. Je mehr Firmen es gibt, die mit Linux Geld verdienen, desto besser ist das für alle Linux-Anwender, zahlende wie nicht zahlende!

Links/Quellen

Ältere Blog-Artikel auf kofler.info zu diesem Thema:

Kernel Live Patches: updates=beta tier versus stable tier:

Kurztipp: IPv6-Konflikte bei geklonten RHEL-9-Instanzen vermeiden

05. März 2023 um 20:13

Kürzlich bin ich beim Klonen von virtuellen Maschinen mit AlmaLinux 9 unter KVM/libvirt als Virtualisierungs-Host auf Netzwerk-Probleme gestoßen: Obwohl ich sämtlichen VMs per Script Netzwerkadapter mit eigenen MACs, IPv4- und IPv6-Adressen zugewiesen haben, traten IPv6-Netzwerkkonflikte auf — und zwar nicht für die reguläre Adressen, sondern für die Link-Local-Unicast-Adressen (fe80-xxx).

Eine kurze Google-Suche führt zur Ursache des Problems: Der NetworkManager wertet offenbar /etc/machine-id aus, um »eindeutige« fe80-Adressen zu generieren. Bei den geklonten VMs war /etc/machine-id aber immer identisch. Die resultierenden IPv6-fe80-Adressen waren daher ebenfalls identisch und führten zu Adresskonflikten (IPv6 Duplicate Address Detected) und letztlich zur Deaktivierung des betreffenden Netzwerkadapters.

Abhilfe ist zum Glück einfach: /etc/machine-id muss gelöscht und neu erzeugt werden:

rm /etc/machine-id
systemd-machine-id-setup

In meinen Setup gibt es ein Script, das beim ersten Start in jeder VM ausgeführt wird. Es führt zuerst die statische Konfiguration der Netzwerkschnittstellen durch, dann die beiden obigen Kommandos und zuletzt einen reboot. Damit gelingt der Parallelbetrieb diverser geklonter VMs wieder problemlos.

Quelle

https://raj-anju.medium.com/virsh-cloning-vms-dad-ipv6-duplicate-address-detected-dadfailed-errors-centos-rhel8-210fca0af724

Fedora 38

19. April 2023 um 15:50

Der Frühlingsreigen neuer Distributionen hat begonnen, überraschenderweise mit Fedora statt wie sonst mit Ubuntu. (Ubuntu 23.04 ist diese Woche auch noch an der Reihe.) Heute habe ich einen ersten Blick auf Fedora 38 geworfen. Mein letzter derartiger »Minitest« liegt schon eineinhalb Jahre zurück (siehe Fedora 35).

Um es kurz zu machen: Abseits neuer Versionsnummern gibt es wenig Neuerungen — sowohl an der Oberfläche als auch hinter den Kulissen. Dass es überhaupt optische Änderungen gibt, ist dem neuen Hintergrundbild sowie Gnome 44 geschuldet. Selbst die Release Notes, sonst ein Konglomerat technischer Details, sind diesmal verblüffend leer.

Fedora 38 mit Gnome 44

Software-Versionen

Wie üblich konzentriere ich in dieser Kurzvorstellung auf die Workstation-Variante von Fedora. Die wichtigsten Versionsnummern des Software-Stacks sehen so aus:

Basis             Desktop             Programmierung   Server
---------------   ------------------  --------------   --------------
Kernel      6.2   Gnome          44   bash       5.2   Apache     2.4
glibc      2.37   Gimp         2.10   gcc       13.0   CUPS       2.4
X-Server   1.20   LibreOffice   7.5   git       2.40   MariaDB   10.5
Wayland    1.21                       Java        17   OpenSSH    9.0
Mesa       23.0                       PHP        8.2   qemu/KVM   7.2
Systemd     253                       Podman     4.4   Postfix    3.7
NetworkMan 1.42                       Python    3.11   Samba     4.18
GRUB       2.06 

Auf die Angabe der Versionsnummern von Thunderbird, Firefox und Chromium verzichte ist — diese Pakete werden ohnedies regelmäßig aktualisiert.

Technische Neuerungen

Fedora arbeitet an einem Unified Kernel Support. Das Ziel ist es, von am Rechner erzeugten Initramfs-Dateien wegzukommen und stattdessen den Kernel und die Initramfs-Datei als ein Paket auszuliefern. Das soll langfristig die Sicherheit verbessern. Details zu diesem Projekt können Sie auf der folgenden Seite nachlesen. Aktuell steckt das Projekt allerdings noch in den Kinderschuhen. Fedora 38 soll lediglich das Fundament für weitere Tests schaffen.

https://fedoraproject.org/wiki/Changes/Unified_Kernel_Support_Phase_1

Links

Ubuntu 23.04 (aktualisiert 28.4.2023)

21. April 2023 um 13:16

Wenige Tage nach Fedora hat Ubuntu nachgezogen. Spannend an der Version »Lunar Lobster« ist der komplett neu implementierte Installer.

Ubuntu verwendet als Desktop Gnome 44, angereichert mit ein paar Erweiterungen

Update 28.4. und 6.5.: Massive Installer-Problem (siehe unten)

Installation

Über die Installation von Standarddistributionen lohnt es sich kaum mehr, etwas zu schreiben. Das Prozedere verläuft in festen Bahnen, Neuerungen gab es in den vergangenen Jahren nur ganz selten. Wozu etwas ändern, wenn alle zufrieden sind?

Canonical sah das anders und hat das Installationsprogramm für Ubuntu rundumerneuert. Interessanterweise kam dabei die plattformunabhängige GUI-Bibliothek Flutter zum Einsatz. Wer sich nun spektakuläre neue Features erwartet, wird aber enttäuscht sein. Auch wenn das Layout ein wenig anders aussieht als bisher, weisen die Dialoge exakt dieselben Optionen auf wie bisher. Bei meinen Tests hat sich der Installer auch wie gewohnt verhalten, wobei ich zugeben muss, dass ich bisher nur einfache Setups ausprobiert habe. Die einzig echte Neuerung ist eine Auswahlmöglichkeit zwischen einem hellen und einem dunklen Desktop-Layout — eine Einstellung, die bei Bedarf auch später einfach geändert werden kann.

Auch wenn die optischen Unterschiede gering sind: Das Installationsprogramm wurde komplett neu implementiert

Canonicals Fehde gegen Flatpak

Wie schon in den vergangenen Versionen setzt Canonical als zweites Paketformat auf die Eigenentwicklung Snap. Neben diversen Bibliotheken sind standardmäßig nur zwei echte Snap-Pakete installiert: Firefox und eine modifizierte Version des Software-Managers. Immerhin wurde ein großer Kritikpunkt an Firefox ausgemerzt: Der Browser startet nun nahezu gleich schnell wie bei einer herkömmlichen Installation. Der Preis für die wenigen Snap-Pakete ist hoch: du /snap liefert einen Installationsumfang von 2,6 GByte (!). Die Images sind zwar komprimiert und brauchen tatsächlich weniger Platz auf der Disk. Aber für die Ausführung von Snap-Paketen ist eine Menge RAM erforderlich.

Andreas Proschofsky weist in seinem ausführlichen Ubuntu-Test auf die bestürzend schlampige Integration von Snap-Paketen im Software-Manager hin. Selbst wäre mir das vermutlich entgangen, weil ich dem Software-Manager (also »Ubuntu Software«) normalerweise aus dem Weg gehe, ganz egal, unter welcher Distribution ich gerade arbeite.

In der Vergangenheit hat Ubuntu das alternative Zweitformat Flatpak aus der Red-Hat-Schmiede nahezu gleichwertig unterstützt. Das gilt nun nicht mehr ganz: Das Paket flatpak ist standardmäßig nicht installiert. Das Paket wird aber weiter mitgeliefert und kann mit apt install flatpak im Handumdrehen installiert werden.

Schon interessanter ist eine andere Regel: »Offizielle« Ubuntu-Derivate müssen Snap verwenden und dürfen nicht auf Flatpak setzen (Quelle). Ob das Snap beliebter macht?

Ein Blick in die Tiling-Zukunft

Ubuntu denkt darüber nach, in Zukunft Tiling-Funktionen in Form einer zusätzlichen Gnome-Erweiterung standardmäßig auszuliefern. »Tiling« gibt vor allem Nutzern von großen Monitoren bessere Möglichkeiten, mehrere Fenster nebeneinander zu platzieren. Wie gut das funktionieren kann, hat (ausgerechnet!) Microsoft in Windows 11 gezeigt.

Wenn Sie die neue Funktion schon jetzt ausprobieren möchten, installieren Sie das entsprechende Paket, das sich bereits in den Paketquellen befindet:

sudo apt install gnome-shell-extension-ubuntu-tiling-assistant

(Ein kürzerer Paketnamen war wohl nicht möglich.) Die Installation lohnt sich alleine schon deswegen, weil Fenster nun endlich in einem Monitorviertel platziert werden können (während Gnome findet, Halbe-Halbe muss reichen). Wird die Größe der Fenster dann verändert, passen sich die anderen Fenster auch gleich an. Nach der Installation der Tiling-Erweiterung tauchen in den Systemeinstellungen zwei neue Optionen auf, mit denen sich das Tiling-Verhalten ein wenig adaptieren lässt.

Die Systemeinstellungen enthalten zwei versteckte Tiling-Optionen, die erst erscheinen, sobald das entsprechende Paket installiert ist

Software-Versionen

Basis             Desktop             Programmierung   Server
---------------   ------------------  ---------------  --------------
Kernel      6.2   Gnome          44   bash        5.2   Apache     2.4
glibc      2.37   Gimp         2.10   docker.io 20.10   CUPS       2.4
X-Server   1.21   LibreOffice   7.5   gcc        12.2   MariaDB  10.11
Wayland    1.21                       git        2.39   MySQL      8.0
Mesa       23.0                       Java         17   OpenSSH    9.0
Systemd     252                       PHP         8.1   qemu/KVM   7.2
NetworkMan 1.42                       Python     3.11   Postfix    3.7
GRUB       2.06                                         Samba     4.17

Installer-Probleme (28.4.2023)

Heute habe ich versucht, Ubuntu 23.04 auf einen weiteren Rechner zu installieren. Es handelt sich um einen recht gewöhnlichen, schon etwas in die Jahre gekommenen PC. Zwei SATA-SSDs, eine mit Windows 11, die andere mit einer bunten Sammlung von Linux-Distributionen. LAN-Integration über Ethernet-Kabel. Intel-CPU, 16 GB RAM.

Auf diesem Rechner bleibt der Installer im ersten Dialog einfach hängen. (Ich habe über 10 Minuten gewartet. Keine CPU-Aktivität, nichts …) Die Logging-Datei bleibt bis auf eine Zeile leer, und auch die Bildschirmausgaben beim Start des Installers aus einem Terminal heraus sind dürftig:

Der neue Installer von Ubuntu 23.04 bleibt auf einem meiner Testrechner einfach hängen

Im Internet habe ich nur wenige vergleichbare Fehlerberichte gefunden:

Dafür gibt es offensichtlich auch andere Fehler, die z.B. hier dokumentiert sind:

Glücklicherweise gibt es ein gut verstecktes ISO-Images mit dem herkömmlichen »Legacy Installer«. Damit ist die Installation mühelos gelungen.

https://cdimage.ubuntu.com/daily-legacy

Noch mehr Probleme

Weiterer Versuch mit den neuen Installer, diesmal auf einem Notebook. Bei der manuellen Installation war es mir nicht möglich, eine EFI-Partition zu erstellen. Ich habe das manuell im Terminal mit parted erledigt. Die Fenstergröße des Installers ist relativ klein; es kann nicht vergrößert werden, und ein horizontales Scrolling ist nicht vorgesehen.

Das Installer-Fenster ist zu klein. Es kann weder vergrößert werden noch kann sein Inhalt horizontal gescrollt werden.

Bis zu Version 24.04 ist ja noch fast ein Jahr Zeit. Aber bis dahin gibt es für Canonical noch viel zu tun …

Quellen und Links

Apple Aluminium-Tastatur unter Linux

20. Mai 2023 um 18:42

Ich bin ein leidenschaftlicher Fan der mittlerweile schon recht alten Apple-Aluminium-Tastatur. Ich habe vier Geräte mit USB-Kabel gehortet und verwende diese auf fast allen meinen Rechnern: diverse Linux-Notebooks und -PCs, Windows-PC, Mac Mini, Raspberry Pi etc. Schwer zu sagen, wie viele tausend Buchseiten ich mit diesen Tastaturen schon verfasst habe! Die Tastaturen scheinen unverwüstlich zu sein.

Schon 2011 habe ich auf dieser Website über die Verwendung dieser Tastatur unter Ubuntu Linux einen Blog-Artikel geschrieben. Mittlerweile hat sich die Konfiguration ein wenig geändert. Zeit also für ein Update!

Alt und dreckig, aber von unvergleichlicher Qualität. Und platzsparend!

Grundsätzlich funktioniert die Tastatur natürlich wie jede andere Tastatur auf Anhieb. Unter Gnome gibt es sogar einen eigenen Eintrag für das Apple-spezifische Layout.

Auf meinem Notebook habe ich zwei Tastatur-Layouts eingerichtet: Eines für die Apple-Tastatur für den stationären Betrieb zuhause und eines für die »gewöhnliche« Notebook-Tastatur für unterwegs.

Allerdings gibt es zwei Probleme:

  • Standardmäßig werden die Funktionstasten für Steuerungsfunktionen verwendet (Lautstärke lauter/leiser usw.). Ich will die Funktionstasten aber wirklich als Funktionstasten verwenden. Ich habe diese im Emacs mit diversen Aktionen verbunden, die ich häufig ausführe.
  • Linux hat bei einigen internationalen Modellen der Apple-Tastatur Probleme damit, die Tasten ^/° und </> richtig zuzuordnen. Die Wirkung der Tasten ist vertauscht.

Ad-hoc führen diese zwei Kommandos zum Ziel:

sudo bash -c 'echo "2" > /sys/module/hid_apple/parameters/fnmode'
sudo bash -c 'echo "1" > /sys/module/hid_apple/parameters/iso_layout'

Damit diese Einstellungen dauerhaft aktiv sind, erzeugen Sie eine neue Modulkonfigurationsdatei:

# Datei  /etc/modprobe.d/hid-apple.conf
options hid_apple fnmode=2
options hid_apple iso_layout=1

Damit der Kernel diese Optionen auch berücksichtigt, müssen Sie die Initrd-Datei neu erzeugen:

dracut --regenerate-all --force           (Fedora, RHEL)
update-initramfs -k all                   (Debian, Ubuntu)
mkinitcpio -p linux                       (Arch Linux)

Quellen/Linux

https://wiki.archlinux.org/title/Apple_Keyboard

Postskriptum

Sie haben nicht zufällig eine solche Tastatur im Keller liegen? Deutsches Modell, klein (also ohne Ziffernblock), mit USB-Kabel. Ein, zwei Tastaturen hätte ich gerne noch, sozusagen für Notfälle :-) Melden Sie sich bei mir!

WordPress-Installation unter RHEL 9 bzw. AlmaLinux 9

22. Mai 2023 um 08:49

Sie wollen WordPress auf einem Server mit RHEL 9 oder einem Klon installieren? Diese Anleitung fasst alle erforderlichen Schritte zusammen. Dabei gehe ich davon aus, dass Sie über eine minimale Installation auf einem Root-Server oder in einer virtuellen Maschine verfügen. Ich habe meine Tests mit AlmaLinux 9 in einer Hetzner-Cloud-Instanz durchgeführt.

DNS-Einträge

Nachdem Sie Ihren Server in Betrieb genommen und sich mit SSH eingeloggt haben, ermitteln Sie die IP-Adressen, unter denen der Server nach außen hin erreichbar ist. Beachten Sie, dass das an sich nützliche Kommando hostname -I nicht in jedem Fall zielführend ist. Wenn Ihre virtuelle Maschine als EC2-Instanz in der Amazon Cloud (AWS) läuft, liefert das Kommando eine Adresse in einem privaten Netzwerk. Diese Adresse gilt aber nur AWS-intern! Sie müssen in der AWS-Konsole ergründen, welche IP-Adresse nach außen gilt.

Ich gehe hier davon aus, dass Ihre WordPress-Installation unter den Adressen example.com und www.example.com zugänglich sein soll und dass Sie IPv4 und IPv6 unterstützen. Dann müssen Sie für Ihre Domain example.com vier DNS-Einträge definieren. Naturgemäß müssen Sie die Beispiel-IP-Adressen durch Ihre echten IP-Adressen ersetzen. Normalerweise dauert es eine Weile (fünf Minuten bis hin zu mehreren Stunden), bis diese DNS-Änderungen wirksam werden.

Typ    Name      Zieladresse
-----  -------   -------------------
A       @        1.2.3.4
A       www      1.2.3.4
AAAA    @        2345:1234:1234::1
AAAA    www      2345:1234:1234::1

Software-Installation

Auf Ihrem Server müssen Sie nun einen Webserver, einen Datenbank-Server sowie PHP installieren. Ich gehe hier davon aus, dass Sie Apache und MySQL verwenden. Statt Apache wäre natürlich auch NGINX denkbar, statt MySQL auch MariaDB. (Beachten Sie aber, dass die mit RHEL 9 uralte MariaDB-Versionen ausgeliefert werden. Wenn Sie MariaDB einsetzen möchten, sollten Sie den Datenbank-Server aus dem Repository von MariaDB installieren, siehe https://mariadb.org/download/?t=repo-config.)

dnf install epel-release httpd mod_ssl mysql-server
dnf module install php:8.1
dnf install php-mysqlnd

Mit systemctl starten Sie den Web- und Datenbank-Server:

systemctl enable --now httpd   
systemctl enable --now mysqld

Firewall

Falls Sie auf einem Root-Server arbeiten, müssen Sie die Firewall für die Protokolle HTTP und HTTPS (also Port 80 und 443) freischalten:

firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

Bei Cloud-Instanzen entfällt dieser Schritt normalerweise: Die meisten Cloud-Anbieter haben in ihren Instanzen die RHEL-interne Firewall deaktiviert und verwenden stattdessen Firewalls auf Cloud-Ebene, die über die Web-Oberfläche des Cloud-Systems konfiguriert werden muss.

Apache ausprobieren

Um zu testen, dass Ihre Website im Internet zugänglich ist, schreiben Sie »Hello World« in eine Datei im Webverzeichnis /var/www/html:

echo "Hello World" > /var/www/html/index.html

Nun öffnen Sie im Webbrowser auf Ihrem Notebook die Adresse www.example.com oder example.com. Statt »Hello World« wird der Webbrowser eine Sicherheitswarnung anzeigen, weil Ihr Server noch über kein richtiges Zertifikat verfügt. Das ist ein gutes Zeichen: Der Web-Server an sich funktioniert. Ihr Webbrowser erkennt, dass Ihr Server HTTPS unterstützt und will dieses verwenden.

Let’s-Encrypt-Zertifikat für HTTPS einrichten

Es gibt verschiedene Tools, um Zertifikate von Let’s Encrypt zu installieren. Meiner Ansicht nach funktioniert acme.sh am besten. Zur Installation führen Sie die folgenden Kommandos aus:

dnf install tar socat
curl https://get.acme.sh -o acme-setup
less acme-setup                             (kurze Kontrolle)
sh acme-setup email=admin@example.com

An die E-Mail-Adresse werden Warnungen verschickt, sollte in Zukunft die automatische Erneuerung von Zertifikaten nicht funktionieren. Damit Sie das frisch installierte Script verwenden können, müssen Sie sich aus- und neu einloggen. Jetzt fordern Sie das gewünschte Zertifikat an, wobei Sie natürlich example.com wieder durch Ihren tatsächlichen Hostnamen ersetzen:

acme.sh --issue -d --server letsencrypt example.com -d www.example.com -w /var/www/html

  Your cert is in
    /root/.acme.sh/example.com/example.com.cer 
  ...

acme.sh speichert das Zertifikat also vorerst in Ihrem Heimatverzeichnis. Sie könnten die Zertifikatsdateien einfach in das /etc-Verzeichnis kopieren, aber das wäre keine gute Idee: Das Zertifikat muss regelmäßig erneuert werden, und acme.sh muss wissen, wohin die neuen Zertifikate dann kopiert werden müssen. Daher weisen Sie acme.sh an, die Zertifikate in das Verzeichnis /etc/mycert zu kopieren:

mkdir /etc/mycert

acme.sh --install-cert -d example.com \
  --cert-file      /etc/mycert/example.com.cert \
  --key-file       /etc/mycert/example.com.key \
  --fullchain-file /etc/mycert/example.com.fullchain

acme.sh merkt sich den Installationsort und berücksichtigt ihn in Zukunft automatisch bei Updates der Zertifikate. Für diese Updates ist das Kommando acme.sh --cron zuständig, das automatisch einmal täglich durch /var/spool/cron/root ausgeführt wird.

Die Zertifikatsdateien sind nun im /etc-Verzeichnis, aber Apache weiß noch nichts davon. Sie müssen also in der Webserver-Konfiguration angeben, wo sich die Verzeichnisse befinden. Dazu verändern Sie zwei Zeilen in ssl.conf:

# in /etc/httpd./conf.d/ssl.conf zwei Zeilen ändern
SSLCertificateFile    /etc/mycert/example.com.fullchain
SSLCertificateKeyFile /etc/mycert/example.com.key

Jetzt starten Sie Apache neu:

systemctl restart httpd

Danach versuchen Sie nochmals, die Seite example.com im Webbrowser zu öffnen. Jetzt sollte alles klappen, d.h. »Hello World« wird verschlüsselt vom Webserver zum Webbrowser übertragen und der Webbrowser ist mit dem Zertifikat zufrieden.

MySQL absichern

Unbegreiflicherweise ist die MySQL-Installation von RHEL 9 und all seinen Klonen offen wie ein Scheunentor. Jeder Benutzer, der sich auf dem Linux-System anmelden kann, erhält mit mysql -u root ohne Passwort Root-Rechte für MySQL. Abhilfe schafft das Kommando mysql_secure_installation. Die folgenden Zeilen fassen stark gekürzt die wichtigsten Eingaben zusammen:

mysql_secure_installation 

Would you like to setup VALIDATE PASSWORD  component?      n

New password:          xxxxxx
Re-enter new password: xxxxxx

Remove anonymous users?                 y
Disallow root login remotely?           y
Remove test database and access to it?  y
Reload privilege tables now?            y

MySQL-Datenbank einrichten

WordPress braucht eine Datenbank, in der Ihre Einstellungen, den HTML-Code Ihrer Blog-Beiträge, die Kommentare anderer Benutzer usw. speichern kann. Diese Datenbank sowie ein Datenbank-Nutzer, der darauf zugreifen darf, wird jetzt eingerichtet. Ich habe für die Datenbank und den Benutzer jeweils den Namen wp verwendet, aber natürlich sind Sie bei der Namenswahl frei.

mysql -u root -p
Password: xxxxxxx   (gleiches Passwort wie bei mysql_secure_installation)

mysql> CREATE DATABASE wp;
mysql> CREATE USER wp@localhost IDENTIFIED BY 'strengGeheim';
mysql> GRANT ALL ON wp.* TO wp@localhost; 
mysql> exit

WordPress-Dateien installieren

WordPress steht nicht als Paket zur Verfügung, sondern muss manuell installiert werden. Dazu laden Sie die Dateien herunter, packen Sie aus und weisen Ihnen die richtigen Zugriffsrechte samt SELinux-Kontext zu.

cd /var/www/html
rm index.html
wget https://de.wordpress.org/latest-de_DE.tar.gz
tar xzf latest-de_DE.tar.gz
chown -R apache wordpress
chcon -R system_u:object_r:httpd_sys_content_rw_t:s0 wordpress
rm latest-de_DE.tar.gz

Mit der Installation der WordPress-Dateien in /var/www/html/wordpress soll dieses Verzeichnis der Startpunkt für die Dateien in Apache sein. Daher mussdie Variable DocumentRoot von /var/www/html auf /var/www/html/wordpress umgestellt werden. Bei der Gelegenheit können Sie auch gleich den Server-Namen einstellen:

# in /etc/httpd/conf/httpd.conf zwei Zeilen ändern
DocumentRoot "/var/www/html/wordpress"
ServerName example.com

Damit die Einstellungen wirksam werden, ist das folgende Kommando notwendig:

systemctl reload httpd

WordPress konfigurieren

Damit ist es endlich soweit. Sie können nun mit der WordPress-Konfiguration beginnen. Dazu öffnen Sie die Seite example.com/wp-admin/setup-config.php. Im ersten Schritt müssen Sie den Namen der Datenbank, den Datenbank-User sowie dessen Passwort angeben.

Konfiguration des Datenbankzugriffs für WordPress

Im nächsten Schritt legen Sie den Namen Ihrer Website sowie einen Benutzernamen und ein Passwort für die WordPress-Administration fest. Mit diesen Daten können Sie sich danach bei Ihrer neuen Seite anmelden und die mit Inhalten füllen.

Fine Tuning

Wenn alles funktioniert, sollten Sie sich noch um die folgenden Details kümmern:

  • SSH absichern (z.B. mit Fail2Ban)
  • Paket-Updates automatisieren (Paket dnf-automatic)
  • automatische Umleitung HTTP -> HTTPS sowie Optimierung der HTTPS-Optionen (siehe https://ssl-config.mozilla.org)
  • Backup-System einrichten

Wie wird in D, A und CH geheizt?

26. Mai 2023 um 10:53

Aktuell recherchiere ich für ein neues Buch über Wärmepumpen zur Frage, wie in der DACH-Region geheizt wird. Die Unterschiede sind verblüffend. Die folgende Tabelle fasst zusammen, wie viel Prozent der Haushalte über welche Art der Heizung verfügen.

Die Verteilung der Heizungsarten variiert in der DACH-Region stark. D und CH: Stand 2021. A: Stand 2019/2020. Quellen: siehe Ende des Beitrags.

Wie jede Statistik bedarf auch die obige Tabelle einiger Erläuterungen.

Fernwärme

Bei mehr als 40 Prozent aller Fernwärmeanlagen stammt die Wärme aus der Verbrennung von Gas. Immerhin handelt es sich dabei oft um eine Doppelnutzung: Vielen Gaskraftwerke sind mit einer Anlage zur Kraft-Wärme-Kopplung ausgestattet; die im Kraftwerk sowieso entstehende Wärme kann so in das Fernwärmenetz eingespeist werden, was den Gesamtwirkungsgrad des Kraftwerks im Winter verbessert. Andere Wärmequellen sind Industrieanlagen (Nutzung von Prozesswärme), Müllverbrennungsanlagen oder, zum Glück immer seltener, Kohlekraftwerke. Nur ganz vereinzelt können warme Quellen unter der Erde genutzt werden (Geothermie).

Anders formuliert: Der Anteil der Haushalte, die in letzter Konsequenz mit Gas beheizt werden, ist sogar noch höher als die obige Tabelle vermuten lässt.

Holz/Pellets-Heizung

Der Bundesverband der Energie- und Wasserwirtschaft e.V. (BDEW) inkludiert Holz- und Pellets-Heizungen unter »Sonstige« und gibt dafür einen Anteil von 6,2 Prozent an. Laut anderen Quellen heizen in Deutschland ca. 3 bis 4 Prozent aller Haushalte mit Pellets, Hackschnitzel oder Stückholz. Im krassen Gegensatz dazu nimmt Österreich mit einem untypisch hohen Anteil von Pelletsheizungen (ca. 13 Prozent) eine Spitzenposition innerhalb von Europa ein.

Brauchwasser

Die meisten Datenerhebungen differenzieren nicht, ob die Anlage nur die Heizung oder auch das Warmwasser betrifft. Dabei ist das ein wichtiger Unterschied. Die Brauchwassererwärmung beansprucht immerhin ca. ein Sechstel der Gesamtenergiemenge für Heizung und Warmwasser.

Gerade in größeren Wohnanlagen dient die zentrale Heizungsanlage oft nur für die Heizung, nicht für das Warmwasser. Dann braucht jeder Haushalt zusätzlich einen energetisch ungünstigen Elektroboiler für das Warmwasser.

Heizungsanzahl versus Energiemenge

Es gibt im Internet viele Quellen, die den Heizungsmarkt abbilden, wobei es je nach Erhebung und Aktualität zu kleineren Abweichungen kommt. Wenn die Zahlen vollkommen anders als in der obigen Tabelle aussehen, gilt eine ganz andere Methodik. Beispielsweise stellt die Statistik Austria einen Datensatz zur Verfügung, der nicht die Anzahl der Haushalte, sondern die pro Heizungsart aufgebrachten Energiemengen vergleicht.

Quellen Deutschland

Quellen Österreich

Quellen Schweiz

openSUSE 15.5

08. Juni 2023 um 05:39

openSUSE Leap 15.5 ist ein weiteres Minor-Release, das auf SUSE Linux Enterprise Server 15 (SLES 15) basiert. Nach längerer Pause (zuletzt habe ich mir in diesem Blog openSUSE 15.1 angesehen) ist es wieder einmal Zeit, einen Blick in die openSUSE-Welt zu werfen.

openSUSE 15.5 mit KDE/Plasma-Desktop

Aktualisiert am 3.8.2023: NVIDIA-Treiberinstallation

Versionsnummern

openSUSE zeichnet sich durch einen seltsamen Mix aus alter und aktueller Software aus. Vollkommen unbegreiflich ist die uralte Python-Version (aktuell wäre 3.11).

Basis             Desktop             Programmierung   Server
---------------   ------------------  --------------   --------------
Kernel     5.14   KDE Plasma    5.27  bash       4.4   Apache     2.4
glibc      2.31   Gimp          2.10  docker   20.10   CUPS       2.2
X-Server   1.20   LibreOffice    7.4  gcc       12.2   MariaDB   10.6
Wayland    1.21                       git       2.35   OpenSSH    8.4
Mesa       20.2                       Java     11/17   qemu/KVM   7.1
Systemd     249                       PHP    7.4/8.0   Postfix    3.7
NetworkMan 1.38                       podman     4.4   Samba     4.17
GRUB       2.06                       Python     3.6

Sie können bei der Installation zwischen mehreren Desktop-Systemen wählen. Viele openSUSE-Anwender entscheiden sich für KDE. Gnome steht nur in der ziemlich alten Version 41 zur Verfügung.

Wenn Sie openSUSE in Kombination mit aktueller Software einsetzen möchten, sollten Sie sich die Rolling-Release-Variante Tumbleweed ansehen. Persönlich bin ich der Meinung, dass Tumbleweed das »bessere« openSUSE ist.

Installation und Administration

Die Installation von openSUSE funktioniert gut wie eh‘ und je. Das Installationsprogramm brilliert vor allem bei komplizierten Setups mit RAID und LVM. Standardmäßig kommt das Dateisystem btrfs zum Einsatz, wobei diverse Subvolumes für /var, /tmp usw. eingerichtet werden. Außerdem werden bei jeder Paket-Installation und bei jedem Update Snapshots erstellt. Diese Snapshots ermöglichen es, eine fehlgeschlagene Paketoperation rückgängig zu machen. (Allzu oft tritt dieser Fall in der Praxis nicht auf. Ich hatte dazu in den letzten Jahren nie die Notwendigkeit, egal, unter welcher Distribution ich gerade gearbeitet habe.)

Das Systemadministrations-Tool YaST war über lange Zeit das Unterscheidungsmerkmal zwischen SUSE und anderen Distributionen. Mittlerweile wirkt YaST aber definitiv angestaubt. Beispielsweise sind die Module zur Software-Verwaltung aus heutiger Sicht unübersichtlich und verwirrend organisiert. Das Firewall-Modul findet außer ‚docker‘ keine Netzwerkschnittstellen. Das AppArmor-Modul eignet sich gerade noch dazu, AppArmor zu deaktivieren bzw. wieder zu aktivieren.

Probleme bei der NVIDIA-Treiberinstallation

Bei vergangenen openSUSE-Versionen gestaltete sich die Installation des proprietären NVIDIA-Treibers sehr einfach: NVIDIA-Paketquelle aktivieren, dann im YaST-Modul Online-Aktualisierung das Menükommando Extras/Alle
passenden empfohlenen Pakete installieren
ausführen.

Aktuell scheitert allerdings die Aktivierung der NVIDIA-Paketquelle. Abhilfe: Richten Sie die Paketquelle
manuell mit Hinzufügen/URL angeben ein und verwenden Sie dabei die Adresse `http://download.nvidia.com/opensuse/leap/15.5` (mit HTTP, nicht HTTPS!). Siehe auch diesen Beitrag im NVIDIA-Forum.

Warum openSUSE?

Ich habe mich in den letzten Jahren immer wieder gefragt: Was macht die Attraktivität von openSUSE aus? Laut metrics.opensuse.org sind die Nutzerzahlen in den letzten zwei Jahren stark gestiegen. Auch auf distrowatch.com hält sich openSUSE in den Top-10. (Ich war vor 20 Jahren selbst großer SUSE-Fan, aber das hat sich gelegt.)

  • openSUSE ist großartig, wenn Sie beruflich oder für den Unterricht eine kostenlose Trainingsumgebung für SLES brauchen.
  • openSUSE konzentriert sich für die Desktop-Anwendung auf KDE. Wer KDE bevorzugt, hat im Linux-Mainstream wenig Auswahl. openSUSE ist dann durchaus eine sinnvolle Option.

  • openSUSE verzichtet in der Grundausstattung auf Snap- oder Flatpak-Pakete. Gerade im Vergleich zu Ubuntu kann man das als Pluspunkt sehen.

Ausblick

Für seine Enterprise-Version arbeitet SUSE momentan an einem Komplettumbau. SLES 15 soll durch die Adaptable Linux Platform (ALP) abgelöst werden. ALP basiert auf Micro OS, einer neuartigen immutable Distribution, bei der Updates in Form von atomaren Transaktionen (und nicht durch die Aktualisierung von Paketen) erfolgen. SUSE ALP ist allerdings nur das Kern-Betriebssystem. Die darin installierten Anwendungen sollen ähnlich wie Container (denken Sie an Docker oder Podman) laufen. Red Hat und Canonical experimentieren mit Silverblue bzw. mit Ubuntu Core und Snaps und in eine ähnliche Richtung.

openSUSE ALP soll diesen Paradigmen-Wechsel nachvollziehen. Bis es soweit ist, wird wohl noch einige Zeit vergehen — denn vorher soll es mit openSUSE 15.6 noch ein Minor Release geben (siehe news.opensuse.org).

Update 13.6.2023: Das in SUSE-Frage stets gut informierte Blog MerCurius weist darauf hin, dass ALP vermutlich eine reine Server-Plattform sein wird und keine Desktop-Pakete enthält. Damit openSUSE ALP als Desktop-System funktionieren kann, sucht openSUSE nach Unterstützung durch die Community.

Quellen/Links

Download, Release Informationen und sonstige Dokumentation

ALP/MicroOS/Silverblue/Ubuntu Core

NVIDIA-Paketquelle

Debian 12 »Bookworm«

17. Juni 2023 um 18:33

Debian 12 »Bookworm« vervollständigt den Distributionsreigen der letzten Monate. Debian wird ca. alle zwei Jahre aktualisiert. Die nun präsentierte Version zeichnet sich vor allem durch Software-Updates und ein paar technische Neuerungen aus. Erfreulich ist, dass die für den Betrieb von Netzwerk-Adaptern und anderen Hardware-Komponenten erforderliche Firmware-Dateien nun gleich mitgeliefert wird. Diese pragmatische Entscheidung des Debian-Entwicklerteams erleichtert die Installation von Debian auf aktuellen Notebooks. Davon abgesehen hat sich am Installations-Programm nur wenig geändert. Wenn man die Logik der Dialoge einmal kennt bzw. verstanden hat, lässt sich das Programm aber sehr effizient bedienen. Selbst komplexe Setups inklusive LVM, RAID und Verschlüsselung sind kein Problem.

Das Debian-Installationsprogramm ist optisch keine Glanzleistung, funktioniert dafür aber ausgezeichnet

Während der Installation haben Sie die Wahl zwischen mehreren Desktop-Systemen (Gnome, KDE, XFCE etc.). Ich habe meine Tests mit Gnome durchgeführt.

Debian 12 mit Gnome-43-Desktop

Versionsnummern

Basis             Desktop             Programmierung   Server
---------------   ------------------  ---------------  --------------
Kernel      6.1   Gnome          43   bash        5.2   Apache     2.4
glibc      2.36   Gimp         2.10   docker.io 20.10   CUPS       2.4
X-Server   21.1   LibreOffice   7.4   gcc        12.2   MariaDB  10.11
Wayland    1.21                       git        2.39   OpenSSH    9.2
Mesa       22.3                       Java         17   qemu/KVM   7.2
Systemd     252                       PHP         8.2   Postfix    3.7
NetworkMan 1.42                       Podman      4.3   Samba     4.17
GRUB       2.06                       Python     3.11                  

Generell ist festzustellen, dass die Versionsnummern — eigentlich untypisch für Debian — erfreulich aktuell sind. Insbesondere gilt dies für MariaDB und PHP. Gerade bei MariaDB liefern die meisten anderen Distributionen Uralt-Versionen aus. Debian macht es hier besser! (MySQL fehlt dafür.)

Plattformen (Architekturen)

Debian 12 steht (unverändert im Vergleich zu Debian 11) für die folgenden Plattformen zur Verfügung:

  • Standard-PCs: i386 und amd64
  • ARM: arm64, armhf, armel
  • MIPS: mipsel, mips64el
  • PowerPC: ppc64el
  • S390X: s390x

Weitere Details zur Hardware-Unterstützung können Sie hier nachlesen:

Technische Neuerungen

Firmware-Dateien: Ich habe in der Einleitung darauf hingewiesen, dass die offiziellen Installationsmedien nun auch Firmware-Dateien enthalten. Hinter den Kulissen wurde für diese Dateien die neue Paketquelle non-free-firmware geschaffen, die automatisch aktiv ist.

Logging: Der traditionelle Syslog-Dämon rsyslogd wird standardmäßig nicht mehr installiert. Stattdessen erfolgt das Logging nun über das Journal (eine systemd-Komponente). Die Logging-Daten werden dauerhaft in binärer Form gespeichert (Verzeichnis /var/log/journal) und können mit journalctl ausgewertet werden. Der wichtigste Unterschied im Vergleich zu früher besteht darin, dass diverse Logging-Dateien (z.B. /var/log/mail*) nicht mehr zur Verfügung stehen. Abhilfe schafft gegebenenfalls die Installation von rsyslog. Das Paket befindet sich weiter in den Paketquellen.

Keys für externe Paketquellen: apt-key ist veraltet. Beim Einrichten von neuen Paketquellen muss nun ein Schlüssel in /etc/apt/trusted.gpg.d hinterlegt werden. Auf diesen Schlüssel muss in /apt/sources.list.d/*.conf Bezug genommen werden. Das neue Prozedere ist sicherer, aber leider auch wesentlich umständlicher. Hintergründen können Sie z.B. in der Debian-Dokumentation oder auf syslog.me nachlesen.

Keine anderen Betriebssysteme im GRUB-Menü: Während der Installation verzichtet Debian so wie aktuelle Ubuntu-Versionen darauf, das Script os-prober auszuführen und alle anderen auf den SSDs/Festplatten gefundenen Betriebssysteme in das GRUB-Menü einzubauen. Dieser Schritt ist nicht nur zeitaufwändig, sondern auch überflüssig, weil Sie das zu startende Betriebssystem ja auch über ein EFI-Menü auswählen können. Sollte dabei etwas schief gehen, ist es ganz einfach, den os-prober zu reaktivieren. Dazu fügen Sie die folgende Zeile am Ende von /etc/default/grub ein:

# in /etc/default/grub
GRUB_DISABLE_OS_PROBER=false

Es geht nichts über eine doppelte Verneinung ;-)

Anschließend erzeugen Sie grub.cfg mit einem Aufruf von update-grub neu.

Wartungszeitraum

Anders als bei Ubuntu sind die Angaben zum Wartungszeitraum von Debian ein wenig vage. Grundsätzlich gibt es bei Debian ca. alle zwei Jahre ein neues Release. Das jeweils vorige Release wird dann noch ca. ein Jahr mit Updates versorgt, womit sich ein offizieller Wartungszeitraum von ca. drei Jahren ergibt.

Ein Team von Freiwilligen versucht Debian für die Plattformen i386, amd64, arm64 und armhf über den offiziellen Wartungszeitraum hinaus insgesamt fünf Jahre mit kritischen Sicherheits-Updates zu versorgen (Projekt Debian LTS).

»Bitte legen Sie das Medium mit dem Namen ‚Debian GNU/Linux‘ ein«

Der Standardinstaller hinterlässt in /etc/apt/sources.list eine Zeile mit dem Installationsmedium (USB-Stick oder DVD). Wenn Sie nach der Installation ein Paket installieren wollen (apt install <name>), will apt, dass Sie das Installationsmedium wieder einlegen, anstatt das betreffende Paket einfach herunterzuladen. Das ist (schon seit vielen Jahren) nicht mehr zeitgemäß.

Abhilfe: Öffnen Sie /etc/apt/sources.list mit einem Editor und entfernen Sie die Zeile, die mit deb cdrom beginnt.

Fazit

Debian ist mit »Bookworm« ein grundsolides, überdurchschnittlich modernes Release gelungen. Snaps und Flatpaks sind optional möglich, aber nicht erforderlich. Vielleicht ist das altmodisch, aber ich sehe es als Pluspunkt.

Gerade in Zeiten, wo dem Linux-Desktop ein rauer Wind entgegen weht (Red Hat will keine LibreOffice-Pakete mehr erstellen, SUSE überhaupt keine kommerzielle Desktop-Distribution mehr anbieten usw.) ist es großartig, dass Debian nicht nur am Server brilliert, sondern auch ein gutes Angebot für Desktop-User darstellt.

Ich habe es in meinen früheren Debian-Artikel schon erwähnt, aber man kann es nicht oft genug sagen: Debian ist das Fundament für eine große Palette weiterer Distributionen: Ubuntu und all seine Varianten, Kali Linux, Raspberry Pi OS usw. Die Linux-Community kann dem Debian-Team gar nicht dankbar genug sein, dass es dieses Fundament immer wieder neu zusammenstellt!

Quellen/Links

Andere Tests

Ärger für Red-Hat-Klone

22. Juni 2023 um 06:08

Red Hat Enterprise Linux (RHEL) besteht aus Open-Source-Code, der öffentlich zugänglich ist. Diesen Umstand nutzen AlmaLinux, Oracle Linux, Rocky Linux und einige weitere Distributionen, um zu RHEL kompatible Distributionen anzubieten. Es ist verständlich, dass dies Red Hat (oder noch mehr IBM?) ein Dorn im Auge ist. Die Klons funktionieren so gut wie das Original, und wer keinen Support braucht oder mit externen Support-Angeboten das Auslangen findet, kann sich viel Geld für Lizenzen sparen.

Nachdem Red Hat schon 2020 das CentOS-Projekt (quasi einen Red-Hat-eigener RHEL-Klon) beendet hat und durch das für den Produktivbetrieb weniger attraktive CentOS Stream ersetzt hat, hat die Firma Ende Juni verkündet, den öffentlichen Zugang auf die RHEL-Quellen unter https://git.centos.org zu beenden. Den RHEL-Quellcode erhalten dann möglicherweise nur noch zahlende Kunden. Das Ganze wurde in bestem Marketing-Sprech als Aufwertung des CentOS-Stream-Projekts verkündet. Die zentrale Aussage lautet: CentOS Stream will now be the sole repository for public RHEL-related source code releases.

Aktuell ist noch unklar, was das für AlmaLinux, Rocky Linux & Co. bedeutet. Grundsätzlich könnten die hinter den Projekt stehenden Organisationen einfach ein RHEL-Abo abschließen. Die Frage ist aber, in welcher Form der Zugang auf den Quellcode dann erfolgt (über SRPM-Pakete?), und wie flott diese Pakete aktualisiert werden. Letztlich könnte die ganze Aktion darauf hinauslaufen, die natürlich weitgehend automatisierten Build-Prozesse der Klone zu behindern oder zu verzögern.

Eine weitere Frage ist, ob irgendwelche EULA-Regeln die Verwendung dieses Codes zum Nachbau anderer Distributionen verbieten können. Das erscheint mir — ohne juristisches Wissen — eher unwahrscheinlich. Es galt immer und es gilt weiterhin die GNU Public License.

Es bleibt also spannend. AlmaLinux verkündet auf Twitter: Don’t panic. Wahrscheinlich eine gute Idee.

Quellen/Links

Ausgewählte Artikel und Updates nach Erscheinen meines Blog-Artikels

📚 Scripting-Buch erschienen

22. Juni 2023 um 07:46

In meinem Arbeitsumfeld sind Scripts allgegenwärtig. Ich verwende Scripts, um den Energiesparmodus meines Notebooks einzustellen, um aus Markdown-Dateien die PDF-Datei für den Druck dieses Buchs zu erzeugen, um auf Servern das Backup zu automatisieren, um E-Books mit Wasserzeichen auszustatten, um in einer Webapplikation neue Kunden einzurichten, um Dutzende von Datenbanken nach logischen Fehlern zu durchsuchen, um virtuelle Maschinen für den Unterricht zu erstellen, um Fotos zu sortieren usw. Im Herbst 2022 habe ich außerdem einen Lehrauftrag zum Thema Scripting an der FH JOANNEUM übernommen. Höchste Zeit also, um Scripting-Know-how in ein Buch zu fassen.

Umfang: 492 Seiten
Autor: Michael Kofler
ISBN: 978-3-8362-9424-9
Preis: Euro 39,90 (in D inkl. MWSt.)

Das soeben im Rheinwerk Verlag veröffentlichte Buch behandelt die Sprachen Bash, Python und PowerShell. Es ist in drei Teile konzipiert. Der Grundlagenteil enthält einen Crashkurs für die drei genannten Programmiersprachen. Der zweite Teil stellt im Scripting-Umfeld häufig eingesetzte Tools und Werkzeuge vor: Reguläre Ausdrücke, JSON- und XML-Bibliotheken, SSH und Git etc. Der dritte Teil gibt konkrete Anwendungsbeispiele. Diese reichen von Backups über Bildverarbeitung bis hin zur Administration von Datenbank- und Virtualisierungssystemen.

Das Buch steht unter dem Motto: Scripting ist die Kunst, IT-Probleme in zehn Zeilen Code zu lösen. Lesen Sie hier das Vorwort!

Vorwort (PDF)

Mehr Details und Bestellinformationen finden Sie hier.

Kommentar: Red Hat und die Parasiten

23. Juni 2023 um 06:47

Die Einstellung des Git-Repos mit den RHEL-Quellen (siehe auch Ärger für Red-Hat-Klone) hat im Netz erwartungsgemäß für hitzige Diskussionen gesorgt. Ein wenig irritiert haben mich die Kommentare auf lwn.net, eigentlich der seriösesten Linux-News-Quelle: Dort wurden AlmaLinux, Rocky Linux und speziell Oracle von manchen Autoren als »Parasiten« bezeichnet.

Nun ist es unbestritten, dass die Zusammenstellung einer Distribution wie RHEL mit richtig viel Arbeit verbunden ist. Noch viel mehr Mühe bereitet es, das Software-Angebot über 10 Jahre zu warten und auch bei veralteter Software Sicherheits-Patches rückzuportieren. (Python 2.7 ist ein klassisches Beispiel.)

Wenn nun die RHEL-Klone die Quellen einfach kopieren und daraus ein kostenloses Produkt machen (oder, wie im Falle von Oracle, wahlweise kostenlos oder kostenpflichtig mit Support), ist das noch fair? Ist die Bezeichnung »Parasiten« womöglich zutreffend?

Anmerkung: Dieser Artikel wurde zwischen 23.6. und 24.6.2023 mehrfach aktualisiert.

Open Source ist keine Einbahnstrasse

ABER: Linux ist Open-Source-Software. Und das gilt nicht nur für den Kernel, das gilt auch für alle weitere Komponenten: Apache, NGINX, PHP, PostgreSQL, Samba, Postfix, Java, die Bash, der C-Compiler, Python, GRUB usw. Ich könnte hier vermutlich 1000 Open-Source-Komponenten aufzählen, die in RHEL zum Einsatz kommen. Ja, Red Hat arbeitet intensiv an manchen Open-Source-Projekten mit (dem Kernel, systemd, Gnome usw.) und unterstützt viele weitere finanziell. Von anderen Projekten profitiert es, ohne etwas zurückzugeben.

Dazu noch eine Anmerkung aus meiner beruflichen Praxis: Red Hat hat mit Podman ein Konkurrenzprodukt zu Docker geschaffen. Beide Programme stehen unter Open-Source-Lizenzen, beide halten sich an den öffentlichen OCI-Standard und beide funktionieren großartig. In der Presse genießt Docker aber einen zweifelhaften Ruf, weil es versucht, Geld zu verdienen. (Gerade c’t und iX bzw. einige Heise-Autoren sind sehr Docker-kritisch eingestellt.) Übersehen wird dabei: Die Firma Docker betreibt — mit beträchtlichem finanziellem Aufwand — den Docker Hub, die weltweit größte Quelle von Container-Images. Red Hat betreibt zwar auch Registries für ein paar eigene Software-Projekte, aber davon abgesehen gilt: Wer Podman anwendet, bezieht in aller Regel die Images vom Docker Hub (also von docker.io) und verursacht so weitere Kosten für Docker. Red Hat und Podman sind hier also Nutznießer einer Infrastruktur, die von einer anderen Firma geschaffen wurde. (Und ja, das ist Open Source. Das bessere Angebot wird sich langfristig durchsetzen.)

Das Open-Source-Modell funktioniert dann am besten, wenn Einsatz/Aufwand und Nutzen einigermaßen fair verteilt sind. Das Linux-Ökosystem als Ganzes profitiert von erfolgreichen Open-Source-Firmen, und Red Hat war ohne Zweifel die erfolgreichste. (Seit 2018 ist Red Hat Teil von IBM.) Red Hat wiederum profitiert vom riesigen Angebot exzellent gewarteter Open-Source-Software.

Wenn nun umgekehrt kleine Entwickler, Organisationen ohne riesige Finanzmittel, Schulen usw. RHEL-kompatible Software über den Umweg von AlmaLinux, Rocky Linux und Co. kostenfrei nutzen dürfen, erscheint mir das fair. Wiederum profitieren alle, letztlich sogar Red Hat bzw. IBM, weil ihre Software von vielen Anwendern genutzt und getestet wird, weil Studenten die Administration von RHEL-kompatiblen Systemen lernen (und nicht etwas die von Debian oder Ubuntu) usw.

Ohne Not in den Shit Storm

Der Schritt von Red Hat, die Quellen zu RHEL (soweit es GPL-technisch überhaupt möglich ist) zu kappen, wäre verständlich, wenn man sich um die finanzielle Stabilität von Red Hat Sorgen machen müsste. Aber soweit man den Finanzberichten trauen kann, ist das nicht der Fall. IBM hat 2018 Red Hat für 34 Mrd. Dollar gekauft. Damals machte Red Hat 2,9 Mrd Dollar Umsatz und 259 Mil. Dollar Gewinn (Quelle). Seither werden keine eigenen Red-Hat-Zahlen mehr veröffentlicht, aber die Red-Hat-Sparte innerhalb von IBM hat sich offenbar prächtig weiterentwickelt (Quelle). Red Hat kämpft also nicht um sein finanzielles Überleben. Eher ist es wohl die Gier (IBMs?), aus einem gut gehenden Geschäft noch mehr rauszuholen. Auch wenn dabei die Fairness auf der Strecke bleibt.

Und eines muss man schon sagen: Das Timing ist bösartig, ein freundlicheres Wort fällt mir nicht ein. Sowohl die Kommunikation über das CentOS-Ende (Ende 2020) als auch der Stopp der Veröffentlichung der RHEL-Quellen unter git.centos.org (Juni 2023) erfolgte jeweils äußerst kurzfristig mitten im Release-Zyklus. Es ist beabsichtigt, die Anwender von (damals) CentOS und (heute) AlmaLinux, Rocky Linux, Oracle Linux ganz bewusst zu verunsichern und vor den Kopf zu stoßen.

fosspost.org hat die Aktion Red Hat als Schuss ins Knie bezeichnet. Mir erscheint diese Einschätzung zutreffend. Ansible-Entwickler Jeff Geerling fragt: »Are you dumb?« und überlegt, ob er sich überhaupt noch die Mühe machen soll, RHEL zu unterstützen (also z.B. Fehlermeldungen zu bearbeiten, die sich auf RHEL beziehen).

Als Red Hat das CentOS-Projekt in seiner bisherigen Form stoppte, hatte ich Sorgen um die freie Verfügbarkeit von RHEL-Klonen. Dann erlebte das Konzept in Form von AlmaLinux und Rocky Linux eine Wiedergeburt und funktioniert heute besser denn je. Womöglich wird sich dieses Spiel wiederholen. An den Regeln der GNU Public Licence geht auch für Red Hat/IBM kein Weg vorbei. Sicher ist aber schon jetzt: Red Hat (IBM) verliert in der Open-Source-Community gerade massiv Reputation und Gunst.

Quellen/Links

Reaktionen

»Parasiten«-Diskussion

Finanzielle Daten zu Red Hat

HEIC/HEIF-Dateien unter Ubuntu und Fedora verarbeiten

14. August 2023 um 16:46

Das High Efficiency Image File Format (HEIF) ist ein relativ neues Dateiformat für Bilder und Bildsequenzen. Es ist durch die Moving Picture Experts Group (MPEG) standardisiert und wird seit 2017 vor allem von Apple eingesetzt. Die resultierenden *.heif– bzw. *.heic-Dateien ermöglichen bei gleicher Bildqualität kleinere Dateigrößen. Die Kennung *.heic weist auf die Kombination von HEIF mit dem Video-Codec Efficiency Video Coding (HEVC) hin.

Kürzlich wollte ich ein paar mit dem iPhone aufgenommene Bilder unter Linux mit Shotwell verarbeiten. Dabei bin ich, leider beinahe erwartungsgemäß, auf Probleme gestoßen. Einige ließen sich lösen, aber nicht alle.

Mit etwas Überredungskunst kann Shotwell auch mit HEIC-Dateien umgehen.

Ubuntu

Es beginnt damit, dass das weit verbreitete Foto-Management-Programm Shotwell erst seit April 2023 (Version 0.32) kompatibel mit dem HEIF-Format ist. Ubuntu bis einschließlich Version 23.04 liefert Shotwell aber in der Version 0.30 aus.

Um Version 0.32 zu installieren, müssen Sie zuerst ein Private Package Archive (PPA) aktivieren. Außerdem müssen
Sie die Bibliotheken libheif1 und heif-gdk-pixbuf installieren. (Diese Pakete gelten nicht als Abhängigkeiten und werden daher nicht automatisch installiert.)

sudo add-apt-repository ppa:ubuntuhandbook1/shotwell
sudo apt update
sudo apt install shotwell libheif1 heif-gdk-pixbuf

Sind diese Hürden einmal überwunden, funktioniert der Import von HEIC-Dateien in Shotwell problemlos, wenn auch sehr langsam.

Fedora

Unter Fedora 38 sieht die Lage nicht viel besser aus. Shotwell steht zwar in der aktuellen Version 0.32 wahlweise als Flatpak- oder als RPM-Paket zur Verfügung, scheitert aber in beiden Varianten beim Import von HEIC-Dateien. Schuld sind wiederum fehlende Bibliotheken.

Bei der Flatpak-Variante lässt sich dieses Problem aktuell nicht lösen, weil Shotwell die Bibliotheken aus Framework-Flatpaks liest, auf die Sie als Anwender keinen Einfluss haben. (Habe ich schon einmal erwähnt, dass ich weder von Snaps noch von Flatpaks viel halte?)

Die RPM-Version von Shotwell wird HEIF-kompatibel, wenn Sie die Paketquellen RPM Fusion Free und Nonfree aktivieren (siehe https://rpmfusion.org/Configuration) und das dort enthaltene Paket libheif-freeworld installieren:

sudo flatpak remove shotwell
sudo dnf install shotwell libheif-freeworld

Unter Fedora scheiterte Shotwell jetzt aber am Auslesen der EXIF-Daten. Damit fehlen Informationen, wann die Fotos aufgenommen wurden. Eine Lösung zu diesem Problem habe ich nicht gefunden. Die Sache ist ein wenig unbegreiflich, weil der Import unter Ubuntu mit EXIF-Daten funktioniert.

Nautilus und Gimp

Nicht nur Shotwell zickt, wenn es auf HEIC-Dateien stößt, ähnliche Probleme haben auch Gimp, Nautilus und Co. Bei Gimp besteht die Lösung darin, das Paket gimp-heif-plugin zu installieren.

Nautilus unter Debian/Ubuntu setzt den heif-thumbnailer voraus, der aber ebenfalls nicht automatisch installiert wird. Unter Fedora müssen Sie stattdessen die libheif-tools installieren.

heic-convert

Eine Notlösung besteht darin, HEIC-Dateien vorweg in das JPEG-Dateien umzuwandeln. Dabei hilft das Kommando heif-convert aus dem Paket libheif-tools (Fedora) bzw. libheif-examples (Ubuntu). Das folgende Kommando durchläuft alle *.HEIC-Dateien im aktuellen Verzeichnis und erzeugt JPEG-Dateien in hoher Qualität. Die resultierenden Dateien sind leider wesentlich größer als die HEIC-Originale.

for f in *.HEIC; do heif-convert -q 95 --with-exif $f $f.jpg; done

Fazit

Wenn sich immer wieder einmal jemand wundert, warum aus Linux am Desktop nichts wird — hier ist die Antwort: Aufgrund vieler Kleinigkeiten versagt Linux im praktischen Betrieb und treibt seine Anwender zur Verzweiflung. Und den schwarzen Peter jetzt Apple zuzuschieben, das partout HEIF/HEVC einsetzt, ist nicht ganz fair: Diese Dateiformate kommen nun seit sechs (!) Jahren zum Einsatz, nicht erst seit gestern.

Und tatsächlich sind unter Linux eigentlich alle Puzzle-Stücke schon da. Aber ohne stundenlange Internet-Recherche lassen sie sich nicht zusammenfügen. (Ein verblüffendes Gegenbeispiel ist übrigens KDE Neon, ansonsten eigentlich nicht meine Lieblingsdistribution: Dort werden HEIC-Dateien auf Anhieb im KDE-Dateimanager korrekt angezeigt. Auch Digikam kommt mit den Dateien sofort zurecht. Leider auch nur fast: Digikam scheitert, im Portrait-Modus aufgenommene Bilder richtig zu drehen, obwohl die EXIF-Daten eigentlich da wären.)

Quellen/Links

Raspberry Pi 5 ab Oktober 2023

28. September 2023 um 07:14

(Aktualisiert am 11.10.2023, jetzt mit eigenen Tests)

Völlig überraschend hat die Raspberry Pi Foundation heute den Raspberry Pi 5 vorgestellt. Die wichtigsten Eckdaten im Überblick:

  • Neuer SoC (BCM2712 mit Quad-Core Cortex-A76) mit ca. zwei- bis dreifacher CPU-Leistung
  • Höherer Stromverbrauch (Leerlauf 3,25 W, Vollast 8,6 W ohne externe Geräte, laut heise.de)
  • Höhere Anforderungen an das USB-C-Netzteil: 5V/3A DC Minimum (15 W), 5V/5A DC empfohlen (25 W)
  • Lüfter empfohlen, es gibt einen eigenen Lüfteranschluss
  • Vorerst Modelle mit 4 und 8 GiB RAM
  • Weiterhin SD-Card als primärer Datenträger
  • Neuer SD-Card-Transfermodus SDR104 verspricht 100 MByte/s bei kompatiblen SD-Karten
  • PCIe-SSDs sollen in Zukunft über Erweiterungen (HATs) unterstützt werden
  • Ein/Aus-Schalter
  • Kein 3,5-mm-Klinkenstecker mehr (ungünstig für Audio-Anwendungen)
  • Sonstige Anschlüsse (GPIO, 4xUSB, 2x MicroHDMI, Ethernet) kompatibel zu den bisherigen Pis
Raspberry Pi 5

Das Gerät soll ca. ab Ende Oktober lieferbar sein. Die Preisempfehlung lautet 60 $ für das 4-GiB-Modell, 80 $ für das 8-GiB-Modell. Welche €-Preise sich daraus ergeben (inklusive Umsatzsteuer, evt. inklusive neuem Netzteil + Lüfter), muss abgewartet werden.

Erste Tests

Die Raspberry Pi Foundation hat mir dankenswerterweise ein Vorab-Exemplar für Journalisten zukommen lassen. Die Inbetriebnahme gelang erwartungsgemäß mühelos. Wie alle anderen Webseiten kann auch ich bestätigen, dass der Rechner bei der Desktop-Nutzung jetzt unglaublich schnell ist. Bei einem Neustart dauert es nur wenige Sekunden, bis der Desktop erscheint. (Das geht definitiv viel schneller als bei meinem 2000-EUR-Notebook, auch wenn dieses zugegebenermaßen nicht mehr ganz neu ist. Dennoch faszinierend.)

Der winzige Ein/Aus-Schalter ist eine unscheinbare aber dennoch enorm zweckmäßige Verbesserung und schont sicher die USB-C-Buchse für die Stromversorgung. Bisher war es immer notwendig, das Kabel zu lösen und neu einzustecken, um einen ausgeschalteten Raspberry Pi wieder in Betrieb zu nehmen. Jetzt reicht ein Tastendruck.

Sehr empfehlenswert ist der von der Raspberry Pi Foundation angebotene Lüfter. In Kombination mit Raspberry Pi OS wird dieser nur bei Bedarf verwendet. Im Leerlaufbetrieb bleibt der Lüfter ausgeschalten, der Raspberry Pi profitiert aber dennoch vom relativ großen Kühlkörper. Die Temperatur beträgt dann ca. 45 bis 50°C — mehr als genug. Nur bei CPU-intensiven Aufgaben springt der Lüfter an und sorgt für eine aktive Kühlung und somit mehr Rechenleistung. (Ohne Kühlung reduziert der Raspberry Pi automatisch die CPU-Frequenz.)

Raspberry Pi OS

Meinem Exemplar lag eine SD-Karte mit einer Vorab-Version von Raspberry Pi OS Bookworm bei (also auf der Basis von Debian 12). Auf den ersten Blick hat sich an der Desktop-Oberfläche wenig geändert.

Hinter den Kulissen ist mehr neu:

  • Der Kernel läuft standardmäßig im 64-Bit-Modus.
  • Die Netzwerkkonfiguration erfolgt über den NetworkManager (kein dhcpcd mehr).
  • Die gesamte Software hat Debian 12 als Fundament (d.h. z.B. Python 3.11).

Bei meinen Tests verlangte Mathematica einen Lizenzcode. Ob es dabei bleibt, kann ich nicht sagen — das wäre sehr schade.

Mehr Infos zu Raspberry Pi OS Bookworm folgen demnächst auf diesem Blog.

Einschätzung

Die höhere CPU-Leistung ist vor allem bei der Anwendung des Geräts als Desktop-Rechner, zur Software-Entwicklung bzw. als Media-Center spannend. Aus dieser Perspektive ist es sehr schade, dass der Pi 5 weiterhin keine Möglichkeit bietet, SSDs direkt anzuschließen. Zwar gibt es eine neue PCI-Schnittstelle; die soll in Zukunft über ein Erweiterungs-Board (HAT) genutzt werden können. Das ist aber eine umständliche und teure Lösung.

Aus Bastel-Perspektive war schon die Leistung der bisherigen Modelle (3B+, 4B) ausreichend. Diese Modelle werden — sofern sie zu vernünftigen Preisen lieferbar sind — weiterhin eine attraktive Basis für Bastelprojekte bleiben. Das neue Modell 5 ist aus Maker-Sicht dagegen ein zweischneidiges Schwert: Ja, mehr CPU-Leistung ist immer gut. Aber die höheren Anforderungen an Netzteil und Lüfter sowie der Umstand, dass es vorerst keine Modelle mit weniger als 4 GiB RAM geben soll, führen zu einer massiven Preissteigerung selbst für Minimal-Setups. Auch der höhere Strombedarf im Leerlauf ist kein Pluspunkt.

Quellen/Links

PS: Eine Neuauflage des Raspberry-Pi-Buchs ist natürlich geplant, sie wird 2024 erscheinen. Mehr weiß ich gegenwärtig selbst nicht.

Bedienung des Fronius-Hybridwechselrichters »Symo GEN24«

29. September 2023 um 17:32

Seit gut einem Monat ist meine neue PV-Anlage mit einem Wechselrichter von Fronius in Betrieb. In den ersten Tagen habe ich die dreigeteilte Benutzeroberfläche etwas verwirrend gefunden: App versus Cloud-Webseite versus LAN-Weboberfläche. Dieser Blog-Beitrag erklärt das dahinterstehende Konzept mit seinen Vor- und Nachteilen — und versucht ein wenig hinter die Kulissen zu schauen.

An sich gibt es zu den Fronius-Wechselrichter ausgezeichnete Handbücher und Videos, die sich aber eher an den Techniker, Elektriker bzw. an den Installationsbetrieb richten. Ein übersichtliches Handbuch für Anwender habe ich dagegen nicht gefunden. Insofern helfen die folgenden Informationen (Motto: »The Missing Manual«) vielleicht anderen Anwendern bzw. geben zukünftigen Anlagenbesitzern einen kompakten Überblick über die Funktionen.

Sicht auf das Innenleben des Wechselrichters während der Montage

Basics

Ein Wechselrichter ist ein Gerät, das die Gleichspannung der PV-Module in die Wechselspannung des Haushaltsstrom umwandelt. Ein Hybridwechselrichter enthält zusätzlich Funktionen, um eine Batterie (einen Akku) zu laden und zu entladen. Je nachdem, wie viel Strom gerade lokal produziert und benötigt wird, versorgt der Wechselrichter den Haushalt mit Strom, lädt oder entlädt die Batterie und speist überschüssigen Strom in das Netz ein. Optional und gesteuert durch diverse Regeln kann der Wechselrichter auch weitere Verbraucher ansteuern (Wallbox des E-Autos, Heizstab oder Wärmepumpe für das Warmwasser etc.).

Der Wechselrichter steuert die Be- und Entladung des Batteriespeichers und des Elektroautos. (Gleichstrom: blau; Wechselstrom: orange; Steuerung: grün strichliert)

Aus technischer Sicht ist ein Wechselrichter ein Computer (denken Sie etwa an den Raspberry Pi), der die vielen elektronischen Komponenten steuert, über verschiedene Schnittstellen Daten anbietet bzw. liest und der schließlich eine lokale Weboberfläche zur Verfügung stellt. Im Fronius-Wechselrichter läuft Linux, anscheinend auf einer x86_64-CPU (siehe das nmap-Ergebnis am Ende dieses Beitrags).

Meine Anlage besteht aus einigen PV-Modulen (Ost/West-Montage), einem »Fronius Symo GEN24 6.0 Plus« Hybridwechselrichter samt eigenem Smartmeter sowie einer BYD-Batterie (Lithium-Eisen-Phosphat-Akku = LFP-Akku).

Bedienung und Steuerung

Fronius-Wechselrichter werden nach Möglichkeit mit dem Internet verbunden, per WLAN oder vorzugsweise über ein Ethernet-Kabel. In meinem Fall befindet sich der Wechselrichter im Keller, wo ein Netzwerk-Switch das ganze Haus mit Internet versorgt. Der Anschluss per Ethernet-Kabel war also ein Kinderspiel.

Grundsätzlich ist ein Betrieb natürlich auch ohne Internet möglich, allerdings ist dann kein Cloud-Zugriff auf die Produktionsdaten möglich. Ohne Internet steht zudem nur die lokale Weboberfläche zur Verfügung (wahlweise in einem lokalen Netzwerk oder mit einer Ad-Hoc-WLAN-Verbindung zum Wechselrichter, wenn Sie direkt vor Ort sind).

Damit sind wir bei den drei Varianten, über die Sie mit Ihrem Wechselrichter kommunizieren können:

  • per App
  • über die Cloud-Weboberfläche
  • über die lokale Weboberfläche

Die ersten beiden Varianten setzen voraus, dass der Wechselrichter mit dem Internet verbunden ist und dass Sie ein Konto in der Fronius-Cloud einrichten. Dieses Konto ist kostenlos. Wenn Sie allerdings Zugriff auf Daten wollen, die älter als drei Tage sind, müssen Sie für diese »Premium«-Funktion zahlen, aktuell 2 EUR/Monat.

Die dritte Variante steht Ihnen immer kostenlos zur Verfügung, sofern Sie vor Ort sind. Dazu verbinden Sie Ihr Notebook oder Smartphone mit dem lokalen Netzwerk, in dem sich auch der Wechselrichter befindet; alternativ stellen Sie eine WLAN-Verbindung zum Access Point des Fronius Wechselrichters her. Der Access Point ist nur aktiv, wenn der Wechselrichter nicht mit einem lokalen Netzwerk oder WLAN verbunden ist.

Die drei Varianten sind keineswegs gleichwertig: Die App gibt nur einen oberflächlichen Zugang auf die Produktionsdaten, bietet aber keine Einstellmöglichkeiten. Die Cloud-Weboberfläche stellt wesentlich mehr Daten deutlich übersichtlicher dar. Sie können Ihren Wechselrichter registrieren (längere Garantie), Service-Meldungen auszulesen etc.

Wenn es Ihnen um das Tuning geht, also z.B. welche Regeln für das Laden/Entladen der Batterie gelten sollen, dann müssen Sie in die lokale Weboberfläche. Sämtliche Einstellmöglichkeiten befinden sich hier. Dafür fehlt hier der Zugang auf historische Daten. Sie sehen nur, was die Anlage aktuell macht, aber nicht, was für fünf Minuten oder vor fünf Tagen war.

App-Bedienung

Fronius stellt die App Solar.Web für Apple und Android zur Verfügung. Damit Sie die App nutzen können, sind drei Voraussetzungen erforderlich:

  • Ihr Wechselrichter muss Internet-Zugang haben.
  • Er muss mit der Fronius-Cloud verbunden sein.
  • Sie brauchen ein Konto in der Fronius-Cloud, über das Sie sich in der App anmelden.

In der Regel kümmert sich Ihre PV-Firma bzw. Ihr Installateur um die ersten beiden Schritte. Sie richten unter https://www.solarweb.com/ einen Account ein. Ihr Installateur verbindet dann Ihre Anlage mit dem Account. Sie erhalten an Ihre E-Mail-Adresse einen Einladungs-Link, der in die App führt.

Die Bedienung der App ist einfach. Das Dialogblatt Aktuell zeigt die aktuellen Daten an, also PV-Produktion, lokaler Verbrauch, Ladezustand der Batterie und Einspeisung. Die Daten sind live und werden alle fünf bis zehn Sekunden aktualisiert. Besonders spannend ist der aktuelle Verbrauch, weil Sie so das Einschalten eines Lichts, eines Föns oder einer Herdplatte unmittelbar nachvollziehen können. Beachten Sie, dass die Werte nicht (immer) auf das Watt genau stimmen.

Im Dialogblatt Historie sehen Sie Daten aus der Vergangenheit. Der Blick in die letzten drei Tage der Vergangenheit ist kostenlos, mehr historische Daten erfordern ein »Premium«-Cloud-Abo bei Solar.Web. Einerseits ist es ärgerlich, dass diese recht elementare Funktion kostenpflichtig ist. Andererseits werden tatsächlich ziemlich viele Daten gespeichert und in einer sehr übersichtlichen Form zugänglich gemacht. Sie können nicht nur nachvollziehen, wie viel Strom Sie am 21.5.2022 produziert haben, sondern auch den zeitlichen Verlauf, die Ladung des Akkus, die Spannungskurven der PV-Module usw. Im Sinne eines Anlagen-Monitorings sind diese Daten sehr wertvoll und allemal die Kosten von aktuell 2 EUR/Monat wert.

Zu beachten ist, dass die Historie nur alle ein bis zwei Stunden aktualisiert wird. Während das Dialogblatt Aktuell Live-Daten zeigt, enden die Tageskurven für den Stromverbrauch, den Akku-Ladezustand usw. oft ein bis zwei Stunden vor dem aktuellen Zeitpunkt

Das Dialogblatt Historie hat mehrere Darstellungsformen: Den Verlauf über einen Tag, der Rückblick auf die Tage eines Monats, auf die Monate eines Jahrs bzw. auf die Jahre seit Inbetriebnahme der Anlage.

Drei Ansichten der Solar.Web-App. Links die aktuellen Daten, in der Mitte eine grafische Darstellung der Daten des Vortags, rechts ein Monatsüberblick

Wenn Sie in der Fronius-Cloud hinterlegen, wie viel Cent Sie pro kWh Strom zahlen bzw. wie viel Sie beim Einspeisen erhalten, rechnet die App auch gleich aus, wie viel Geld Sie sich mit Ihrer PV-Anlage ersparen (Dialogblatt Erträge).

Außerdem zeigt die App einige Feed-Good-Daten an — wie viel kg CO₂ Sie angeblich eingespart haben (das hängt aber vom Energiemix Ihres Stromversorgungsunternehmen und von der Tages- und Jahreszeit ab, kann also nicht genau ermittelt werden), wie viel Auto- oder Flug-km das sind usw. Entbehrlich!

Recht oft passiert es, dass die App gar keine Daten anzeigt, weil sie gerade keine Verbindung zur Fronius-Cloud herstellen kann, weil die Übertragung der Live-Daten Ihrer Anlage in die Cloud gerade nicht funktioniert oder weil die App gerade hängt. Am häufigsten ist Letzteres der Fall. Oft hilft ein Wechsel zwischen den Dialogblättern oder ein Neustarten der App. Hier gibt es noch Verbesserungsbedarf …

Weboberfläche der Cloud

Anstelle der App können Sie sich auch in jedem Webbrowser in die Cloud-Oberfläche von Solar.Web anmelden. Dazu benötigen Sie die E-Mail-Adresse und das Passwort Ihres Fronius-Cloud-Accounts. Über die Oberfläche können Sie wesentlich mehr Daten als in der App auslesen, unter anderem auch Leistung und Spannung der PV-Stränge. Generell ist die Weboberfläche extrem gut gelungen. Allerdings meldet auch die Weboberfläche manchmal, dass keine aktuellen Daten zur Verfügung stehen. Ein Seiten-Refresh hilft oft, aber nicht immer. Die folgenden Screenshots bilden die wichtigsten Seiten der Weboberfläche ab.

Aktuelle Leistung
Leistung der beiden PV-Stränge (grün = Ost, blau = West) sowie Gesamtleistung an einem schönen Tag (am Nachmittag mit ein paar kurzen Phasen mit Bewölkung)
Produktionsansicht bei Regenwetter. Der Akku schaltet sich um 2:00 aus, weil er leer ist. Tagsüber reicht der PV-Ertrag nur zwischenzeitlich aus, um den Verbrauch abzudecken. Der Akku kann am Nachmittag immerhin auf gut 30% aufgeladen werden, bis 24:00 sinkt seine Ladung aber schon wieder auf rund 10 %.
Produktionssansicht bei Schönwetter. Tagsüber produziert die Anlage viel mehr Strom, als gebraucht wird. Zuerst wird der Eigenbedarf gedeckt (gelb) und der Akku aufgeladen (grün bis ca. 12:00), danach wird der überschüssige Strom eingespeist (grau).
Verbrauchsansicht bei Schönwetter für den gleichen Tag wie beim vorigen Bild. Über die Nacht sinkt die Akku-Ladung auf etwas über 50%. Tagsüber produziert die Anlage viel mehr Strom, als gebraucht wird. Zuerst wird der Akku aufgeladen, danach wird der überschüssige Strom eingespeist (in der Verbrauchsansicht nicht zu sehen). Ab ca. 17:30 versorgt der Akku das Haus.
Der tägliche Verbrauch im September pendelt zwischen 8 und 13 kWh. Der Großteil kann direkt durch die PV-Anlage (gelb) oder durch den Akku (grün) gedeckt werden. Nur am 25. und 26.9. ist der Akku komplett leer, es wird Strom aus dem Netz bezogen.
Die tägliche PV-Produktion erreicht Anfang September noch rund 30 kWh, Ende September sind es nur noch rund 20 kWh. An den meisten Tagen wird 1/3 für den Eigenbedarf und zur Akkuladung verwendet (gelb und grün), der Rest eingespeist. Nur zwischen 23. und 25. September ist das Wetter so schlecht, dass der Ertrag auf 4 bis 7 kWh sinkt. Dieser Strom wird vollständig für den Eigenbedarf verwendet. Für 29. und 30.9. prognostiziert die Fronius-Cloud einen Ertrag von gut 20 kWh (Premium-Funktion/Spielerei). Die Prognose ist immer etwas zu hoch, weil die Berechnung die Ost-Lage unseres Hauses nicht berücksichtigt. Die letzten 1 1/2 h vor Sonnenuntergang liegen alle PV-Module im Schatten.
In der Weboberfläche können auch die Service-Meldungen ausgelesen werden. Die meisten Meldungen stammen vom Tag der Inbetriebnahme, an dem auch die Notstromfunktion getestet wurde.
Einstellung der Anlagendaten. Die Parameter der beiden PV-Modulfelder sind für die Prognosefunktion erforderlich.

Lokale Weboberfläche

Ziemlich sperrig ist der Einstieg in die dritte Fronius-Oberfläche, die nur im lokalen Netzwerk zur Verfügung steht. Zuerst einmal müssen Sie herausfinden, welche IP-Adresse der Wechselrichter im lokalen Netzwerk überhaupt hat. Dazu verwenden Sie am besten die Oberfläche Ihres Routers (in meinem Fall eine FritzBox). Ein Klick auf den Fronius-Eintrag führt in die wenig einladende Startseite der Wechselrichter-Weboberfläche.

Die Router-Oberfläche führt zum Wechselrichter
Die Startseite der Weboberfläche des Wechselrichters ist eher abweisend.

Die drei roten Buttons sind nur für die Inbetriebnahme der Anlage relevant. Ihre PV-Firma bzw. Ihr Installateur hat das höchstwahrscheinlich alles schon erledigt. Um in die eigentliche Oberfläche zu gelangen, müssen Sie sich zuerst rechts oben als Customer anmelden. Es gibt zwei Accounts, Technician und Customer. Ihre PV-Firma hat beide Passwörter eingestellt und hoffentlich an Sie weitergegeben. Zumindest das Customer-Passwort brauchen Sie unbedingt. Das Technician-Passwort ist nur für ganz wenige Spezialeinstellungen notwendig.

Nach dem Customer-Login klicken Sie auf den unscheinbaren Button Abschließen bzw. Finish. Damit gelangen Sie in das Dashboard der Weboberfläche. Die Ansicht Allgemein sieht so ähnlich aus wie die Startseite der Cloud-Oberfläche. Interessanterweise weichen die lokalen Leistungsangaben immer um ein paar Watt gegenüber den Angaben in der Cloud ab. Welche stimmen? Ich weiß es nicht. Das Dialogblatt Erweitert zeigt weitere Leistungsdaten des Wechselrichters im Textmodus und ohne grafische Spielereien an.

Das Dashboard der lokalen Weboberfläche
Die aktuellen Leistungsdaten des Wechselrichters

Wo sind nun die Einstellungen? Dorthin gelangen Sie über den Menü-Button, der — leicht zu übersehen — am linken Rand angezeigt wird. Dort finden sich erstaunlich viele Einstellmöglichkeiten. Beispielsweise habe ich über Energiemanagement / Batteriemanagement festgelegt, dass der Akku zwischen 8:00 und 13:00 mit max. 2 kW geladen wird. Meine Anlage liefert bei idealem Wetter deutlich mehr Leistung, aber das etwas gemächlichere Laden schont (vermutlich) den Akku. Sollte der Akku bis 13:00 noch nicht voll sein, wird er so schnell wie möglich fertiggeladen.

Das Menü ist am linken Bildschirmrand versteckt.
Limitierung der Ladeleistung zwischen 8:00 und 13:00 auf 2 kW

Über Energiemanagement / Lastmanagement können Regel festgelegt werden, wann welcher Verbraucher bevorzugt mit Energie beliefert werden (Batterie, Ohmpilot, Warmwasser etc.). Über System / Event-Log können die Systemmeldungen ausgelesen werden.

Einige Funktionen, unter anderem Gerätekonfiguration / Komponenten und Gerätekonfiguration / Funktionen und I/Os sind mit dem Customer-Login nicht zugänglich. Veränderungen können Sie nur durchführen, wenn Sie das Technician-Passwort kennen. Dazu sollten Ihnen aber klar sein, was Sie tun!

Unter den Komponenten wird unter anderem der Akku aufgeführt. Dort können Sie den Lade-Modus einstellen und ein minimales Entladelimit sowie ein maximales Ladelimit einstellen.
Im Dialogblatt Funktionen und I/Os ist festgelegt, welche Steuerungs-Pins welche Funktion haben. Die dargestellte Konfiguration gilt für eine Konfiguration mit Akku samt Notstromfunktion.

Eine lange Diskussion zur optimalen Einstellung der Akku-Parameter finden Sie im PV-Forum. Ich habe mangels besseren Wissens vorerst die Defaultwerte bzw. die vom Installationsbetrieb vorgegebenen Werte belassen.

Beachten Sie in der letzten Abbildung den Punkt »Reservekapazität«! Der dort eingestellte Wert gibt an, wie weit der Akku im normalen Betrieb maximal entladen wird. Dieser Wert hat Vorrang gegenüber dem SoC-Limit bei den Batterieeinstellungen. Die verbleibenden 7 Prozent würden dann einen (sehr) kurzen Notstrombetrieb ermöglichen.

Quellen/Links

Technische Daten, Handbuch und Video-Tutorials

Fronius Cloud

Diskussionen über Fronius-Wechselrichter im PV-Forum:

Fronius hat — sehr korrekt! — in schier endlos langen Dateien die im Wechselrichter verwendete Open-Source-Produkte samt Lizenzen aufgelistet:

Anhang: nmap-Ergebnis

Mit nmap habe ich mir die offenen Ports meines Fronius-Wechselrichters im lokalen Netzwerk angesehen.

sudo nmap -sV -O <ipadresse-des-wechselrichters>

Starting Nmap 7.94 ( https://nmap.org ) at 2023-09-29 08:26 CEST
Nmap scan report for Fronius-nnnnn.fritz.box (nnn.nnn.nnn.nnn)
Host is up (0.0030s latency).
Not shown: 993 filtered tcp ports (no-response)

PORT      STATE   SERVICE        VERSION
22/tcp    closed  ssh
80/tcp    open    http           webserver
4000/tcp  closed  remoteanything
4001/tcp  closed  newoak
4002/tcp  closed  mlchat-proxy
5000/tcp  open    upnp?
5001/tcp  closed  commplex-link

2 services unrecognized despite returning data ...

SF-Port80-TCP:V=7.94%I=7%D=9/29%Time=65166E1E%P=x86_64-pc-linux-gnu%r(GetR
SF:equest,16A0,"HTTP/1\.0\x20200\x20OK\r\nContent-Type:\x20text/html...

SF-Port5000-TCP:V=7.94%I=7%D=9/29%Time=65166E23%P=x86_64-pc-linux-gnu%r(Ge
SF:tRequest,194,"HTTP/1\.0\x20404\x20Not\x20Found ...

Aggressive OS guesses: Linux 5.0 - 5.5 (93%), Linux 2.6.32 - 3.13 (93%), Linux 2.6.39 (93%), Linux 5.0 - 5.4 (93%), Linux 2.6.22 - 2.6.36 (91%), Linux 2.6.32 - 2.6.39 (91%), Linux 2.6.37 (91%), Linux 3.10 - 4.11 (91%), Linux 5.0 (91%), Linux 2.6.32 (90%)

No exact OS matches for host (test conditions non-ideal).

📚 Docker, 4. Auflage erschienen

30. September 2023 um 15:05

Soeben ist die 4. Auflage des Docker-Buchs von Bernd Öggl und mir erschienen.

Umfang: 510 Seiten
ISBN: 978-3-8362-9646-5
Preis: Euro 39,90 (in D inkl. MWSt.)

Für diese Auflage haben wir das Buch vollständig aktualisiert und das Installationskapitel mit seinen unzähligen Varianten übersichtlicher strukturiert. Wichtige inhaltliche Neuerungen sind:

  • mehr Podman-Beispiele und -Details
  • Docker und Podman Desktop: neue GUIs zur Container-Administration
  • Multi-Architecture-Builds: Images für Intel- und ARM-CPUs
  • Caddy: Nutzung des HTTPS-only-Webservers als Container
  • Go: kleines REST-Beispiel

Alle weitere Informationen zum Buch finden Sie hier.

❌
❌