QEMU 9.0.0 emuliert (fast) einen kompletten Raspberry Pi 4B​

QEMU-Version 9.0.0 wird Raspberry-Pi-Freunde erfreuen. Es gibt SPI und I²C für ältere Modelle, zudem lässt sich ein fast kompletter Raspberry Pi 4B emulieren.​

In Pocket speichern vorlesen Druckansicht 9 Kommentare lesen
Ein Banner mit Comic-Pinguin und Open-Source-Schriftzug.

Vom ARM bis Raspi bietet die neue QEMU-Version insgesamt 2700 Änderungen.

(Bild: iX)

Lesezeit: 5 Min.
Von
  • Michael Plura
Inhaltsverzeichnis

Die QEMU-Entwickler stellen Version 9.0.0 ihrer freien Virtualisierungssoftware vor. In die neue Version sind insgesamt über 2700 Änderungen von immerhin 220 Entwicklern eingeflossen. Überfliegt man das komplette Changelog, so stechen vor allem größere Blöcke mit Änderungen/Neuerungen für ARM und RISC-V, aber auch für HPPA und LoongArch ins Auge.

Bei der ARM-Emulation fällt einiges an alter Hardware weg: Virtuelle Boards, die alte ARM-Hardware mit den PXA2xx- und OMAP2-SoCs darstellen, sollen in einer der nächsten QEMU-Versionen entfernt werden. Einer der Gründe ist, dass sich niemand mehr dafür findet, den veralteten Code zu pflegen. Dazu gehören akita, borzoi, cheetah, connex, mainstone, n800, n810, spitz, terrier, tosa, verdex und z2.

Zur ARM-Emulation hinzugekommen sind hingegen einige neue Funktionen der Architektur wie FEAT_ECV (Enhanced Counter Virtualization), FEAT_NV (Nested Virtualization) und FEAT_NV2 (Enhanced Nested Virtualization Support). QEMU-9.0.0-Anwender können drei neue ARM-Boards auswählen: b-l475e-iot01a (B-L475E-IOT01A, ein STM32L4 Discovery Kit für IoT-Nodes) mit vorerst minimaler Unterstützung, mps3-an536 (Cortex-R52 Board mit AN536 Firmware für MPS3 Development-Boards) sowie raspi4b, was sich unschwer als Definition für einen Raspberry Pi 4B erkennen lässt.

Bislang emulierte QEMU die beliebten Einplatinencomputer bis hin zum Raspberry Pi 3B (raspi0 bis raspi3b). Der virtuelle Raspberry Pi 4B ermöglicht es, auf virtueller Hardware neue Software auszuprobieren. Mit QEMU 9.0.0. sind für alle Raspberry-Pi-Varianten ein virtueller SPI- (Serial Peripheral Interface) und ein I²C-Controller (Inter Integrated Circuit) hinzugekommen. Sofern man auch virtuelle Sensoren emuliert, ist das sehr praktisch. Leider gibt es noch keine Emulation für die PCI(e)-Schnittstelle. Und viel schmerzhafter: Ethernet. Die Entwickler hoffen, dieses mit QEMU 10 nachliefern zu können.

Einen Cache- und einen PCIe-Controller gibt es für das i.MX6-Modell, Allwinner-R40- und Banana-Pi-Boards bekommen virtuelles USB, AHCI/SATA und einen Watchdog-Timer. Ein Ethernet-Controller wurde den npcm7xx-Boards spendiert.

RISC-V, der offene Plattformstandard für Open-Source-Hardware unter der BSD-Lizenz, erhielt die meisten Neuerungen. Hervorgehoben wird dabei die Zacas-Extension mit ihren drei Instruktionen für atomare Vergleichs- und Vertauschungsoperationen. Der Support für Profile wurde erweitert und enthält nun auch RVA22. RVA23, bei dem es um Krypto- und spezielle Android-Funktionen geht, ist noch nicht enthalten. Einige weitere Machine-Typen sowie SMBIOS für RISC-V sind ebenfalls neu in QEMU 9.0.0.

Bei QEMU ist es immer erfreulich, dass offenbar auch ältere Architekturen noch immer genutzt und sogar weiterentwickelt werden. Ein Fix für den 68010 und die Möglichkeit VirtIO-Geräte auf Q800-Maschinen zu benutzen, erweitern die klassische 68k-Architektur. Für HPPA, die Hewlett Packard Precision Architecture oder Precision Architecture RISC (PA-RISC) gibt es Fixes für den Einsatz von HP-Unix (HP-UX) und NetBSD sowie ein SeaBIOS in Version 16. Auch die Emulationen für Renesas SH und IBMs s390x wurden erweitert.

Deutliche Schritte voran macht auch die Emulation der in China entwickelten LoongArch-Plattform. Sie ist auf Basis der MIPS64r6-Architektur entstanden und vereint, vereinfacht ausgedrückt, das Beste aus MIPS und RISC-V, kombiniert mit eigenen Erweiterungen. QEMU 9.0.0 erhielt LoongArch-KVM-Support samt der LSX/LASX Extension. Virtuelle Maschinen mit LoongArch-Emulation können via UEFI gestartet werden.

Der Virtio-blk-Blocktreiber hat Multi-Warteschlangen-Unterstützung erhalten, sodass verschiedene Warteschlangen auf einer einzigen Festplatte von verschiedenen I/O-Threads verarbeitet werden können. Dieses echte Multi-Queue-I/O für virtio-blk ermöglicht eine bessere Skalierbarkeit. Das Krypto-Subsystem von QEMU 9.0.0 erlaubt nun die Verwendung der SM4-Cipher und kann mit dem LUKS-Blocktreiber verwendet werden.

Wichtig: QEMU mit KVM benötigt nun den Linux-Kernel 4.4+. Ältere Kernelversionen werden nicht mehr unterstützt. Für zukünftige QEMU-Versionen ist geplant, die Mindestanforderungen auf ARM-Hosts auf Linux-Kernel 4.19 zu erhöhen. Ebenfalls geplant und bereits als "deprecated" gekennzeichnet ist die ETRAX CRIS-Architektur, eine für den Embedded-Markt entwickelte RISC-ISA von Axis Communications aus dem Jahre 1993. Abgesehen von Änderungen im Basissystem von QEMU gab es keinerlei spezielle Neuerungen für Alpha, AVR, MIPS, PowerPC, SPARC oder x86.

Alle Änderungen und mögliche Inkompatibilitäten von QEMU 9.0.0 sind im Changelog dokumentiert. Die Online-Doku und den aktuellen Quellcode stellen die Entwickler ebenfalls kostenlos auf der QEMU-Projektseite bereit.

(axk)