Die Veröffentlichung des Linux-Kernels 6.12 mit Unterstützung für den Realtime-Modus

Nach zwei Monaten Entwicklung stellte Linus Torvalds die Veröffentlichung des Linux-Kernels 6.12 vor. Zu den bemerkenswertesten Änderungen gehören: die Möglichkeit, den Realtime-Modus zu aktivieren, sched_ext zur Erstellung von CPU-Scheduler über eBPF, die Ausgabe eines QR-Codes bei Notfällen, das Device Memory TCP-Mechanismus, die Ressourcenschutzmechanismus SCHED_DEADLINE-Server, die Verbesserung des EEVDF-Task-Schedulers und das IPE-Modul zur Festlegung von Integritätsrichtlinien.

In die neue Version flossen 14607 Korrekturen von 2167 Entwicklern ein, die Patchgröße beträgt 37 MB (Änderungen betrafen 13087 Dateien, 507913 Codezeilen wurden hinzugefügt und 234083 Zeilen gelöscht). Im vorherigen Release waren es 15130 Korrekturen von 2078 Entwicklern, die Patchgröße betrug 85 MB (im Kernel 6.10 hatte der Patch eine Größe von 41 MB). Ungefähr 45 % aller in 6.12 präsentierten Änderungen sind mit Gerätetreibern verbunden, etwa 12 % der Änderungen beziehen sich auf die Aktualisierung von hardwarearchitekturspezifischem Code, 13 % stehen im Zusammenhang mit dem Netzwerk-Stack, 6 % mit Dateisystemen und 3 % mit internen Subsystemen des Kernels.

Die wichtigsten Neuerungen im Kernel 6.12:

  • Speicher und Systemdienste
    • Die Möglichkeit, den Kernel mit der Option PREEMPT_RT ohne zusätzliche Patches für den Betrieb im Echtzeitmodus zu kompilieren, wurde bereitgestellt. Die letzte fehlende Möglichkeit im Kernel, die die Aktivierung des PREEMPT_RT-Modus nicht zuließ, war die Unterstützung des nicht blockierenden atomaren Ausgebens über die Funktion printk, die ebenfalls in den Kernel aufgenommen wurde. Die Unterstützung für PREEMPT_RT ist für die Architekturen x86, x86_64, ARM64 und RISC-V verfügbar. Bisher wurde die Implementierung des PREEMPT_RT-Modus in Form externer Patches bereitgestellt, auf deren Basis einige Distributionen wie RHEL, SUSE und Ubuntu separate Realtime-Editionen ihrer Produkte erstellten, die in Bereichen wie Finanzsysteme, Audio- und Videoverarbeitung, Luftfahrt, Medizin, Robotik sowie Telekommunikations- und Industriesystemen gefragt sind, in denen eine vorhersehbare Bearbeitungszeit für Ereignisse vereist wird.
    • Ein Mechanismus "sched_ext" (SCX) wurde hinzugefügt, der die Verwendung von eBPF zur Erstellung von CPU-Schedulern ermöglicht, die nahezu alle Aspekte der Planung der Ausführung von Aufgaben und der Verteilung von CPU-Ressourcen abdecken. Solche Scheduler können dynamisch geladen und innerhalb des Linux-Kernels ausgeführt werden. virtuellen Maschine eBPF. Der Mechanismus sched_ext erleichtert die Erstellung von auf bestimmte Aufgaben zugeschnittenen Planern, ermöglicht das Experimentieren mit verschiedenen Techniken und Strategien der Planung und erlaubt es, schnell Arbeitsprototypen zu erstellen sowie Planer in laufenden Infrastrukturen dynamisch zu ersetzen. Mit sched_ext kann beispielsweise ein Planer erstellt werden, der die spezifischen Anforderungen einer bestimmten Anwendung berücksichtigt und die Planung seiner Ausführung dynamisch an den Zustand des Systems und an zusätzliche Faktoren anpasst.
    • Enthalten sind die verbleibenden Teile der Patches, die für den Betrieb des SCHED_DEADLINE-Servers erforderlich sind, der das Problem des Ressourcenmangels bei normalen Aufgaben aufgrund der Monopolisierung der CPU durch hochpriorisierte (Echtzeit-) Aufgaben löst. Um die Monopolstellung der CPU zu verhindern, wurde im Kernel zuvor der Mechanismus des Realtime-Throttlings verwendet, der versuchte, 5% für niedrigpriorisierte Aufgaben zu reservieren und 95% der Zeit für Echtzeitanforderungen beizubehalten. Dieser Mechanismus ließ jedoch zu wünschen übrig, da normale Aufgaben in vielen Situationen nicht ausreichend Prozessorzeit erhielten. Der SCHED_DEADLINE-Server implementiert einen effizienteren Ressourcenreservierungsmechanismus.
    • Die Integration des EEVDF (Earliest Eligible Virtual Deadline First) Task-Schedulers wurde abgeschlossen, der den CFS (Completely Fair Scheduler) ersetzt hat, der seit Kernel 2.6.23 ausgeliefert wird. Der neue Scheduler berücksichtigt bei der Auswahl des nächsten Prozesses zur Ausführung Prozesse, die nicht genügend CPU-Ressourcen erhalten haben oder unangemessen viel CPU-Zeit erhalten haben. Im ersten Fall wird die Kontrolle an den Prozess übergeben, im zweiten Falle hingegen wird sie verschoben. Der alte CFS-Scheduler verwendete Heuristiken und Feinabstimmungen, um Prozesse zu identifizieren, die besondere Aufmerksamkeit erforderten, während der neue Scheduler sie expliziter verfolgt und keine Feinabstimmung benötigt. Es wird angenommen, dass EEVDF dazu beitragen wird, die Latenz bei der Ausführung von Aufgaben zu verringern, mit denen der CFS Probleme bei der Planung hatte.
    • Im Kernel-Notfallbehandler – DRM Panic, der das DRM (Direct Rendering Manager)-Subsystem verwendet, um einen anschaulichen Bericht im Stil des „Bluescreen of Death“ anzuzeigen, wurde die Möglichkeit hinzugefügt, das Logo und einen QR-Code mit dem kmsg-Bericht bei einem Notfall auf dem Bildschirm anzuzeigen. Da im QR-Code nur 2953 Byte Platz finden, wurde die Option DRM_PANIC_SCREEN_QR_CODE_URL vorgesehen, bei der der kmsg-Bericht mithilfe von zlib komprimiert und als Parameter an die URL angehängt wird, was ermöglicht, über QR-Code V40 ungefähr 7500 Bytes zu übertragen. Bei der Erstellung von Kernel-Paketen können Distributionen einen Basislink für die URL festlegen, um den Übergang zu einer Seite zum Einreichen eines Problemberichts zu ermöglichen. Für die Auswahl des QR-Code-Formats wurde die Einstellung DRM_PANIC_SCREEN_QR_VERSION hinzugefügt.
    • Die Unterstützung für die ARM POE (Permission Overlay Extension) wurde hinzugefügt, die es ermöglicht, Zugriffsrechte auf Speicherbereiche festzulegen. Mit dieser Erweiterung kann auf ARM64-Systemen ein Mechanismus für Memory Protection Keys implementiert werden, der den Zugriff auf Speicherseiten einschränkt, ohne die Seitentabelle zu ändern.
    • Für die Architekturen Loongarch, ARM64, PowerPC und s390 wurde die Implementierung des Systemaufrufs getrandom() übertragen, optimiert durch den Mechanismus vDSO (virtual dynamic shared object), der es ermöglicht, den Handler des Systemaufrufs aus dem Kernel in den Benutzerspeicher zu verschieben und Kontextwechsel zu vermeiden. Diese Optimierung ermöglicht es, die Erzeugung von Zufallszahlen bis zu 15 Mal zu beschleunigen.
    • Im asynchronen Ein-/Ausgabesubsystem io_uring wurde die Möglichkeit hinzugefügt, absolute Zeitüberschreitungen zu verwenden, die bei Erreichen einer bestimmten Zeit auf der Systemuhr auslösen (früher konnten nur relative Zeitüberschreitungen festgelegt werden, bei denen die Dauer seit Beginn der Operation angegeben wurde).
    • Es wurden Dateien zur Generierung von Bindings für die Bibliothek libcpupower mithilfe des SWIG-Tools hinzugefügt, das es ermöglicht, Bindings aus C/C++-Code für verschiedene Programmiersprachen zu erstellen. Diese Bindings ermöglichen es, Skripte in Python und anderen Sprachen zu erstellen und zur Erweiterung der Funktionalität der Bibliothek libcpupower zu verwenden, die eine API für die Verwaltung von cpufreq und Treibern aus dem Benutzerspeicher bereitstellt.
    • Im cpuidle-Dienstprogramm wird der Wert des Leerlaufstatus "residency" angezeigt, der für Echtzeitsysteme verwendet wird und die minimale Zeit berücksichtigt, die der Prozessor im Leerlaufzustand verbringen muss, um die Energiekosten für den Übergang in diesen Zustand und zurück zu rechtfertigen.
    • Die Möglichkeit, den Clang-Compiler zum Erstellen der Standard-C-Bibliothek nolibc, die Bestandteil des Linux-Kernelquellcodes ist und eine Schnittstelle zu den grundlegenden Systemaufrufen bereitstellt, zu verwenden, wurde hinzugefügt. Bei der Erstellung von nolibc in Clang ist die Verwendung von Optimierungen während des Linkens (LTO) zulässig.
    • Einige Schnittstellen von cgroup1, wie die TCP-Abrechnung, die erste Version der weichen Begrenzungen (soft limit) und das Management von freiem Speicher, wurden als veraltet erklärt. Die Unterstützung dieser Funktionen bleibt vorerst in vollem Umfang erhalten, und die Warnung wurde ausgesprochen, um die Anzahl der Benutzer zu ermitteln, die diese Funktionen weiterhin verwenden.
    • Die Möglichkeit zur Konfiguration eines ringbuffers für die Trace-Daten wurde hinzugefügt, um gesammelte Informationen nach einem Neustart zu speichern, wodurch verlorengegangene Debugging-Informationen im Falle eines Kernel-Absturzes vermieden werden. Die Daten werden im Speicher gespeichert. Die Aktivierung erfolgt über den Kernel-Command-Parameter trace_instance, zum Beispiel führt die Einstellung "trace_instance=boot_map@0x285400000:12M" dazu, dass 12 MB Speicher unter der Adresse 0x285400000 für den Buffer "boot_map" reserviert werden, der über die Datei /sys/kernel/tracing/instances/boot_map zugänglich ist.
    • Die Übertragung von Änderungen aus dem Rust-for-Linux-Zweig wird fortgesetzt, die die Verwendung der Sprache Rust als zweite Sprache zur Entwicklung von Treibern und Kernel-Modulen betreffen (die Rust-Unterstützung ist standardmäßig nicht aktiviert und führt nicht dazu, dass Rust zu den obligatorischen Build-Abhängigkeiten des Kernels zählt). Modules 'list' und 'rbtree' wurden hinzugefügt, um mit doppelt verketteten Listen und rot-schwarzen Suchbäumen (red-black tree) zu arbeiten. Die Funktionen der Module 'init', 'sync', 'types' und 'error' wurden erweitert. Die Möglichkeit, Rust-Code beim Erstellen des Kernels mit Schutz gegen Spectre-Angriffe (Optionen MITIGATION_{RETHUNK, RETPOLINE, SLS}), die Verwendung des KASAN-Debugging-Systems, der Mechanismen kCFI (Kernel Control Flow Integrity) und Shadow Call sowie die Verwendung zusätzlicher GCC-Plugins einzusetzen, wurde bereitgestellt. Ein Treiber für den Ethernet-Controller Applied Micro QT2025 PHY, geschrieben in Rust, wurde hinzugefügt. Eine separate Website mit Dokumentation wurde erstellt — rust.docs.kernel.org.
    • In die Quelltexte des Kernels wurde das Utility xdrgen aufgenommen, das XDR-Spezifikationen (eXternal Data Representation) in Codierungs- und Decodierungsfunktionen für XDR umwandelt, die im stil von C, wie im Linux-Kernel akzeptiert, geschrieben sind.
    • Eine Änderung wurde in den Kernel aufgenommen, die die Implementierung eines Mechanismus zum Maskieren von Zeigern zur Reduzierung der Anzahl langsamer Aufrufe von barrier_nospec() in der 64-Bit-Funktion copy_from_user() betrifft, die zum Kopieren von Daten vom Benutzerspeicher in den Kernel verwendet wird. Die Anwendung der Maskierung beschleunigt den Test 'per_thread_ops', der die Anzahl der Operationen bewertet, die in einem Thread ausgeführt werden können, um 2,6%.
    • Ein neuer USB-Treiber wurde hinzugefügt, der es ermöglicht, das Protokoll 9pfs als Transportmittel zum Senden und Empfangen von Daten mit einem USB-Gerät zu verwenden, wenn das Filesystem 9p über USB gemountet wird (z. B. 'mount -t 9p -o trans=usbg,aname=/path/to/fs /mnt/9'). Ein Beispiel für die Verwendung des neuen Treibers ist die Nutzung anstelle von NFS zur Organisation des Bootens der Root-Partition bei der Entwicklung von Embedded-Geräten.
  • Festplattensubsystem, Ein-/Ausgabe und Dateisysteme
    • Im VFS-Untersystem wurde die Möglichkeit hinzugefügt, mit Speichereinheiten zu arbeiten, deren Blockgrößen größer sind als die Seitengröße des Systems. In Dateisystemen wird diese Möglichkeit derzeit nur in XFS unterstützt.
    • Im FUSE-Subsystem, das die Implementierung von Dateisystemen im Benutzerspace ermöglicht, wurde die Unterstützung für die Zuordnung von Benutzer-IDs an die gemounteten Dateisysteme hinzugefügt, um Dateien eines bestimmten Benutzers auf einem gemounteten fremden Volume mit einem anderen Benutzer im aktuellen System abzugleichen.
    • Eine neue fcntl-Operation F_CREATED_QUERY wurde implementiert, die es einer Anwendung ermöglicht, festzustellen, ob eine Datei, die mit dem Flag O_CREAT geöffnet wurde, neu erstellt oder bereits vorher vorhanden war.
    • Im Systemaufruf name_to_handle_at() wurde die Möglichkeit hinzugefügt, eindeutige 64-Bit-Mountpunkt-IDs zu verwenden, um Zustände von Wettläufen beim Parsen von /proc/mountinfo auszuschließen.
    • Die Größe der ‘file’-Struktur im Kernel wurde von 232 auf 184 Bytes reduziert, was den Speicherverbrauch auf Systemen, die intensiv mit Dateien arbeiten, verringert.
    • Das Mounten von Dateisystemen an Mountpunkten innerhalb der /proc-Hierarchie, wie z.B. in /proc/PID/fd, wurde verboten, da dies potenzielle Sicherheitsprobleme verursachte.
    • Im Pseudo-Dateisystem NSFS (NameSpace FS), das zur Arbeit mit Namensräumen verwendet wird, wurde die Bereitstellung zusätzlicher Informationen über die Namensräume von Mountpunkten implementiert.
    • Im Dateisystem EROFS (Extendable Read-Only File System), das für die Nutzung auf nur-lesbaren Partitionen vorgesehen ist, wurde die Unterstützung für das Mounten von Dateisystemen direkt aus Festplatten-Images, die in Form von Dateien gespeichert sind, hinzugefügt.
    • In XFS wurden neue ioctl-Befehle XFS_IOC_START_COMMIT und XFS_IOC_COMMIT_RANGE hinzugefügt, um den Inhalt zwischen zwei Dateien auszutauschen.
    • In NFS wurde die Unterstützung für das Protokoll ‚LOCALIO‘ hinzugefügt, das feststellen kann, ob sich der Client und NFS auf demselben Host befinden, um entsprechende Optimierungen zu aktivieren. Server Im Btrfs-Dateisystem wurden Leistungsoptimierungen vorgeschlagen, der Code wurde refaktoriert, der Bereich der Extent-Sperrung bei Leseoperationen wurde reduziert, die Arbeit an der Umstellung auf Seitenfolien (page folios) wurde fortgesetzt, und die automatische Speicherfreigabe für die Struktur btrfs_path wurde implementiert.
    • Im Ext4-Dateisystem wurden Fehler im Zusammenhang mit der Blockzuweisung, dem Extent-Management, dem ‚fast commit‘-Mechanismus und dem Journaling behoben.
    • Im Ext4-Dateisystem wurden Fehler im Zusammenhang mit der Blockzuweisung, dem Extent-Management, dem ‚fast commit‘-Mechanismus und dem Journaling behoben.
  • Virtualisierung und Sicherheit
    • Das LSM-Modul IPE (Integrity Policy Enforcement) wurde hinzugefügt, das von Microsoft entwickelt wurde, um das bestehende System der mandatorischen Zugriffskontrolle zu erweitern. Dieses Modul ermöglicht es, eine allgemeine Integritätspolitik für das gesamte System festzulegen, die angibt, welche Operationen zulässig sind und wie die Authentifizierung von Komponenten verifiziert werden soll. So kann beispielsweise mit IPE festgelegt werden, welche ausführbaren Dateien unter Berücksichtigung ihrer Übereinstimmung mit der Referenzversion durch kryptographische Hashes, die von dm-verity bereitgestellt werden, gestartet werden dürfen.
    • Während der Kernel-Kompilierung wurde die Möglichkeit eingeführt, die verfügbaren Schutzmethoden gegen verschiedene Spectre-Schwachstellen in der CPU separat zu aktivieren. In Kconfig werden neue Parameter angeboten: MITIGATE_MDS (Schutz gegen die Microarchitectural Data Sampling-Schwachstelle), MITIGATE_TAA (Schutz gegen die TSX Asynchronous Abort-Schwachstelle), MITIGATE_MMIO_STALE_DATA (Schutz gegen die MMIO Stale Data-Schwachstelle), MITIGATE_L1TF (Schutz gegen die L1 Terminal Fault-Schwachstelle), MITIGATE_RETBLEED (Schutz gegen die Retbleed-Schwachstelle), MITIGATE_SPECTRE_V1, MITIGATE_SPECTRE_V2 (Schutz gegen Spectre-Schwachstellen), MITIGATE_SRBDS (Schutz gegen die Special Register Buffer Data Sampling-Schwachstelle) und MITIGATE_SSB (Schutz gegen die Speculative Store Bypass-Schwachstelle).
    • Ein neuer Befehlszeilenparameter proc_mem.force_override und eine Reihe von Build-Optionen in Kconfig (PROC_MEM_FORCE_ALWAYS, PROC_MEM_FORCE_PTRACE und PROC_MEM_FORCE_NEVER) wurden hinzugefügt, die das Ändern des Speicherinhalts über /proc/pid/mem verbieten können.
    • Das LSM (Linux Security Module)-Subsystem wurde auf die Verwendung statischer Aufrufe umgestellt, was die Sicherheit erhöht und die Leistung verbessert hat.
    • Die Verwendung von Standard-Kernel für die ARM64-Architektur in Gastumgebungen, die auf Android-Systemen mit einem modifizierten KVM-Hypervisor (protected KVM) ausgeführt werden, ist jetzt möglich.
    • Im LSM-Modul Landlock, das die Interaktion einer Gruppe von Prozessen mit der Außenwelt einschränkt, wurde das Konzept des „IPC Scoping“ umgesetzt, um die Interaktion mit Sandbox-Umgebungen selektiv zu beschränken, indem Unix-Sockets und Signale verwendet werden. Beispielsweise kann die Verbindung von Sandbox-Umgebungen zu Prozessen, bei denen keine Isolation angewendet wird, über Unix-Sockets verboten, gleichzeitig jedoch die Verbindung zu Prozessen innerhalb desselben Scope-Bereichs erlaubt werden.
    • Im KVM-Hypervisor wurde im CPUID für Gast-Systeme ein Flag hinzugefügt, das die Unterstützung von AVX10.1-Erweiterungen signalisiert.
  • Netzwerksubsystem
    • Es wurde ein Device Memory TCP-Mechanismus hinzugefügt, der es ermöglicht, Netzwerksockets für die direkte Übertragung des Inhalts von Peripheriegeräte-Speicher über das Netzwerk (Zero-Copy-Modus) und die direkte Platzierung des Inhalts von Netzwerkpaketen im Speicherausgabebereich des Geräts auf der Empfängerseite zu verwenden. Die in Paketen übertragenden Daten verwirken direkt von der Netzwerkkarte in den Peripheriegerätespeicher oder aus dem Speicherausgabebereich des Geräts direkt in die Netzwerkkarte, und die Paketköpfe gelangen in die regulären Kernelpuffer.
    • Die Möglichkeiten vieler Ethernet- und Wireless-Treiber wurden erweitert. Beispielsweise wurde im Intel iwlwifi-Treiber die Unterstützung für das Auslagern von RLC/SMPS-Operationen in die Firmware hinzugefügt, im RealTek rtw89-Treiber wurde die Leistung verbessert und die Unterstützung für die Chips RTL8852BT/8852BE-VT (WiFi 6) hinzugefügt, der Ethernet-Treiber von Microchip unterstützt die Spezifikationen IEEE 802.3bw (100BASE-T1) und IEEE 802.3bp und die Implementierungen virtueller Ethernet Microsoft vNIC und IBM veth wurden verbessert. Neue Treiber für Ethernet-Chips von Realtek RTL9054, RTL9068, RTL9072, RTL9075, RTL9068, RTL9071 und Microchip LAN8650/1 10BASE-T1S MAC-PHY wurden hinzugefügt.
    • In MPTCP (MultiPath TCP), einer Erweiterung des TCP-Protokolls zur gleichzeitigen Übergabe von TCP-Paketen über mehrere Routen durch verschiedene Netzwerkschnittstellen, wurde die Größe der beim Routing verwendeten Gewichtungskoeffizienten von 8 auf 16 Bit erhöht. Es wurde die Erkennung von verloren gegangenen (Blackhole) Datenverkehr implementiert, sowie eine vorübergehende Unterbrechung bei der Verbindungsherstellung mit Systemen, die zu Datenverlust führen.
    • Für IPv6 wurde die Unterstützung für das Flag „p“ in PIO (Prefix Information Option) implementiert, das in RA-Ankündigungen (IPv6 Router Advertisements) verwendet wird, um das Bereitstellungsmodell von Clients über DHCPv6-PD (DHCPv6 Prefix Delegation, RFC9663) auszuwählen, anstatt separate Adressen auf Basis von Präfixen unter Verwendung von SLAAC (Stateless Address Autoconfiguration) zuzuweisen. In IPv6 IOAM6 wurde die Unterstützung für einen neuen Modus der Einkapselung tunsrc hinzugefügt, der eine höhere Leistung ermöglicht.
    • Die Leistung bei der Verarbeitung von Steuerpaketen für IPsec wurde erhöht.
    • Die Leistung beim Flush großer Regelsets von nftables wurde verbessert. In nfnetlink_queue wurde die Unterstützung für das SCTP-Protokoll verbessert.
    • Im API ethtool wurde die Unterstützung für die Bindung mehrerer Netzwerkkarten an eine einzige Netzwerkschnittstelle hinzugefügt.
  • Ausrüstung
    • Im AMDGPU-Treiber wird die Arbeit an der Unterstützung des GPU AMD RDNA4 („GFX12“) fortgesetzt. Es wurde die Möglichkeit hinzugefügt, einzelne Aufgabenwarteschlangen zurückzusetzen, ohne den Zustand des gesamten GPUs zurückzusetzen.
    • Die Arbeit am DRM-Treiber (Direct Rendering Manager) Xe für GPUs auf der Intel Xe Architektur, die in Intel Arc Grafikkarten und integrierter Grafik verwendet wird, wurde fortgesetzt, beginnend mit den Tiger Lake Prozessoren. Die neue Version unterstützt GPUs basierend auf den Mikroarchitekturen Battlemage und Lunar Lake. Die Unterstützung von CCS-Modifikatoren (Color Control Surface) Xe2 zur Steuerung der Parameter integrierter und diskreter GPUs wurde vorgestellt.
    • Im i915 Treiber wurde die Möglichkeit implementiert, Informationen über die Lüftergeschwindigkeit über die HWMON- oder sysfs-Schnittstelle (Attribut „fan1_input“) auszugeben. Der Parameter „i915.modeset“ wurde als veraltet erklärt, anstelle von „i915.modeset=0“ sollte der Parameter „i915.nomodeset“ verwendet werden.
    • Im DRM-Treiber msm (GPU Qualcomm Adreno) wurde die Unterstützung für die GPUs A615, A306 und A621 hinzugefügt.
    • Im Nouveau Treiber wurden interne Strukturen überarbeitet und bereinigt.
    • Im Treiber intel_pstate, der die Energieverbrauchsparameter (P-State) auf Systemen mit Intel Prozessoren verwaltet, wurde die Unterstützung für hybride Systeme mit asymmetrischen (unterschiedlichen) CPUs sowie die Unterstützung für das Energiemanagement von Prozessoren auf Basis der Mikroarchitekturen Granite Rapids und Sierra Forest hinzugefügt. Im Treiber intel_idle wurde Unterstützung für die CPU Xeon Granite Rapids hinzugefügt. Im Treiber intel_rapl wurde das Erkennen von Prozessen der AMD-Familie 1Ah und Intel Prozessoren ArrowLake-U sichergestellt.
    • Die Änderungen zur Unterstützung des ARM SoC Snapdragon X Elite, der einen eigenen 12-Kern-CPU Qualcomm Oryon und GPU Qualcomm Adreno verwendet, wurden fortgesetzt. Der Chip ist für den Einsatz in Laptops und PCs ausgelegt und übertrifft in vielen Leistungsbenchmarks die Chips Apple M3 und Intel Core Ultra 155H.
    • Die Unterstützung für ARM-Plattformen, SoCs und Geräte wurde hinzugefügt: Broadcom bcm2712 (Raspberry Pi 5), Renesas R9A09G057 (RZ/V2H), Qualcomm Snapdragon 414 (MSM8929), Lenovo ThinkPad T14s Gen 6, Lenovo A6000/A6010, Surface Laptop 7, Anbernic RG35XXSP, Firefly Core-PX30-JD4, Lunzn Fastrhino R68S, Aspeed Riser, AGX Orin, Rockchip Qnap-TS433, Huashan Pi, Meta Catalina, BeagleY-AI, NanoPi R2S Plus, ExynosAuto v920, SOPHGO SG2002, Qualcomm IPQ5332, LG G4 (h815), Cool Pi CM5 GenBook, Anbernic RG35XXSP, GameForce Ace, IBM P11, Kontron i.MX93 OSM-S, NanoPC-T6.
    • Die Unterstützung für Displays Anbernic RG28XX, On Tat Industrial Company KD50G21-40NT-A1, Innolux G070ACE-LH3, Melfas lmfbx101117480, Densitron DMT028VGHMCMI-1D, Microchip AC40T08A, AOU B116XTN02.3, AUO B116XAN06.1, AOU B116XAT04.1, BOE TV101WUM-LL2, BOE NV140WUM-N41, BOE NV133WUM-N63, BOE NV116WHM-A4D, BOE NE140WUM-N6G, CMN N116BCA-EA2, CMN N116BCP-EA2, CSW MNB601LS1-4, Starry er88577 wurde hinzugefügt.
    • Im Audiosystem wurde die Unterstützung für die Chips und Codecs RME Digiface USB, AMD ACP 7.1, Mediatek MT6367, MT8365, Realtek RTL1320 und C-Media CM9825 hinzugefügt. Die alten Audio-Treiber für ASoC Intel wurden als veraltet erklärt, stattdessen wird empfohlen, die AVS-Treiber zu verwenden. Viele Verbesserungen wurden im SoundWire-Treiber vorgenommen.

Quelle: opennet.ru

60GB SSD 8Gb DDR4