Lese-Ansicht

Fedora Asahi Remix installieren

Der »Fedora Asahi Remix« ist eine für moderne Macs (Apple Silicon) optimierte Version von Fedora 39. Ich habe mich mit Asahi Linux ja schon vor rund zwei Jahren beschäftigt. Seither hat sich viel getan. Zeit also für einen neuen Versuch! Dieser Beitrag beschreibt die Installation des Fedora Asahi Remix auf einem Mac Mini mit M1-CPU. In einem zweiten Artikel fasse ich die Konfiguration und meine praktischen Erfahrungen zusammen.

Installationsstart

Die Projektseite von Asahi Linux empfiehlt, die Installation von Asahi Linux in einem Terminal wie folgt zu starten:

curl https://alx.sh | sh

Ich habe bei solchen Dingen immer etwas Bauchweh, zumal das Script sofort nach dem sudo-Passwort fragt. Was, wenn irgendjemand alx.sh gekapert hat und mir ein Script unterjubelt, das einen Trojaner installiert? Daher:

curl https://alx.sh -o alx.sh
less alx.sh
sh alx.sh 

Die Kontrolle hilft auch nur bedingt. Das Script ist nur wenige Zeilen lang und lädt alle erdenklichen weiteren Tools herunter. Aber der Code sieht zumindest so aus, als würde er tatsächlich Asahi Linux installieren, keine Malware. Eine echte Garantie, dass das alles gefahrlos ist, gibt auch less nicht. Nun gut …

Zuerst aufräumen

Auf meinem Mac fristet eine uralte Asahi-Installation schon seit Jahren ein Schattendasein. Ich wollte das neue Asahi Linux einfach darüber installieren — aber das Installationsprogramm bietet dazu keine Möglichkeit. Die richtige Vorgehensweise sieht so aus: Zuerst müssen die drei damals eingerichteten Partitionen gelöscht werden. Dann kann das Installationsprogramm den partitionsfreien Platz auf der SSD für eine Neuinstallation nutzen.

Dankenswerterweise hat Asahi-Chefentwickler Hector Martin auf einer eigenen Seite eine Menge Know-how zur macOS-Partitionierung zusammengefasst. Dort gibt es auch gleich ein Script, mit dem alte Asahi-Linux-Installationen entfernt werden können. Gesagt, getan!

curl -L https://github.com/AsahiLinux/asahi-installer/raw/main/tools/wipe-linux.sh -o wipe-linux.sh
less wipe-linux.sh
sh wipe-linux.sh

THIS SCRIPT IS DANGEROUS!
DO NOT BLINDLY RUN IT IF SOMEONE JUST SENT YOU HERE.
IT WILL INDISCRIMINATELY WIPE A BUNCH OF PARTITIONS
THAT MAY OR MAY NOT BE THE ONES YOU WANT TO WIPE.

You are much better off reading and understanding this guide:
https://github.com/AsahiLinux/docs/wiki/Partitioning-cheatsheet

Press enter twice if you really want to continue.
Press Control-C to exit.

Started APFS operation on disk1
Deleting APFS Container with all of its APFS Volumes
Unmounting Volumes
Unmounting Volume "Asahi Linux - Data" on disk1s1
Unmounting Volume "Asahi Linux" on disk1s2
Unmounting Volume "Preboot" on disk1s3
Unmounting Volume "Recovery" on disk1s4
Unmounting Volume "Update" on disk1s5
...

Bei meinem Test hat das Script exakt getan, was es soll. Ein kurzer Test mit diskutil zeigt, dass sich zwischen Partition 2 und 3 eine Lücke von rund 200 GiB befindet. Dort war vorher Asahi Linux, und dorthin soll das neue Asahi Linux wieder installiert werden.

Zurück an den Start

Nach diesen Vorbereitungsarbeiten (natürlich habe ich vorher auch ein Backup aller wichtiger Daten erstellt, eh klar …) habe ich den zweiten Versuch gestartet.

sh alx.sh 

Bootstrapping installer:
  Checking version...
  Version: v0.7.1
  Downloading...
  Extracting...
  Initializing...

The installer needs to run as root.
Please enter your sudo password if prompted.
Password:*******

Welcome to the Asahi Linux installer!

This installer will guide you through the process of setting up
Asahi Linux on your Mac.

Please make sure you are familiar with our documentation at:
  https://alx.sh/w

Press enter to continue.

Collecting system information...
  Product name: Mac mini (M1, 2020)
  SoC: Apple M1
  Device class: j274ap
  Product type: Macmini9,1
  Board ID: 0x22
  Chip ID: 0x8103
  System firmware: iBoot-10151.81.1
  Boot UUID: 284E...
  Boot VGID: 284E...
  Default boot VGID: 284E...
  Boot mode: macOS
  OS version: 14.3 (23D56)
  OS restore version: 23.4.56.0.0,0
  Main firmware version: 14.3 (23D56)
  No Fallback System Firmware / rOS
  SFR version: 23.4.56.0.0,0
  SystemRecovery version: 22.7.74.0.0,0 (13.5 22G74)
  Login user: kofler

Collecting partition information...
  System disk: disk0

Collecting OS information...

Nach der Darstellung einiger Infos ermittelt das Script eine Partitionstabelle und bietet dann an, Asahi Linux im freien Bereich der Disk zu installieren (Option f).

Partitions in system disk (disk0):
  1: APFS [Macintosh HD] (795.73 GB, 6 volumes)
    OS: [B*] [Macintosh HD] macOS v14.3 [disk3s1s1, 284E...]
  2: (free space: 198.93 GB)
  3: APFS (System Recovery) (5.37 GB, 2 volumes)
    OS: [  ] recoveryOS v14.3 [Primary recoveryOS]

  [B ] = Booted OS, [R ] = Booted recovery, [? ] = Unknown
  [ *] = Default boot volume

Using OS 'Macintosh HD' (disk3s1s1) for machine authentication.

Choose what to do:
  f: Install an OS into free space
  r: Resize an existing partition to make space for a new OS
  q: Quit without doing anything

» Action (f): f

Im nächsten Schritt haben Sie die Wahl zwischen verschiedenen Fedora-Varianten. Ich habe mich für Gnome entschieden:

Choose an OS to install:
  1: Fedora Asahi Remix 39 with KDE Plasma
  2: Fedora Asahi Remix 39 with GNOME
  3: Fedora Asahi Remix 39 Server
  4: Fedora Asahi Remix 39 Minimal
  5: UEFI environment only (m1n1 + U-Boot + ESP)

» OS: 2

Jetzt beginnt die eigentliche Installation. Leider haben Sie keine Möglichkeit, auf die Partitionierung oder Verschlüsselung Einfluss zu nehmen. Es werden zwei kleine Partitionen für /boot (500 MiB) und /boot/efi eingerichtet (1 GiB). Den restlichen Platz füllt ein btrfs-Dateisystem ohne Verschlüsselung. Immerhin können Sie bei Bedarf festlegen, dass nicht der gesamte partitionsfreie Platz von Fedora Asahi Linux genutzt wird.

Downloading OS package info...
- 

Minimum required space for this OS: 14.94 GB

Available free space: 198.93 GB

How much space should be allocated to the new OS?
  You can enter a size such as '1GB', a fraction such as '50%',
  the word 'min' for the smallest allowable size, or
  the word 'max' to use all available space.

» New OS size (max): max

The new OS will be allocated 198.93 GB of space,
leaving 167.94 KB of free space.

Enter a name for your OS
» OS name (Fedora Linux with GNOME):  <return>

Using macOS 13.5 for OS firmware
Downloading macOS OS package info...
Creating new stub macOS named Fedora Linux with GNOME
Installing stub macOS into disk0s5 (Fedora Linux with GNOME)
Preparing target volumes...
Checking volumes...
Beginning stub OS install...
Setting up System volume...
Setting up Data volume...
Setting up Preboot volume...
Setting up Recovery volume...
Wrapping up...

Stub OS installation complete.

Adding partition EFI (524.29 MB)...
  Formatting as FAT...
Adding partition Boot (1.07 GB)...
Adding partition Root (194.83 GB)...
Collecting firmware...
Installing OS...
  Copying from esp into disk0s4 partition...
  Copying firmware into disk0s4 partition...
  Extracting boot.img into disk0s7 partition...
  Extracting root.img into disk0s6 partition...
Downloading extra files...
  Downloading gstreamer1-plugin-openh264-1.22.1-1.fc39.aarch64.rpm (1/3)...
  Downloading mozilla-openh264-2.3.1-2.fc39.aarch64.rpm (2/3)...
  Downloading openh264-2.3.1-2.fc39.aarch64.rpm (3/3)...
Preparing to finish installation...
Collecting installer data... 

To continue the installation, you will need to enter your macOS
admin credentials.

Password for kofler: **********

Setting the new OS as the default boot volume...
Installation successful!
Install information:
  APFS VGID: 0E76...
  EFI PARTUUID: 8d47...

Help us improve Asahi Linux!
We'd love to know how many people are installing Asahi and on what
kind of hardware. Would you mind sending a one-time installation
report to us?

This will only report what kind of machine you have, the OS you're
installing, basic version info, and the rough install size.
No personally identifiable information (such as serial numbers,
specific partition sizes, etc.) is included. You can view the
exact data that will be sent.

Report your install?
  y: Yes
  n: No
  d: View the data that will be sent

» Choice (y/n/d): y

Your install has been counted. Thank you! ❤

Zuletzt zeigt das Installations-Script genaue Anweisungen für den ersten Start von Asahi Linux an:

To be able to boot your new OS, you will need to complete one more step.
Please read the following instructions carefully. Failure to do so
will leave your new installation in an unbootable state.

Press enter to continue.

When the system shuts down, follow these steps:

1. Wait 25 seconds for the system to fully shut down.
2. Press and hold down the power button to power on the system.
   * It is important that the system be fully powered off before this step,
     and that you press and hold down the button once, not multiple times.
     This is required to put the machine into the right mode.
3. Release it once you see 'Loading startup options...' or a spinner.
4. Wait for the volume list to appear.
5. Choose 'Fedora Linux with GNOME'.
6. You will briefly see a 'macOS Recovery' dialog.
   * If you are asked to 'Select a volume to recover',
     then choose your normal macOS volume and click Next.
     You may need to authenticate yourself with your macOS credentials.
7. Once the 'Asahi Linux installer' screen appears, follow the prompts.

If you end up in a bootloop or get a message telling you that macOS needs to
be reinstalled, that means you didn't follow the steps above properly.
Fully shut down your system without doing anything, and try again.
If in trouble, hold down the power button to boot, select macOS, run
this installer again, and choose the 'p' option to retry the process.

Press enter to shut down the system.

Ich habe den Installationsprozess auch in Screenshots dokumentiert:

Asahi-Linux, Teil 1

Asahi-Installation, Teil 2

Reboot

Das Script fährt nun macOS herunter. Zum Neustart drücken Sie die Power-Taste und halten diese ca. 15 Sekunden lang gedrückt, bis ein Auswahlmenü erscheint. Dort wählen Sie Asahi Linux. Dieses wird allerdings nicht gleich gestartet, vielmehr muss nun die Bootkonfiguration fertiggestellt werden. Ich habe die folgenden Schritte mit Fotos dokumentiert.

Fedora Linux auswählen
Bootloader Installation
Bootloader-Installation (Forts.)
Bootloader-Installation (Forts.)
Bootloader-Installation (Forts.)
Bootloader-Installation (Forts.)
Meldungen beim ersten »echten« Linux-Bootprozess. »Failed to load« klingt schlimm, aber unmittelbar danach geht es zum Glück weiter.
Geschafft! Jetzt muss nur noch die Fedora-Installation abgeschlossen werden.

Fedora-Installation abschließen

Fedora Linux läuft zum ersten Mal. Nun müssen Sie einige grundlegende Konfigurationsschritte erledigen (User-Name + Passwort, WLAN, Sprache, Tastaturlayout, Update).

Wechseln zwischen macOS und Fedora

Der Bootprozess ist jetzt so eingerichtet, dass bei jedem Neustart automatisch Fedora gestartet wird. Wenn Sie macOS verwenden möchten, müssen Sie den Rechner zuerst komplett herunterfahren. Dann drücken Sie wieder die Power-Taste, halten Sie ca. 15 Sekunden gedrückt, bis das OS-Menü erscheint, und wählen macOS.

Unter macOS können Sie das Default-OS voreinstellen. Es ist aber leider nicht möglich, den Mac so zu konfigurieren, dass bei jedem Bootprozess automatisch das Auswahlmenü erscheint. Sie müssen sich für eine Hauptvariante entscheiden. Jeder Bootprozess in ein anderes OS bleibt mühsam (Power-Taste 15 Sekunden drücken …).

Default-OS einstellen

Geekbench

Wie schnell ist Linux im Vergleich zu macOS? Ich habe auf meinem Mac Mini M1 Geekbench 6 jeweils unter macOS und unter Fedora Asahi ausgeführt. Das Ergebnis: im Rahmen der Messgenauigkeit etwa gleich schnell.

               Single     Multi Core
---------- ----------   ------------
macOS            2360           8050
Fedora           2357           7998

Quellen/Links

  •  

Mozilla veröffentlicht Firefox 122 für Android

Mozilla hat Firefox 122 für Android veröffentlicht. Dieser Artikel beschreibt die Neuerungen von Firefox 122 für Android.

Download Firefox für Android im Google Play Store

Firefox als Standard-Betrachter für PDF-Dateien

Es ist nun möglich, Firefox als Standard-App für das Betrachten von PDF-Dateien zu konfigurieren.

Unterstützung für Global Privacy Control (GPC)

In den Einstellungen zum Schutz vor Aktivitätenverfolgung befindet sich eine neue Option, um Websites mitzuteilen, dass die eigenen Daten weder verkauft noch weitergegeben werden sollen. Dabei handelt es sich um die sogenannte Global Privacy Control (GPC), an welche sich zumindest Unternehmen in Teilen der USA bereits gesetzlich halten müssen. Die Einstellung gilt ausschließlich für nicht private Tabs. In privaten Tabs ist GPC immer aktiviert.

Über 710 Erweiterungen stehen zur Verfügung

Hierbei handelt es sich um keine Neuerung von Firefox 122. Erwähnt sei aber, dass die Anzahl der zur Verfügung stehenden Erweiterungen weiter stark gestiegen ist. Zur Erinnerung: Seit Firefox 120 gibt es ein offenes Erweiterungssystem in Firefox für Android. Standen mit Veröffentlichung von Firefox 121 noch knapp über 530 Erweiterungen zur Verfügung, sind es jetzt sogar schon mehr als 710 Erweiterungen.

Lokale Installation von Erweiterungen

Und wem das noch nicht genug ist: Firefox 122 unterstützt jetzt auch die Installation von Erweiterungen, welche man sich vom lokalen Dateisystem aus installieren kann. Dazu muss im Bildschirm Einstellungen → Über Firefox fünfmal auf das Firefox-Logo geklickt werden. Anschließend stehen in den Einstellungen weitere Bildschirme zur Verfügung. Einer davon heißt „Add-on aus Datei installieren“.

Aufgrund von Einschränkungen in älteren Versionen von Android steht diese Funktion nur in Android 10 und höher zur Verfügung.

Sonstige Neuerungen von Firefox 122 für Android

In der Verwaltung der Erweiterungen wurde die Möglichkeit integriert, ein Add-on an Mozilla zu melden.

Beim Cookie-Banner-Blocker wurde die Unterstützung für sogenannte Consent Management Provider (CMPs) aktiviert. Während bisher ausschließlich individuelle Domain-Regeln aktiviert waren, werden damit nun auch erste gängige, wenn auch längst noch nicht alle Lösungen unterstützt, wie sie von vielen Websites genutzt werden.

Der Schutz vor Aktivitätenverfolgung wurde um das Blockieren von E-Mail-Trackern in privaten Tabs erweitert.

Die auf anderen Plattformen bereits länger aktivierte Audio-Sandbox ist jetzt auch auf Android aktiviert.

Dazu kommen wie immer neue Plattform-Features der aktuellen GeckoView-Engine, diverse Fehlerbehebungen, geschlossene Sicherheitslücken sowie Verbesserungen unter der Haube.

Unter anderem wurde die „Pull to Refresh“-Funktion weiter verbessert, die Schaltfläche zum Anpassen des Startbildschirms erscheint jetzt auch auf dem Startbildschirm, wenn alle Elemente außer den Verknüpfungen vom Benutzer deaktiviert worden sind, und das Öffnen oder Schließen sogenannter „Custom Tabs“ führt nicht mehr zum Wiedergabe-Stopp von Medien, welche in einem Hintergrundtab laufen.

Der Beitrag Mozilla veröffentlicht Firefox 122 für Android erschien zuerst auf soeren-hentzschel.at.

  •  

Ubuntu 24.04 LTS wird Linux 6.8 Kernel erhalten

Es sieht ganz danach aus, als würde Canonical dem bald erscheinenden Ubuntu 24.04 LTS Noble Numbat den Linux-Kernel 6.8 spendieren. Die Entscheidung kommt etwas überraschend, da viele mit Kernel 6.6 LTS gerechnet haben. Linux-Kernel 6.8 soll erst im März als stabile Version erscheinen und daher ist die Sache eher knapp. Ubuntu 24.04 LTS erscheint laut Zeitplan Ende April. Im Ubuntu Discourse findest Du alle Details zu Linux-Kernel 6.8 in Ubuntu 24.04 LTS. Es gibt übrigens auch ein PPA für Version […]

Der Beitrag Ubuntu 24.04 LTS wird Linux 6.8 Kernel erhalten ist von bitblokes.de.

  •  

Raspberry Pi OS Buster -> Bullseye

Heute möchte ich noch einmal ein Thema aus der Mottenkiste holen, welches ja eigentlich schon abgehakt sein sollte. Es geht um das Upgrade von Raspbian 10 auf das Raspberry Pi OS 11.

Anlass des Ganzen ist unsere Community-Cloud mit über 25 Nutzern. Diese Cloud wurde vor über fünfeinhalb Jahren zum Zwecke des Datenteilens ins Leben gerufen. Durch einen bedingten öfteren Standortwechsel verblieb das System auf einem Softwarestand von vor über zwei Jahren. Jetzt im neuen Zuhause stand dadurch ein gründlicher Tapetenwechsel an. D.h., dass im ersten Schritt das Betriebssystem auf Raspberry Pi OS 11 Bullsleye angehoben werden musste, bevor die Nextcloud von Version 22 auf 27 aktualisiert wurde. Weiterhin musste parallel PHP 7.3 auf Version 8.1 gezogen werden, um wieder in sicheres Fahrwasser zu gelangen. Bei der Hardware handelt es sich um einen Raspberry Pi 3 Model B. Auch dieses Gerät soll im laufe des Jahres noch ein Refresh erhalten.

Nun zum Upgrade auf das erwähnte Raspberry Pi OS 11.

Installation

Hilfreich bei der Installation war die Anleitung von linuxnews.de, die ich abschließend noch um zwei Punkte ergänzen musste. Hierbei konnte ich mich noch an mein erstes Upgrade dieser Art erinnern, dass es zu Unverträglichkeiten mit dem Desktop kam. Dieses Problem wird ganz am Ende des Artikels behandelt.

Zuerst wurde ein vollständiges Upgrade auf die aktuellste Version Raspbian 10 durchgeführt.

sudo apt update
sudo apt full-upgrade
sudo rpi-update

Danach wurden die Quellen auf Bullseye angepasst.

sudo sed -i 's/buster/bullseye/g' /etc/apt/sources.list
sudo sed -i 's/buster/bullseye/g' /etc/apt/sources.list.d/raspi.list

Im Anschluss folgte ein Update der Quellen und die erforderliche Installation von gcc-8.

sudo apt update && sudo apt install libgcc-8-dev gcc-8-base
sudo apt full-upgrade 
sudo apt -f install

Danach wurden unnötige Pakete und verbliebene heruntergeladene Pakete entfernt.

sudo apt autoremove
sudo apt clean

Nun mussten noch die Kernelbased Mode-Setting (KMS) in der /boot/config.txt angepasst werden. Hierzu wurden folgende zwei Befehle ausgeführt:

sudo sed -i 's/dtoverlay=vc4-fkms-v3d/#dtoverlay=vc4-fkms-v3d/g' /boot/config.txt
sudo sed -i 's/\[all\]/\[all\]\ndtoverlay=vc4-kms-v3d/' /boot/config.txt

Desktop aufräumen

Nach dem Reboot mit angeschlossenem Monitor fiel auf, dass sich das Programm Parcellite in der Menüleiste verewigt hatte. Parcellite war vor dem Systemupgrade auf Raspberry Pi OS 11 Bullseye nicht an Bord. Aus diesem Grund konnte es auch ohne Bedenken gelöscht werden.

sudo apt remove parcellite

Weiterhin fiel auf, dass die ganze Menüleiste des Desktops etwas vermurkst aussah. Diese wurde auf die Grundeinstellungen mit

cd ~/
sudo rm -rf .cache

zurückgesetzt.

Nach einem erneuten Reboot läuft Raspberry Pi OS 11 wie gewünscht.

sudo reboot
Nextcloud 27 - Raspberry Pi Modell B Rev 1.2
Nextcloud 27 – Raspberry Pi Modell B Rev 1.2
Nextcloud 27 - PHP 8.1
Nextcloud 27 – PHP 8.1

Fazit

Um unsere Community-Cloud wieder sicher zu machen, war ein wenig Wochenendarbeit nötig. Die so investierte Zeit hat sich aber durchaus gelohnt. Im nächsten Schritt erfolgt dann der Tausch des Raspberry Pi und ein Wechsel der Daten-SSD gegen ein größeres Modell.

  •  

Canonical: Neues Werbeformat für Ubuntu Pro

Das Unternehmen Canonical ist der Herausgeber der beliebten Linux Distribution Ubuntu. Während alle sechs Monate eine Ubuntu Ausgabe erscheint, kommt jede vierte Ausgabe als LTS Ausgabe. Das bedeutet Long Term Support und steht für Langzeitpflege. Eine Ubuntu LTS Version erhält 5 Jahre LTS Support. Demnach erhält die derzeit aktuelle Ubuntu 22.04 LTS Version von Canonical...

Der Beitrag Canonical: Neues Werbeformat für Ubuntu Pro erschien zuerst auf MichlFranken.

  •  

MQTT-Broker Mosquitto als Docker Container installieren

Ein MQTT-Broker ist die Schnittstelle zwischen vielen IoT-Sensoren und Geräten, die Sensordaten auswerten oder Aktoren steuern. Das MQTT-Protokoll ist offen und sehr weit verbreitet. Es findet in der Industrie Anwendungen, ist aber auch in Smart Homes ist MQTT weit verbreitet.
MQTT ist ein sehr schlankes und schnelles Protokoll. Es wird in Anwendungen mit niedriger Bandbreite gerne angewendet.

MQTT funktioniert, grob gesagt, folgendermaßen: IoT-Geräte können Nachrichten versenden, die von anderen IoT-Geräten empfangen werden. Die Vermittlungsstelle ist ein sogenannter MQTT-Broker. Dieser empfängt die Nachrichten von den Clients. Gleichzeitig können diese Nachrichten von anderen Clients abonniert werden. Die Nachrichten werden in sog. Topics eingestuft, die hierarchisch angeordnet sind, z.B. Wohnzimmer/Klima/Luftfeuchtigkeit.

Home Assistant, oder ein anderer Client, kann diesen Topic abonnieren und den Nachrichteninhalt („Payload„) auswerten (z.B. 65%).

Home Assistant OS vs. Home Assistant Container

In Home Assistant OS und Supervisor gibt es ein Addon, das einen MQTT-Broker installiert. Das ist sehr einfach, komfortabel und funktioniert wohl recht zurverlässig. In den Installationsarten Home Assistant Container und Core gibt es diese Möglichkeit nicht. Hier muss man manuell einen MQTT-Broker aufsetzen.

In diesem Artikel beschäftige ich mich damit, wie man den MQTT-Brocker Mosquitto über Docker installiert. Anschließend zeige ich, wie man die Konfigurationsdatei gestaltet und eine Verbindung zu Home Assistant herstellt. Das Ergebnis ist dann ungefähr so, als hätte man das Addon installiert. Los gehts!

Schritt für Schritt: MQTT-Broker Mosquitto mit Docker installieren

Als MQTT-Broker verwende ich die weit verbreitete Software Mosquitto von Eclipse. Dieser wird auch von Home Assistant bevorzugt und ist derjenige Broker, den das Addon installieren würde.
Für diese Anleitung wird vorausgesetzt, dass Docker bereits installiert ist und eine SSH-Verbindung zum Server hergestellt werden kann.

Schritt 1: Zunächst erstellen wir ein paar Ordner, die wir später benötigen. Mosquitto wird später so konfiguriert, dass in diese Ordner alle wichtigen Dateien abgelegt werden. Dadurch kann man auf dem Filesystem des Servers Mosquitto konfigurieren und beobachten.

$ mkdir mosquitto
$ mkdir mosquitto/config 
$ mkdir mosquitto/data 
$ mkdir mosquitto/log

Schritt 2: Nun wird die Konfigurationsdatei für Mosquitto erstellt. Über diese Datei kann man das Verhalten von Mosquitto steuern.

$ nano config/mosquitto.conf
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
log_dest stdout
password_file /mosquitto/config/mosquitto.passwd
allow_anonymous false
listener 1883

Schritt 3: Mit dem folgenden Befehl lädt man sich das aktuelle Image von Eclipse Mosquitto auf den Server.

$ docker pull eclipse-mosquitto

Schritt 4: Mit dem folgenden Befehl wird der Docker-Container gestartet. Das ist der Schlüsselmoment, jetzt muss alles klappen.

$ docker run -it -p 1883:1883 -p 9001:9001 --name mosquitto -v /home/pi/mosquitto/config:/mosquitto/config -v /home/pi/mosquitto/data:/mosquitto/data -v /home/pi/mosquitto/log:/mosquitto/log eclipse-mosquitt

Die Flags bedeuten hierbei folgendes:

  • -p 1883:1883 Der genannte Port ist die Standardeinstellung für MQTT. Alles was auf diesen Port am Server ankommt, wird in den Mosquitto-Container geleitet.
  • -p 9001:9001 Über diesen Port laufen die Websocket-Anwendungen. Falls das nicht benötigt wird, kann man das weg lassen
  • name mosquitto Über diesen kurzen Namen können wir den Docker-Container steuern
  • -v <filesystem-Pfad>:<Container-Pfad> Die in Schritt 1 erstellten Ordner werden in den Container eingebunden

Wer lieber Docker Compose verwendet, trägt diesen Eintrag in seine *.yaml ein:

services:
    eclipse-mosquitto:
        stdin_open: true
        tty: true
        ports:
            - 1883:1883
            - 9001:9001
        restart: unless-stopped
        container_name: mosquitto
        volumes:
            - /home/pi/mosquitto/config:/mosquitto/config
            - /home/pi/mosquitto/data:/mosquitto/data
            - /home/pi/mosquitto/log:/mosquitto/log
        image: eclipse-mosquitto

Schritt 5: Checken, ob der Container ordnungsgemäß läuft. In der folgenden Liste sollte eine Zeile mit dem Mosquitto-Docker auftauchen. Dieser sollte außerdem „up“ sein. Falls nicht, nochmal versuchen den Container zu starten und kontrollieren, ob er läuft.

$ docker container ls -a
CONTAINER ID   IMAGE          COMMAND   CREATED        STATUS        PORTS    NAMES
xxxxxxxxx   eclipse-mosquitto "/init"   3 minutes ago   Up 2 minutes  [...]   mosquitto

Schritt 6: Sehr gut, der Container läuft. Es wird dringend empfohlen, den MQTT-Broker so abzusichern, dass nur angemeldete User darauf zugreifen können. Das ist ja schon in Schritt 2 in die Konfigurationsdatei geschrieben worden. Mit dem folgenden Befehl melden wir uns in der Shell innerhalb des Containers an und erstellen einen Benutzer. In diesem Beispiel mosquitto. Im Anschluss an diesen Befehl wird man zweimal gebeten, das Passwort für den User festzulegen. Ist das geschafft, läuft der MQTT-Broker auf dem Server. Herzlichen Glückwunsch!

$ docker exec -it sh // öffnet die Shell innerhalb des Dockers
mosquitto_passwd -c /mosquitto/config/mosquitto.passwd mosquitto

Optional Schritt 7: Den MQTT-Broker bindet man in Home Assistant ein, indem man auf EinstellungenGeräte und Dienste+ Integration hinzufügen klickt. Im Suchfenster nach „MQTT“ suchen und die Zugangsdaten eingeben.
Die Server-Adresse findet man übrigens am schnellsten über ifconfig heraus.

The post MQTT-Broker Mosquitto als Docker Container installieren first appeared on bejonet - Linux | Smart Home | Technik.

  •  

Linux Desktop wie Windows oder macOS – so passe ich Gnome und Cinnamon an

Viele von euch haben mich oft gefragt, wie ich meine Desktops anpasse, wenn sie meine Anpassungen in den Videos sehen. Aus diesem Grund präsentiere ich heute ein etwas anderes Format, in dem ich euch zeige, wie ich meine Desktops gestalte. Kurze Zusammenfassung der Ausgangslage: Dies ist eine Fortsetzung meines Beitrags von 2020 über die Anpassung...

Der Beitrag Linux Desktop wie Windows oder macOS – so passe ich Gnome und Cinnamon an erschien zuerst auf MichlFranken.

  •  

LibreOffice Getting Started Guide 7.6 ist verfügbar

Der Getting Started Guide von LibreOffice wurde aktualisiert. Ab sofort gibt es Version 7.6. In der neuesten Versionen werden auch Funktionen behandelt, die für LibreOffice 7.6 spezifisch sind. Das Handbuch richtet sich an alle, die einen Schnellstart mit LibreOffice 7.6 benötigen. Im Buch werden Writer (Textverarbeitung), Calc (Tabellenkalkulation), Impress (Präsentationen), Draw (Vektorzeichnungen), Math (Gleichungseditor) und Base (Datenbank) vorgestellt. Du kannst den Leitfaden von der Dokumentations-Website sowie aus dem Bücherregal herunterladen. Du kannst den Getting Started Guide 7.6 als PDF oder […]

Der Beitrag LibreOffice Getting Started Guide 7.6 ist verfügbar ist von bitblokes.de.

  •  

Firefox .deb Paket unter Linux Mint, Ubuntu, Debian … installieren

Ab Mozilla Firefox 122 bietet das Unternehmen nun ein .deb Paket für Linux an. Du kannst den Browser damit unter Ubuntu und Derivaten wie Linux Mint sowie Debian und Derivaten installieren. Mozilla hat eine Anleitung zur Verfügung gestellt, wie Du Firefox als .deb unter Debian, Linux Mint oder Ubuntu und so weiter installieren kannst. Der Vorteil der hier gezeigten Methode ist, dass Du immer die aktuelle Version von Firefox erhältst, sobald sie veröffentlicht wurde. Du musst unter Ubuntu auch nicht […]

Der Beitrag Firefox .deb Paket unter Linux Mint, Ubuntu, Debian … installieren ist von bitblokes.de.

  •  

Floorp: Firefox on Steroids

Selten bleibt eine Anwendung so lange verborgen wie der japanische Firefox-Ableger Floorp. Der auf Firefox ESR basierende Browser bietet guten Datenschutz und viel Einfluss auf Aussehen und Handhabung.

Quelle

  •  

Mozilla veröffentlicht Firefox 122

Mozilla hat Firefox 122 für Windows, Apple macOS und Linux veröffentlicht. Dieser Artikel fasst die wichtigsten Neuerungen zusammen – wie immer auf diesem Blog weit ausführlicher als auf anderen Websites.

Download Mozilla Firefox für Microsoft Windows, Apple macOS und Linux

Bilder und Beschreibungen in Suchvorschlägen

Firefox kann bei Suchvorschlägen in der Adressleiste jetzt Bilder und kurze Beschreibungen anzeigen, sofern die eingestellte Standard-Suchmaschine dies unterstützt und entsprechende Informationen für den eingegebenen Suchbegriff liefert.

Firefox 122: Suchvorschläge in Adressleiste

Im Rahmen der Funktion Firefox Suggest werden außerdem jetzt auch Artikel aus Mozillas Entwicklerdokumentation MDN Web Docs vorgeschlagen, wenn man nach Inhalten sucht, die mit Webentwicklung zu tun haben. Diese Funktion ist derzeit nur in den USA aktiviert.

Erkennung unglaubwürdiger Produktbewertungen auf Amazon

Bei Aufruf einer Produktseite auf amazon.de zeigt Firefox die Glaubwürdigkeit der abgegebenen Nutzer-Bewertungen in Form einer Schulnote nach amerikanischem System („A“ ist die beste, „F“ die schlechteste Note) an. Darunter wird die bereinigte Durchschnitts-Bewertung des jeweiligen Produkts angezeigt, sprich der Durchschnitt aller Bewertungen abzüglich derer, die nach Einschätzung der Künstlichen Intelligenz von Fakespot von Mozilla keine echten Bewertungen sind. Schließlich folgt noch eine Anzeige aktueller Highlights aus den Bewertungen, eingeteilt nach Kategorien wie Qualität und Preis. Dabei werden nur die glaubwürdigen Bewertungen der letzten 80 Tage als Grundlage genommen.

Fakespot-Integration in Firefox 122

Diese Funktion ist standardmäßig noch nicht aktiviert und kann vom Benutzer aktiviert werden. Die Funktion steht ebenso auf der französischen Seite amazon.fr sowie den englischsprachigen Seiten amazon.com, bestbuy.com sowie walmart.com zur Verfügung.

Verbesserungen der Übersetzungsfunktion

Die Funktion zur vollständigen Übersetzung von Websites, welche im Gegensatz zu Google Translate & Co. komplett im Browser arbeitet und nichts an einen Server sendet, hat Qualitätsverbesserungen erhalten. Vor allem Fälle, in denen Inhalte durch die Übersetzung verschwinden, sollten nun viel seltener vorkommen.

Authentifizierung über Passkeys

Sogenannte Passkeys versprechen eine komfortable und zugleich sichere Anmeldung auf Websites und das ganz ohne Passwort. So kann die Authentifizierung zum Beispiel über den Fingerabdrucksensor, das Smartphone oder einen externen Sicherheitsschlüssel erfolgen. Einen guten und detaillierteren Überblick über das Konzept der Passkeys kann man sich hier verschaffen.

Passkey-Unterstützung in Firefox

.deb-Paket für Debian-basierte Linux-Distributionen

Wer eine auf Debian basierende Linux-Distribution wie beispielsweise Debian selbst, Ubuntu oder Linux Mint nutzt, kann Firefox jetzt auch als .deb-Paket installieren. Ein entsprechendes APT-Repository wird von Mozilla bereitgestellt.

Die .deb-Pakete bieten die gleichen Vorteile wie die .tar.bz2-Archive, die man via mozilla.org herunterladen kann und damit im Vergleich zum Firefox aus einer traditionellen Paketverwaltung unter Linux dank Mozillas Compiler-Optimierungen eine bessere Performance und Sicherheit bieten und außerdem Updates, die den Nutzer schneller erreichen.

Mehr Sicherheit für Firefox-Nutzer

Auch in Firefox 122 wurden wieder mehrere Sicherheitslücken geschlossen. Alleine aus Gründen der Sicherheit ist ein Update auf Firefox 122 daher für alle Nutzer dringend empfohlen.

Sonstige Endnutzer-Neuerungen von Firefox 122

In den Einstellungen der Startseite gibt es nicht länger eine Option zum Aktivieren oder Deaktivieren von Kurzinformationen, da Mozilla schon lange keine Hinweise mehr auf der Firefox-Startseite einblendet und es daher egal war, was hier eingestellt war.

Ebenfalls aus den Einstellungen entfernt wurde die Option zum Einblenden der separaten Suchleiste. Diese kann weiterhin über Menü → Weitere Werkzeuge → Symbolleiste anpassen… in die Oberfläche gezogen werden.

Die Anzahl der DNS Resolver Threads wurde deutlich erhöht, was zu schnelleren DNS-Auflösungen führen sollte, wenn viele Anfragen gleichzeitig erfolgen.

Verbesserungen gab es auch beim Ausdrucken von Websites unter bestimmten Voraussetzungen, insbesondere wenn die CSS Flexbox verwendet wird.

Auf Linux wurde die Verwendung der Farben für die Titelleisten und Sidebars verbessert, was das Erscheinungsbild insgesamt etwas moderner wirken lässt.

Verbesserungen der Webplattform

Die Regeln für Zeilenumbrüche von Webinhalten entsprechen jetzt dem Unicode-Standard, was die Webkompatibilität verbessert. Eine weitere Verbesserung für ost- und südostasiatische Endbenutzer ist die korrekte sprachabhängige Wortauswahl beim Doppelklick auf Text für Sprachen wie Chinesisch, Japanisch, Birmanisch, Laotisch, Khmer und Thai.

Websites können nun auch in privaten Fenstern temporär CacheAPI-Daten speichern, womit sich Websites, welche diesen Standard nutzen, in privaten Fenstern nicht mehr anders als in regulären Fenstern verhalten.

Uneven Level Protection Forward Error Correction (ULPFEC) ist jetzt aktiviert und kann von WebRTC-basierten Diensten genutzt werden, um die Videoqualität bei schwacher Internetverbindung zu verbessern.

Das hr-Element ist ab jetzt auch als Kindelement eines select-Elements erlaubt, um Trennlinien innerhalb eines Auswahlfelds darzustellen. Außerdem wird die showPicker()-Methode für <select>-Elemente jetzt unterstützt.

Bei Tabellen, deren Kopfzeile mittels position: sticky positioniert ist, sind gesetzte border nicht länger unsichtbar.

Verschiedene CSS-Eigenschaften und -Funktionen in Zusammenhang mit offset-path werden ab sofort unterstützt.

Bei der Performance-Optimierung hilft die Unterstützung der LargestContentfulPaint-API. Neu ist auch die Unterstützung der Screen Wake Lock-API.

Weitere Neuerungen für Entwickler von Websites lassen sich in den MDN Web Docs nachlesen.

Verbesserungen der Entwicklerwerkzeuge

Mozilla hat die Tastatur-Steuerung des Regeln-Panels im Inspektor-Werkzeug überarbeitet. Details zur geänderten Steuerung und zur Motivation hinter der Änderung liefert Mozilla in seinem Developer Experience-Blog (engl.).

Der Beitrag Mozilla veröffentlicht Firefox 122 erschien zuerst auf soeren-hentzschel.at.

  •  

Valve veröffentlicht Proton 8.0.5 mit HDR-Option

Valve hat Proton 8.0.5 veröffentlicht. Damit kannst Du Windows-Spiele unter Linux installieren und natürlich auch spielen. Damit Du Proton 8.0.5 nutzen kannst, benötigst Du eine GPU, die Vulkan 1.3 unterstützt. In Deiner Bibliothek kannst Du bei den Eigenschaften der Spiele unter Kompatibilität auswählen, welche Proton-Version Du benutzen möchtest. Proton 8 basiert wenige überraschend auf Wine 8. Im Changelog kannst Du nachlesen, dass ab sofort folgen Spiele spielbar sind: Zudem haben die Entwickler HDR-Optionen für Hardware verfügbar gemacht, die kompatibel ist. […]

Der Beitrag Valve veröffentlicht Proton 8.0.5 mit HDR-Option ist von bitblokes.de.

  •  

Calibre 7.4 mit Neuerungen und Fehlerverbesserungen

Ich habe gerade Calibre geöffnet und eine Mitteilung erhalten, dass ab sofort die E-Book-Verewaltung Calibre 7.4 verfügbar ist. Wie üblich gibt es die aktuelle Version für Linux, macOS und Windows. Für Windows ist sogar eine portable Version verfügbar. Neu ist unter anderem die Unterstützung für Supernote A6X2. Schmales Layout: Platziere den Titelbildbrowser über der Buchliste, wenn das Fenster ein schmales Seitenverhältnis hat. Du kannst das über Einstellungen > Erscheinungsbild > Titelbildbrowser konfigurieren. Kategorie-Notizen-Browser: Füge eine Schaltfläche hinzu, um nach Büchern […]

Der Beitrag Calibre 7.4 mit Neuerungen und Fehlerverbesserungen ist von bitblokes.de.

  •  

Tauche ein in die Zukunft: Fedora Silverblue im Test

Fedora Silverblue ist eine Variante des Fedora-Betriebssystems, die sich durch ihre innovative Ansätze in Bezug auf Softwareverwaltung und Systemkonfiguration auszeichnet. Hier sind einige der wichtigsten Merkmale von Fedora Silverblue Fedora Silverblue im Überblick Fedora Silverblue präsentiert eine aufregende Perspektive auf das Fedora-Betriebssystem, indem es sich auf Unveränderlichkeit, fortschrittliche Systemverwaltung und moderne Softwarebereitstellung konzentriert. Mit einem...

Der Beitrag Tauche ein in die Zukunft: Fedora Silverblue im Test erschien zuerst auf MichlFranken.

  •  

Firefox 122 unterstützt Erkennung unglaubwürdiger Produktbewertungen auf amazon.de

Im Mai des vergangenen Jahres hatte Mozilla die Übernahme von Fakespot bekannt gegeben, einem Anbieter, der vor gefälschten Bewertungen beim Online-Shopping schützen soll. Firefox 122 wird die Erkennung unglaubwürdiger Produktbewertungen auf amazon.de unterstützen.

Bei Fakespot handelt es sich um einen Anbieter, welcher Künstliche Intelligenz nutzt, um gefälschte Rezensionen auf Shopping-Plattformen wie Amazon zu erkennen. Nach eigenen Angaben nutzen derzeit über eine Million Menschen Fakespot. Anfang Mai hatte Mozilla bekannt gegeben, das Unternehmen Fakespot vollständig und inklusive seiner 13 Mitarbeiter übernommen zu haben.

Seit der Übernahme von Fakespot arbeitet Mozilla an der nativen Integration einer Funktion zur Bewertung von Produkt-Reviews in Firefox. Im August 2023 hatte ich eine erste Vorschau auf das neue Firefox-Feature gegeben.

Wenn Mozilla kommende Woche Firefox 122 veröffentlichen wird, wird die Fakespot-Integration zwar noch nicht standardmäßig aktiviert sein, kann aber über about:config aktiviert werden, indem der Schalter browser.shopping.experience2023.enabled auf true gesetzt wird.

Dies funktioniert zwar bereits im aktuellen Firefox 121, allerdings werden ausschließlich amazon.com, walmart.com sowie bestbuy.com unterstützt. Für Nutzer in Deutschland, Österreich und der Schweiz sehr viel relevanter ist die Version von Amazon für den deutschsprachigen Raum, welche unter amazon.de aufrufbar ist. Diese wird, ebenso wie die französische Version unter amazon.fr, ab Firefox 122 unterstützt.

Der Nutzung dieser Funktion muss zunächst explizit durch den Benutzer zugestimmt werden. Standardmäßig erfolgt keine Anzeige von Review-Bewertungen.

Fakespot-Integration in Firefox 122

Bei Aufruf der Produktseite zeigt Firefox die Glaubwürdigkeit der abgegebenen Nutzer-Bewertungen in Form einer Schulnote nach amerikanischem System („A“ ist die beste, „F“ die schlechteste Note) an. Darunter wird die bereinigte Durchschnitts-Bewertung des jeweiligen Produkts angezeigt, sprich der Durchschnitt aller Bewertungen abzüglich derer, die nach Einschätzung von Fakespot keine echten Bewertungen sind. Erkennt Fakespot, dass die Bewertung nicht mehr auf dem neuesten Stand ist, bietet Firefox die Möglichkeit an, die Analyse neu durchführen zu lassen.

Schließlich folgt noch eine Anzeige aktueller Highlights aus den Bewertungen, eingeteilt nach Kategorien wie Qualität und Preis. Dabei werden nur die glaubwürdigen Bewertungen der letzten 80 Tage als Grundlage genommen.

Fakespot-Integration in Firefox 122

Das Bewerben eines alternativen Produkts aus der gleichen Kategorie, welches eine gute Bewertung für die Glaubwürdigkeit der Produktbewertungen erhalten hat, ist für Deutschland und Frankreich aktuell nicht geplant.

Der Beitrag Firefox 122 unterstützt Erkennung unglaubwürdiger Produktbewertungen auf amazon.de erschien zuerst auf soeren-hentzschel.at.

  •  

GPIO Reloaded III: Kamera

Das ist der dritte Teil einer Mini-Serie zur GPIO-Nutzung am Raspberry Pi 5:

  • GPIO Reloaded I: Python (gpiozero, lgpio, gpiod, rpi-lgpio)
  • GPIO Reloaded II: Bash (gpiod, gpioget, gpioset, pinctrl)
  • GPIO Reloaded III: Kamera (rpicam-xxx, Picamera2)

Genau genommen hat die Kamera-Nutzung nicht unmittelbar etwas mit GPIOs zu tun. Allerdings ist für die Kommunikation mit der Kamera ebenfalls der neu im Pi 5 integrierte RP1-Chip verantwortlich. Der Chip ist der Grund, weswegen alte Kamera-Tools auf dem Raspberry Pi 5 nicht mehr funktionieren. Bevor Sie zu schimpfen beginnen: Der RP1 hat viele Vorteile. Unter anderem können Sie nun zwei Kameras gleichzeitig anschließen und nutzen und höhere Datenmengen übertragen (wichtig für Videos).

Beachten Sie, dass Sie beim Raspberry Pi 5 zum Kamera-Anschluss ein neues, schmaleres Kabel benötigen!

Kamera-Modul 3 mit neuem, FPC-kompatiblen Kabel
Kamera-Modul 3 mit einem neuen Anschlusskabel mit schmaler Kontaktleiste

Veraltet: raspistill, raspivid, picamera2

Im Terminal bzw. in Bash-Scripts funktionieren raspistill, raspivid usw. nicht mehr. Sie müssen stattdessen rpicam-still, rpicam-vid etc. einsetzen.

In Python-Scripts müssen Sie Abschied vom picamera-Modul nehmen. Stattdessen gibt es das vollkommen neue Modul Picamera2. Es bietet (viel) mehr Funktionen, ist aber in der Programmierung komplett inkompatibel. Vorhandene Scripts können nicht portiert werden, sondern müssen neu entwickelt werden.

Sowohl die rpicam-xxx-Kommandos als auch das Picamera2-Modul greifen auf die ebenfalls neue Bibliothek libcamera2 zurück.

Im einfachsten Anwendungsfall erzeugen Sie ein Picamera2-Objekt, machen mit der Methode start_and_capture_file ein Foto und speichern dieses in eine Datei. Dabei kommt die volle Auflösung der Kamera zur Anwendung, beim Camera Module 3 immerhin fast 4600×2600 Pixel.

#!/usr/bin/env python3
# Beispieldatei camera.py
from picamera2 import Picamera2
cam = Picamera2()
# ein Foto machen und speichern
cam.start_and_capture_file("test.jpg")

Anstelle von start_and_capture_file gibt es zwei weitere Methoden, um ebenso unkompliziert Bilderfolgen bzw. Videos aufzunehmen:

# 10 Bilder im Abstand von 0,5 Sekunden aufnehmen
# mit Dateinamen in der Form series-0003.jpg
cam.start_and_capture_files("series-{:0>4d}.jpg", 
                            num_files=10, 
                            delay=0.5)
# Video über 10 Sekunden aufnehmen (640x480 @ 30 Hz, H.264/AVC1)
cam.start_and_record_video("test.mp4", duration=10)

rpicam-xxx-Kommandos

Zum Test der Kamera sowie zur Aufnahme von Bildern und Videos stehen die folgenden neuen Kommandos zur Auswahl:

  • rpicam-hello: zeigt für fünf Sekunden der Preview-Fenster mit dem Bild der Kamera an
  • rpicam-jpeg: nimmt ein Foto auf und speichert es als JPEG-Datei
  • rpicam-still: nimmt ein Foto auf und speichert es (mehr Optionen als rpicam-jpeg, Optionen etwas kompatibler zu raspistill)
  • rpicam-vid: nimmt ein Video auf und speichert es oder gibt den Video-Stream an externe Tools (livav/ffmpeg) weiter
  • rpicam-raw: speichert RAW-Videomaterial in einer Datei

Die Kommandos sind mit all ihren Optionen großartig dokumentiert. Es gibt zwar keine man-Seiten, aber dafür liefern die Kommandos mit der Option -h eine lange Liste aller Optionen (z.B. rpicam-still -h). Ich beschränke mich hier auf einige einfache Anwendungsbeispiele.

# fünf Sekunden lang ein Vorschaufenster anzeigen, dann 
# ein Foto aufnehmen und speichern
rpicam-jpeg -o image.jpg

# ohne Vorschau, Aufnahme nach einer Sekunde (1000 ms)
rpicam-jpeg -n -t 1000 -o image.jpg

# wie oben, aber Debugging-Ausgaben nicht anzeigen
rpicam-jpeg -n -t 1000 -v 0 -o image.jpg 

# Bildgröße 1280x800
rpicam-jpeg --width 1280 --height 800 -o image.jpg

# heller/dunkler (EV Exposure Compensation)
rpicam-jpeg --ev 0.5  -o brighter.jpg
rpicam-jpeg --ev -0.5 -o darker.jpg

# erstellt ein 10 Sekunden langes Video (10.000 ms) 
# 640x480@30Hz, H264-Codec
rpicam-vid -t 10000 -o test.mp4

# wie vorher, aber höhere Auflösung
rpicam-vid --width 1024 --height 768 -t 10000 -o test.mp4

Falls Sie mehr als eine Kamera angeschlossen haben, können Sie diese mit rpicam-hello --list-cameras auflisten. Die bei einer Aufnahme gewünschte Kamera können Sie mit der Option rpicam-xxx --camera <n> festlegen.

picamera2-Modul für Python-Scripts

picamera2 ist ein relativ neues Python-Modul. Es ersetzt das früher gebräuchliche Modul picamera. Der Hauptvorteil von picamera2 besteht darin, dass das Modul zu aktuellen Raspberry-Pi-Modellen kompatibel ist. Beim Raspberry Pi 5 kommt picamera2 auch mit dem Fall zurecht, dass Sie zwei Kameras gleichzeitig an Ihren Minicomputer angeschlossen haben.

Eine umfassende Referenz aller Klassen und Methoden finden Sie in der exzellenten Dokumentation (nur im PDF-Format verfügbar), die allerdings weit mehr technische Details behandelt, als Sie jemals brauchen werden. Eine Menge Beispiel-Scripts finden Sie auf GitHub.

Mit create_still_configuration können Sie in diversen optionalen Parametern Einstellungen vornehmen. Das resultierende Konfigurationsobjekt übergeben Sie dann an die configure-Methode. Wichtig ist, dass Sie das Foto nicht mit start_and_capture_file aufnehmen, sondern dass Sie die Methoden start und capture_file getrennt ausführen. Die folgenden Zeilen zeigen, wie Sie ein Bild in einer Auflösung von 1024×768 Pixel aufnehmen. Die sleep-Aufforderung verbessert die Qualität des Bilds. Sie gibt der Kamera-Software etwas Zeit, um die Aufnahme zu fokussieren und richtig zu belichten.

#!/usr/bin/env python3
from picamera2 import Picamera2, Preview
import time

# ein Foto in reduzierter Auflösung aufnehmen
cam = Picamera2()
myconfig = cam.create_still_configuration(
  main={"size": (1024, 768)} )
cam.configure(myconfig)
cam.start()
time.sleep(0.5)
cam.capture_file("1024x768.jpg")

Mit Transformationen können Sie das aufgenommene Bild vertikal und horizontal spiegeln. Falls Sie die Kamerakonfiguration während der Ausführung eines Scripts ändern möchten, müssen Sie die Kamera vorher stoppen und danach neu starten.

# (Fortsetzung des obigen Listings)
cam.stop()
from libcamera import Transform
mytrans = Transform(hflip=True)
myconfig = cam.create_still_configuration(
  main={"size": (1024, 768)},
  transform=mytrans)  
cam.configure(myconfig)
cam.start()
time.sleep(0.5)
cam.capture_file("1024x768-hflip.jpg")

Massive Video-Probleme

Bei der Aufnahme von Videos haben Sie die Wahl zwischen drei Encodern, die die aufgenommenen Bilder in Video-Dateien umzuwandeln:

  • H264Encoder (Hardware-Encoder für H.264, kommt per Default zum Einsatz, max. 1080p@30 Hz)
  • MJPEGEncoder (Hardware-Encoder für Motion JPEG = MJPEG)
  • JpegEncoder (Software-Encoder für MJPEG)

Hardware-Encoding steht nur auf dem Raspberry Pi 4 (H.264 und MJPEG) und dem Raspberry Pi 5 (nur H.264) zur Verfügung. Beim Raspberry Pi 5 läuft der MJPEGEncoder also per Software.

Das folgenden Script soll ein Video im Format 720p aufnehmen und gleichzeitig ein Vorschaubild anzeigen. Dabei soll der H.264-Codec eingesetzt werden.

#!/usr/bin/env python3
from picamera2 import Picamera2, Preview
from picamera2.encoders import H264Encoder, Quality
import time
cam = Picamera2()
myconfig = cam.create_video_configuration(
    main={"size": (1280, 720)})        # Auflösung 720p
myencoder = H264Encoder()
cam.configure(myconfig)
cam.start_preview(Preview.QTGL)
time.sleep(0.5)
cam.start_recording(myencoder, 
                    "test-720p.mp4", 
                    quality=Quality.MEDIUM)
time.sleep(10)
cam.stop_recording()
cam.stop_preview()

Das Script zeigt zwar keine Fehlermeldungen an, allerdings lässt sich die Video-Datei nicht abspielen, weder mit VLC am Raspberry Pi noch mit anderen Video-Playern auf anderen Rechnern. Ich habe tagelang mit den Video-Funktionen von Picamera2 experimentiert, aber die resultierenden Videos waren meist schwarz oder enthielten nur ein Bild, das am Beginn der Aufnahme entstanden ist. Auch die auf der folgenden Seite gesammelten Beispiel-Scripts zum Video-Recording funktionierten bei meinen Tests entweder gar nicht oder nur mit Einschränkungen:

https://github.com/raspberrypi/picamera2/tree/main/examples

Fazit: Die Video-Funktionen von Picamera2 sind aktuell (Anfang 2024) ebenso ambitioniert wie unausgereift. Es ist zu hoffen, dass neue Versionen von libcamera und Picamera2 und eine bessere Dokumentation der Grundfunktionen in Zukunft Abhilfe schaffen. Was nützen coole Spezial-Features, wenn es schon bei den einfachsten Grundfunktionen Probleme gibt?

Quellen/Links

  •  
❌