Nach zwei Monaten Entwicklung hat Linus Torvalds die Veröffentlichung des Linux-Kernels 6.12 vorgestellt. Zu den auffälligsten Änderungen gehört die Möglichkeit, den Realtime-Modus zu aktivieren, sched_ext zur Erstellung von CPU-Scheduler über eBPF, die Ausgabe eines QR-Codes im Falle von Notfällen, der Device Memory TCP-Mechanismus, der SCHED_DEADLINE-Serverressourcenschutzmechanismus, Verbesserungen am EEVDF-Task-Scheduler sowie das IPE-Modul zur Festlegung von Integritätspolitiken.
In die neue Version wurden 14.607 Korrekturen von 2.167 Entwicklern integriert, die Patch-Größe beträgt 37 MB (die Änderungen betrafen 13.087 Dateien, 507.913 Codezeilen wurden hinzugefügt, 234.083 Codezeilen entfernt). In der vorherigen Version gab es 15.130 Korrekturen von 2.078 Entwicklern, die Patch-Größe betrug 85 MB (der Patch in Kernel 6.10 hatte eine Größe von 41 MB). Rund 45 % aller Änderungen in 6.12 betreffen Gerätetreiber, etwa 12 % der Änderungen beziehen sich auf die Aktualisierung architekturspezifischen Codes, 13 % stehen im Zusammenhang mit dem Netzwerkstapel, 6 % mit Dateisystemen und 3 % mit internen Kernel-Subsystemen.
Hauptneuerungen im Kernel 6.12:
- Speicher und Systemdienste
- Die Möglichkeit zur Kernelkonfiguration mit der Option PREEMPT_RT wurde ohne zusätzliche Patches für den Echtzeitbetrieb bereitgestellt. Die letzte im Kernel fehlende Funktion, die die Aktivierung des PREEMPT_RT-Modus verhinderte, war die Unterstützung für nicht-blockierende atomare Ausgaben über die printk-Funktion, die nun ebenfalls in den Kernel integriert 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 von externen Patches bereitgestellt, auf deren Grundlage einige Distributionen wie RHEL, SUSE und Ubuntu separate Echtzeit-Editionen ihrer Produkte erstellt haben, die in Bereichen wie Finanzsystemen, Audio- und Videobearbeitungsgeräten, Luftfahrt, Medizin, Robotik sowie Telekommunikations- und Industriesystemen erforderlich sind, wo eine vorhersehbare Ereignisverarbeitungszeit sichergestellt werden muss.
- Ein Mechanismus namens „sched_ext“ (SCX) wurde hinzugefügt, der die Verwendung von eBPF zur Erstellung von CPU-Planern ermöglicht, die fast alle Aspekte der Aufgabenplanung und der CPU-Ressourcenzuteilung abdecken. Solche Planer können dynamisch geladen und innerhalb des Linux-Kernels ausgeführt werden. virtuellen Maschine eBPF. Der Mechanismus sched_ext vereinfacht die Erstellung von auf spezifische Aufgaben zugeschnittenen Scheduler, ermöglicht das Experimentieren mit verschiedenen Planungsstrategien und -techniken und erlaubt es, schnell funktionale Prototypen zu erstellen und Scheduler in Echtzeit in produktiven Infrastrukturen auszutauschen. So kann beispielsweise mit sched_ext ein Scheduler entwickelt werden, der auf die Besonderheiten einer bestimmten Anwendung Rücksicht nimmt und dynamisch die Ausführungsstrategie basierend auf dem Systemzustand und weiteren Faktoren anpasst.
- Im Update sind die verbleibenden Teile der Patches enthalten, die für den Betrieb des SCHED_DEADLINE-Servers erforderlich sind. Dieser behebt das Problem, dass herkömmliche Aufgaben aufgrund der Monopolisierung der CPU durch hochpriorisierte (Echtzeit-) Aufgaben nicht genügend CPU-Ressourcen erhalten. Um die Monopolisierung der CPU zu verhindern, kam früher im Kernel ein Echtzeit-Drosselungsmechanismus zum Einsatz, der versuchte, 5 % der Ressourcen für Aufgaben niedrigerer Priorität zu reservieren, während er 95 % der Zeit den Echtzeitanwendungen überließ. Dieser Mechanismus führte oft zu unzureichender CPU-Zeit für reguläre Aufgaben. Der SCHED_DEADLINE-Server implementiert einen effizienteren Mechanismus zur Ressourcenzuweisung.
- Die Integration des EEVDF (Earliest Eligible Virtual Deadline First) Task-Schedulers ist abgeschlossen, der den CFS (Completely Fair Scheduler), der seit dem Kernel 2.6.23 geliefert wird, ersetzt hat. Der neue Scheduler berücksichtigt bei der Auswahl des nächsten Prozesses zur Ausführung die Prozesse, die nicht genügend CPU-Ressourcen erhalten haben oder unangemessen viel CPU-Zeit bekommen haben. Im ersten Fall wird die Kontrolle an den Prozess übergeben, während sie im zweiten Fall aufgeschoben wird. Der alte CFS-Scheduler nutzte Heuristiken und Feineinstellungen, um Prozesse zu identifizieren, die besondere Aufmerksamkeit benötigten, während der neue Scheduler diese Prozesse explizit verfolgt und keine Feineinstellung erfordert. Es wird erwartet, dass EEVDF die Latenzzeiten bei der Ausführung von Aufgaben reduziert, die mit dem CFS-Scheduling Probleme hatten.
- Im Notfallhandler des Kernels – DRM Panic, der die DRM (Direct Rendering Manager)-Subsystem zur Anzeige eines visuellen Berichts im Stil eines "blauen Bildschirm des Todes" nutzt, wurde die Möglichkeit hinzugefügt, ein Logo und einen QR-Code mit dem kmsg-Bericht bei Auftreten eines Fehlerzustands auf dem Bildschirm anzuzeigen. Da im QR-Code nur 2953 Byte Platz finden, gibt es die Option DRM_PANIC_SCREEN_QR_CODE_URL, bei der der kmsg-Bericht mithilfe von zlib komprimiert und als Parameter an die URL angehängt wird, was die Übertragung von etwa 7500 Byte über QR-Code V40 ermöglicht. Bei der Erstellung von Kernel-Paketen können Distributionen einen Basislink für die URL angeben, um den Zugriff auf eine Seite für die Meldung von Problemen zu ermöglichen. Zur Auswahl des QR-Code-Formats steht die Einstellung DRM_PANIC_SCREEN_QR_VERSION zur Verfügung.
- Unterstützung für die ARM POE (Permission Overlay Extension)-Erweiterung wurde hinzugefügt, die es ermöglicht, Zugriffsrechte für Speicherbereiche festzulegen. Mit dieser Erweiterung kann auf Systemen mit ARM64-Prozessoren ein Mechanismus für Memory Protection Keys implementiert werden, der den Zugriff auf Speicherseiten einschränkt, ohne die Seitentabellen ändern zu müssen.
- Für die Architekturen Loongarch, ARM64, PowerPC und s390 wurde die Implementierung des Systemaufrufs getrandom() optimiert. Dies geschieht durch den Mechanismus vDSO (virtual dynamic shared object), der es ermöglicht, den Systemaufruf-Handler vom Kernel in den Benutzerraum zu verschieben und Kontextwechsel zu vermeiden. Diese Optimierung kann die Generierung von Zufallszahlen bis zu 15 Mal beschleunigen.
- Im Untermodul für asynchrone Eingabe/Ausgabe io_uring wurde die Möglichkeit zur Nutzung absoluter Zeitüberschreitungen eingeführt, die eintreten, wenn eine bestimmte Zeit auf der Systemuhr erreicht wird (früher konnten nur relative Zeitüberschreitungen festgelegt werden, die die Dauer seit Beginn der Operation angaben).
- Es wurden Dateien zur Generierung von Bindings für die Bibliothek libcpupower mit dem Werkzeug SWIG hinzugefügt, das es ermöglicht, Bindings aus C/C++-Code für verschiedene Programmiersprachen zu erstellen. Die Bindings erlauben die Erstellung von Skripten in Python und anderen Sprachen und deren Verwendung zur Erweiterung der Funktionalität der Bibliothek libcpupower, die eine API zur Verwaltung von cpufreq und Treibern aus dem Benutzerraum bietet.
- In der cpuidle-Dienstprogramm wurde die Anzeige des Aufenthaltsstatus "residency" implementiert, der für Echtzeitsysteme verwendet wird und die minimale Zeit berücksichtigt, die der Prozessor im Leerlaufzustand verbringen muss, um die Energiemittel für den Wechsel in diesen Zustand und zurück zu rechtfertigen.
- Die Möglichkeit, den Clang-Compiler zum Erstellen der Standard-C-Bibliothek nolibc zu verwenden, wurde hinzugefügt. Diese Bibliothek ist Teil des Linux-Kernel-Quellcodes und bietet eine Schnittstelle zu den grundlegenden Systemaufrufen. Bei der Erstellung von nolibc mit Clang ist die Optimierung in der Verlinkungsphase (LTO) zulässig.
- Einige Schnittstellen von cgroup1, wie die Abrechnung von TCP, die erste Version der weichen Beschränkungen (soft limit) und die Verwaltung von erschöpfter freier Speicher, wurden als veraltet erklärt. Die Unterstützung dieser Funktionen bleibt vorerst vollständig erhalten, und die Warnung dient dazu, die Anzahl der Benutzer zu ermitteln, die diese Möglichkeiten weiterhin nutzen.
- Die Möglichkeit zur Konfiguration eines Ringpuffers für die Trace-Daten wurde hinzugefügt, um die gesammelten Informationen nach einem Neustart zu speichern. Dadurch wird der Verlust von Debugging-Informationen bei einem unerwarteten Kernel-Absturz verhindert. Die Daten werden im Speicher gesichert. Die Aktivierung erfolgt über den Kernel-Befehlszeilenparameter trace_instance. Zum Beispiel reserviert die Einstellung „trace_instance=boot_map@0x285400000:12M“ 12 MB Speicher an der Adresse 0x285400000 für den Buffer „boot_map“, der über die Datei /sys/kernel/tracing/instances/boot_map zugänglich ist.
- Die Übertragung von Änderungen aus dem Rust-for-Linux-Zweig wurde fortgesetzt, um die Verwendung von Rust als zweite Sprache für die Entwicklung von Treibern und Kernel-Modulen zu ermöglichen (Support für Rust ist standardmäßig nicht aktiviert und führt nicht dazu, dass Rust zu den erforderlichen Build-Abhängigkeiten des Kernels zählt). Die Module ‚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. Es ist nun möglich, Rust-Code beim Kernel-Build zu verwenden, wobei Schutzmaßnahmen gegen Spectre-Angriffe (Optionen MITIGATION_{RETHUNK, RETPOLINE, SLS}), das Debugging-System KASAN, Schutzmechanismen wie kCFI (kernel Control Flow Integrity) und Shadow Call sowie die Verwendung zusätzlicher GCC-Plugins aktiviert sind. 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 Werkzeug xdrgen eingefügt, um XDR-Spezifikationen (eXternal Data Representation) in Codierungs- und Decodierungsfunktionen zu transformieren, die im Stil von C, wie im Linux-Kernel üblich, geschrieben sind.
- Im Kernel wurde eine Änderung zur Implementierung eines Mechanismus zur Maskierung von Zeigern angenommen, um die Anzahl langsamer Aufrufe von barrier_nospec() in der 64-Bit-Funktion copy_from_user() zu reduzieren, die zum Kopieren von Daten aus dem 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 9pfs-Protokoll als Transport für die Übertragung und den Empfang von Daten mit USB-Geräten zu verwenden, wenn das 9p-Dateisystem über USB gemountet wird (zum Beispiel „mount -t 9p -o trans=usbg,aname=/path/to/fs /mnt/9“). Als Anwendungsbeispiel für den neuen Treiber wird die Verwendung anstelle von NFS für die Einrichtung des Ladens der Root-Partition bei der Entwicklung von Embedded-Geräten genannt.
- Festplattensubsystem, Ein-/Ausgabe und Dateisysteme
- Im VFS-Unterstützungssystem wurde die Möglichkeit hinzugefügt, mit Speichereinheiten zu arbeiten, deren Blockgrößen größer sind als die Seitengröße im System. In Dateisystemen wird diese Funktion derzeit nur in XFS unterstützt.
- Im FUSE-Subsystem, das die Erstellung von Dateisystemimplementierungen im Benutzerspace ermöglicht, wurde die Unterstützung für die Zuordnung von Benutzeridentifikatoren für gemountete Dateisysteme hinzugefügt. Dies dient der Zuordnung von Dateien eines bestimmten Benutzers auf einem gemounteten fremden Partition zu einem anderen Benutzer im aktuellen System.
- Eine neue fcntl-Operation F_CREATED_QUERY wurde implementiert, die es der Anwendung ermöglicht, festzustellen, ob eine mit dem Flag O_CREAT geöffnete Datei neu erstellt wurde oder bereits zuvor existierte.
- Der Systemaufruf name_to_handle_at() wurde um die Verwendung einzigartiger 64-Bit-Mountpunkt-IDs erweitert, um Race-Conditions bei der Analyse von /proc/mountinfo zu vermeiden.
- Die Größe der Struktur „file“ im Kernel wurde von 232 auf 184 Bytes reduziert, was den Speicherverbrauch auf Systemen, die aktiv mit Dateien arbeiten, verringert.
- Das Einhängen von Dateisystemen an Mountpunkten innerhalb der /proc-Hierarchie, wie z.B. in /proc/PID/fd, wurde untersagt, da dies potenzielle Sicherheitsprobleme verursachen könnte.
- Im pseudofilen System NSFS (NameSpace FS), das für die Arbeit mit Namensräumen verwendet wird, wurde die Bereitstellung zusätzlicher Informationen über die Namensräume der Einhängepunkte implementiert.
- Im Dateisystem EROFS (Extendable Read-Only File System), das für die Verwendung auf Partitionen im Nur-Lese-Modus vorgesehen ist, wurde die Unterstützung zum Einhängen von Dateisystemen direkt aus Disk-Images, die als Dateien gespeichert sind, hinzugefügt.
- In XFS wurden neue ioctl-Kommandos XFS_IOC_START_COMMIT und XFS_IOC_COMMIT_RANGE für den Austausch von Inhalten zwischen zwei Dateien hinzugefügt.
- In NFS wurde die Unterstützung des Protokolls „LOCALIO“ hinzugefügt, das es ermöglicht festzustellen, ob sich der Client und der Server NFS auf demselben Host befinden, um entsprechende Optimierungen zu aktivieren.
- Im Dateisystem Btrfs wurden Leistungsoptimierungen vorgeschlagen, der Code wurde refakturiert, der Bereich der Blockierung von Extents bei Lesevorgängen wurde reduziert, und die Arbeit an der Umstellung auf die Verwendung von Speicherseiten (page folios) wurde fortgesetzt, sowie die automatische Freigabe von Speicher für die Struktur btrfs_path implementiert.
- Im Ext4-Dateisystem wurden Fehler behebt, die mit der Blockzuweisung, der Verwaltung von Extents, dem „Fast Commit“-Mechanismus und dem Journaling zusammenhängen.
- Virtualisierung und Sicherheit
- Das LSM-Modul IPE (Integrity Policy Enforcement), entwickelt von Microsoft, wurde hinzugefügt, um das bestehende System der mandatorischen Zugriffskontrolle zu erweitern. Dieses Modul ermöglicht die Festlegung einer umfassenden Integritätsrichtlinie für das gesamte System, die angibt, welche Operationen zulässig sind und wie die Authentizität der Komponenten verifiziert werden soll. Beispielsweise kann mit IPE festgelegt werden, welche ausführbaren Dateien unter Berücksichtigung ihrer Übereinstimmung mit der überprüfbaren Version durch kryptografische Hashes, die vom System dm-verity bereitgestellt werden, gestartet werden dürfen.
- Im Rahmen der Kernkompilierung wurde die Möglichkeit geschaffen, die verfügbaren Schutzmethoden gegen verschiedene Schwachstellen der Spectre-Klasse in der CPU getrennt zu aktivieren. In Kconfig wurden neue Parameter vorgeschlagen: MITIGATE_MDS (Schutz gegen die Schwachstelle Microarchitectural Data Sampling), MITIGATE_TAA (Schutz gegen die Schwachstelle TSX Asynchronous Abort), MITIGATE_MMIO_STALE_DATA (Schutz gegen die Schwachstelle MMIO Stale Data), MITIGATE_L1TF (Schutz gegen die Schwachstelle L1 Terminal Fault), MITIGATE_RETBLEED (Schutz gegen die Schwachstelle Retbleed), MITIGATE_SPECTRE_V1, MITIGATE_SPECTRE_V2 (Schutz gegen die Schwachstellen Spectre), MITIGATE_SRBDS (Schutz gegen die Schwachstelle Special Register Buffer Data Sampling), MITIGATE_SSB (Schutz gegen die Schwachstelle Speculative Store Bypass).
- Der Befehlzeilenparameter proc_mem.force_override und eine Reihe von Build-Konfigurationen in Kconfig (PROC_MEM_FORCE_ALWAYS, PROC_MEM_FORCE_PTRACE und PROC_MEM_FORCE_NEVER) wurden hinzugefügt, um die Änderung des Speichers über /proc/pid/mem zu verbieten.
- Das LSM-Subsystem (Linux Security Module) wurde auf die Verwendung statischer Aufrufe umgestellt, was die Sicherheit verbessert und die Leistung steigert.
- Die Möglichkeit zur Verwendung von Standardkernen für die ARM64-Architektur in Gastumgebungen, die auf Android-Systemen mit einem modifizierten KVM-Hypervisor (protected KVM) ausgeführt werden, wurde gewährleistet.
- Im LSM-Modul Landlock, das die Interaktion einer Gruppe von Prozessen mit ihrer Umgebung einschränkt, wurde das Konzept des „IPC-Scopings“ implementiert, um gezielte Einschränkungen in Sandbox-Umgebungen unter Verwendung von Unix-Sockets und Signalen zu ermöglichen. Beispielsweise kann das Herstellen von Verbindungen über Unix-Sockets aus einer Sandbox-Umgebung zu Prozessen, die keine Isolierung aufweisen, untersagt werden, während Verbindungen zu Prozessen im selben Scoping-Bereich erlaubt bleiben.
- Im KVM-Hypervisor wurde im CPUID für Gastbetriebssysteme ein Flag hinzugefügt, das die Unterstützung von AVX10.1-Erweiterungen signalisiert.
- Netzwerksubsystem
- Ein Mechanismus für Device Memory TCP wurde hinzugefügt, der es ermöglicht, Netzwerk-Sockets für die direkte Übertragung von Inhalten des Speicherbereichs von Peripheriegeräten über das Netzwerk zu nutzen (Zero-Copy-Modus) und Inhalte von Netzwerkpaketen direkt im Speicherbereich des Gerätes auf der Empfängerseite abzulegen. Die in den Paketen übertragenen Daten gelangen direkt von der Netzwerkkarte in den Speicher des Peripheriegeräts oder aus dem Speicher des Geräts direkt zur Netzwerkkarte, ohne den CPU zu verwenden, während die Header der Pakete in die üblichen Kernel-Puffer gelangen.
- Die Funktionen vieler Ethernet- und WLAN-Treiber wurden erweitert. So wurde beispielsweise im Intel iwlwifi-Treiber die Unterstützung für die Auslagerung von RLC/SMPS-Operationen auf die Firmware hinzugefügt, im RealTek rtw89-Treiber die Leistung verbessert und die Unterstützung für die Chips RTL8852BT/8852BE-VT (WiFi 6) gevorragen. Zudem wurde im Ethernet-Treiber von Microchip die Unterstützung für die Spezifikationen IEEE 802.3bw (100BASE-T1) und IEEE 802.3bp hinzugefügt, und die Implementierungen von Microsoft vNIC und IBM veth für virtuelle Ethernet-Verbindungen wurden optimiert. Neue Treiber wurden für die Ethernet-Chips Realtek RTL9054, RTL9068, RTL9072, RTL9075, RTL9068, RTL9071 und Microchip LAN8650/1 10BASE-T1S MAC-PHY hinzugefügt.
- In MPTCP (MultiPath TCP), einer Erweiterung des TCP-Protokolls zur gleichzeitigen Übertragung von TCP-Paketen über mehrere Pfade durch verschiedene Netzwerkinterfaces, wurde die Größe der zur Routenfindung verwendeten Gewichtungsfaktoren von 8 auf 16 Bit erhöht. Die Erkennung von verlorenem (blackhole) Verkehr sowie die vorübergehende Unterbrechung von Verbindungsversuchen zu Systemen, die zu Verkehrverlust führen, wurde implementiert.
- Für IPv6 wurde die Unterstützung des „p“-Flags in der PIO (Prefix Information Option) implementiert. Dies wird in den RA (IPv6 Router Advertisements) verwendet, um das Deployment-Modell für Clients über DHCPv6-PD (DHCPv6 Prefix Delegation, RFC9663) auszuwählen, anstelle von einzelnen Adressen basierend auf Prefixen mittels SLAAC (Stateless Address Autoconfiguration). In IPv6 IOAM6 wurde die Unterstützung eines neuen Encapsulationsmodus "tunsrc" hinzugefügt, der eine höhere Leistung ermöglicht.
- Die Verarbeitung von Managementpaketen für IPsec wurde leistungsstärker gestaltet.
- Die Leistung beim Zurücksetzen (Flush) großer Regelsets für nftables wurde verbessert. Die Unterstützung für das SCTP-Protokoll in nfnetlink_queue wurde optimiert.
- In der API von ethtool wurde die Möglichkeit hinzugefügt, mehrere Netzwerkkarten einem einzelnen Netzwerkinterface zuzuordnen.
- Ausrüstung
- Im AMDGPU-Treiber wurde die Unterstützung für die GPU AMD RDNA4 ("GFX12") weiter ausgebaut. Zudem wurde die Möglichkeit hinzugefügt, einzelne Task-Queues zurückzusetzen, ohne den gesamten GPU-Zustand zurückzusetzen.
- Die Entwicklung des DRM-Treibers (Direct Rendering Manager) für die Xe-GPU-Architektur von Intel, die in Arc-Grafikkarten und integrierten Grafikeinheiten ab den Tiger-Lake-Prozessoren verwendet wird, wurde fortgesetzt. In der neuen Version wird die Unterstützung für GPUs auf Basis der Mikroarchitekturen Battlemage und Lunar Lake integriert. Außerdem wurde die Unterstützung für CCS-Modifizierer (Color Control Surface) Xe2 zur Verwaltung der Parameter für integrierte und dedizierte GPUs vorgestellt.
- Im i915-Treiber wurde die Möglichkeit implementiert, über die HWMON- oder sysfs-Schnittstelle (Attribut „fan1_input“) Informationen zur Drehgeschwindigkeit des Lüfters auszugeben. Der Parameter „i915.modeset“ wurde als veraltet erklärt; anstelle von „i915.modeset=0“ sollte nun „i915.nomodeset“ verwendet werden.
- Im DRM-Treiber msm (Qualcomm Adreno GPU) 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 steuert, wurde die Unterstützung für hybride Systeme mit asymmetrischen (unterschiedlichen Eigenschaften aufweisenden) CPUs hinzugefügt, sowie die Unterstützung für die Energieverwaltung der Prozessoren auf Basis der Mikroarchitekturen Granite Rapids und Sierra Forest. Im Treiber intel_idle wurde die Unterstützung für die CPU Xeon Granite Rapids hinzugefügt. Im Treiber intel_rapl wurde die Erkennung von Prozessen der AMD-Familie 1Ah und Intel ArrowLake-U Prozessoren sichergestellt.
- Die Änderungen zur Unterstützung des ARM SoC Snapdragon X Elite, welcher einen eigenen 12-Kern-CPU Qualcomm Oryon und GPU Qualcomm Adreno verwendet, wurden fortgesetzt. Der Chip zielt auf den Einsatz in Laptops und PCs ab und übertrifft in vielen Leistungstests die Chips Apple M3 und Intel Core Ultra 155H.
- Die Unterstützung für ARM-Plattformen, SoCs und Geräte wurde erweitert: 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.
- Unterstützung für Anbernic RG28XX Bildschirme, 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.
- Die Audiokomponente unterstützt jetzt Chips und Codecs wie RME Digiface USB, AMD ACP 7.1, Mediatek MT6367, MT8365, Realtek RTL1320, C-Media CM9825. Alte Soundtreiber für ASoC Intel wurden als veraltet deklariert, und es wird empfohlen, die AVS-Treiber zu verwenden. Es wurden zahlreiche Verbesserungen am SoundWire-Treiber vorgenommen.
Quelle: opennet.ru
