Nach zwei Monaten Entwicklungsarbeit hat Linus Torvalds die Version 6.16 des Linux-Kernels vorgestellt. Zu den bemerkenswertesten Änderungen gehören: ein Treiber zur Beschleunigung von OpenVPN, der Kexec HandOver-Mechanismus, die Standardaktivierung von fünfstufigen Seiten-Tabelle für x86, die Entfernung des DCCP-Protokolls, der Blocktreiber zloop, die Möglichkeit, Core-Dumps über UNIX-Sockets zu versenden, Unterstützung für atomare Schreibvorgänge in XFS, offload-Verarbeitung von Audiodaten für USB-Geräte, Optimierungen in Ext4, ein virtueller TPM (Trusted Platform Module)-Treiber, eine vollständige Implementierung von Device Memory TCP, die Unterstützung für nicht benannte Rohrleitungen in io_uring, Vorbereitungen zur Integration des DRM-Treibers Asahi, den „usermode queue“-Mechanismus im AMDGPU-Treiber, die Unterstützung von Intel TDE (Trusted Domain Extensions) und Intel APE (Advanced Performance Extensions).
In die neue Version wurden 15.924 Korrekturen von 2.145 Entwicklern integriert. Die Patch-Größe beträgt 50 MB (es wurden 13.793 Dateien geändert, 655.451 Code-Zeilen hinzugefügt und 316.441 Zeilen entfernt). Im vorherigen Release gab es 15.945 Korrekturen von 2.154 Entwicklern, die Patch-Größe betrug 59 MB. Etwa 45 % aller Änderungen in 6.16 betreffen Treiber, etwa 16 % beziehen sich auf die Aktualisierung von architekturspezifischem Code, 13 % stehen im Zusammenhang mit dem Netzwerk-Stack, 4 % betreffen Dateisysteme und 3 % interne Kernel-Subsysteme.
Die wichtigsten Neuerungen im Kernel 6.16:
- Festplattensubsystem, Ein-/Ausgabe und Dateisysteme
- Der zloop-Treiber wurde hinzugefügt, um zonierte Block-Loopback-Geräte im Loop-Modus zu erstellen. Der Treiber emuliert die Funktionsweise herkömmlicher Blockgeräte, indem er mehrere Dateien aus einem bestehenden Dateisystem verwendet (jeweils eine Datei zur Speicherung jeder Zone). Diese Funktion kann nützlich sein, um Dateisysteme, Device-Mapper-Verarbeiter und Anwendungen auf die Unterstützung zonierter Geräte zu testen, die die Aufteilung in Gruppen von Blöcken oder Sektoren anwenden, in die Daten nur sequence-additiv geschrieben werden dürfen und deren gesamte Gruppe gleichzeitig aktualisiert wird.
- Im XFS-Dateisystem wurde die Unterstützung für atomare Schreibvorgänge großer Datenmengen implementiert – mehrere Blöcke können nun im atomaren Modus geschrieben werden (entweder werden alle Blöcke erfolgreich geschrieben oder keiner der Blöcke wird geschrieben).
- Im Ext4-Dateisystem wurde die Leistung des "fast commit"-Mechanismus verbessert. Die Unterstützung für große Speicherseiten (large folios) für reguläre Dateien wurde hinzugefügt, was in durchgeführten Tests die Leistung bei intensivem sequenziellen I/O um 37 % erhöhte. Zudem wurde die Unterstützung für atomare Schreiboperationen, die mehrere Blöcke umfassen, eingeführt.
- Im Treiber für das ext2-Dateisystem wurde die Unterstützung des DAX-Mechanismus, der direkten Zugriff auf das Dateisystem ohne Seiten-Cache ermöglicht, als veraltet erklärt. Die Entfernung von DAX aus dem ext2-Treiber ist für Ende des Jahres geplant. Als Grund wird die Betrachtung des ext2-Treibers als stabile Referenzimplementierung genannt, in der die Verwendung spezifischer, nicht weit verbreiteter Funktionen nicht zulässig ist.
- Die Dateisysteme OrangeFS, UFS, BFS und OMFS wurden auf die Nutzung der neuen API für das Einbinden von Partitionen umgestellt.
- In sysctl wurde die Einstellung vfs_cache_pressure_denom hinzugefügt, um die Anzahl der Einträge im „dentry“-Cache (interne Darstellung von Verzeichniselementen) bei speicherarmen Bedingungen zu steuern. Je höher der Wert, desto mehr Einträge können bei Speichermangel aus dem Cache verdrängt werden (weniger Einträge bleiben im Cache).
- In dem Dateisystem Bcachefs wurde die Option „rebalance_on_ac_only“ hinzugefügt, die das Ausführen von Rebalancing- und Hintergrundkomprimierungsoperationen bei Stromversorgung durch den Akku untersagt. Die Löschvorgänge von Snapshots und Geräten wurden beschleunigt. Der Speicherverbrauch beim Mounten im reinen Lese-Modus wurde reduziert. Es wurde die Möglichkeit hinzugefügt, bestimmte Wiederherstellungsoperationen nach einem Ausfall im Hintergrund durchzuführen, ohne die Arbeit mit dem Dateisystem zu unterbrechen.
- Der Energiesteuerungssystem wurde erlaubt, die Dateisysteme und EFI-Variablen eigenständig für den Standby- und Schlafmodus einzufrieren (wenn die Dateisysteme bereits durch den Benutzerraum-Handler eingefroren wurden, erfolgt kein erneutes Einfrieren).
- Die Möglichkeit zur Beschleunigung von EROFS wurde durch den in Intel-Prozessoren integrierten QAT (QuickAssist Technology) Accelerator hinzugefügt, der Werkzeuge zur Beschleunigung von Berechnungen im Zusammenhang mit Compression und Encryption bietet.
- In NFS wurde die maximale Größe des Datenchunks für Lese- und Schreibvorgänge von 1 MB auf 4 MB erhöht (Standardwert ist 1 MB, da nicht alle Clients größere Größen unterstützen).
- Unprivilegierten Nutzern mit CAP_SYS_ADMIN-Rechten in einem separaten Benutzer-Namensraum, jedoch ohne erweiterte Berechtigungen im Root-Namensraum, wurde die Nutzung des fanotify-Mechanismus zur Überwachung von Änderungen in Dateisystemen ermöglicht.
- Für Dateisysteme, die das FUSE-Subsystem verwenden, wurde die Funktionalität zur gleichzeitigen Bereinigung aller zwischengespeicherten Verzeichnispunkte (dentries) bereitgestellt. Das FUSE-Subsystem unterstützt jetzt große Seitenfolien im Speicher.
- In FS OverlayFS wurde die Unterstützung zur Erstellung von Datenschichten in unprivilegierten Namensräumen implementiert, für die eine Integritätsprüfung auf Basis des dm-verity-Moduls verwendet wird. Diese Funktion ermöglicht die Kombination von vertrauenswürdigen Schichten mit Metadaten und nicht vertrauenswürdigen Schichten mit Daten, die in unprivilegierten Namensräumen verarbeitet werden.
- Speicher und Systemdienste
- Ein KHO (Kexec HandOver)-Mechanismus wurde hinzugefügt, um einen neuen Kernel aus einem alten zu starten, ohne den Systemzustand zu verlieren. Vor der Übergabe der Kontrolle an die neue Kernelversion kann der Zustand wesentlicher Kernsubsysteme mithilfe von KHO in einem Speicherbereich serialisiert werden, der von nachfolgenden Operationen unberührt bleibt. Der neue Kernel stellt den serialisierten Zustand wieder her, nachdem er die Kontrolle übernommen hat. Auf Basis von KHO entwickelt sich das Live Update Orchestrator (LUO)-Subsystem, das es ermöglicht, den Kernel neu zu starten, ohne den Betrieb der Geräte zu unterbrechen.
- Ein neuer Kernel-Bauparameter CONFIG_X86_NATIVE wurde hinzugefügt, der es ermöglicht, bei der Kompilierung die Option „-march=native“ zu verwenden, um Optimierungen in Bezug auf die Möglichkeiten des Prozessors im aktuellen System vorzunehmen.
- Unterstützung für die Architektur-Erweiterung Intel APX (Advanced Performance Extension) hinzugefügt, die 16 zusätzliche allgemeine Register (neben den bereits vorhandenen 16) bereitstellt. Dies reduziert die Anzahl der Lese- und Schreiboperationen im Code und verbessert die Leistung sowie senkt den Energieverbrauch.
- Ein automatischer Modus zur Anpassung der Speicherverteilungspolitik in NUMA-Systemen wurde hinzugefügt. Dabei werden alle Knotengewichte neu berechnet, wenn neue Informationen zur Bandbreite während des Bootvorgangs oder beim heißen Anstecken von Speicher verfügbar sind.
- In der Implementierung von Futexen wurde Unterstützung für eine lokale Hash-Tabelle für Prozesse (local futex_hash_bucket) hinzugefügt. Im Gegensatz zur zuvor unterstützten gemeinsamen Hash-Tabelle für alle Prozesse ist sie lokal für einen einzelnen Prozess und wird von allen Threads dieses Prozesses gemeinsam genutzt. Lokale Hash-Tabellen werden ausschließlich für die Futex-Operation PROCESS_PRIVATE verwendet. Darüber hinaus wurden im neuen Release die Optionen FUTEX2_NUMA und FUTEX2_MPOL hinzugefügt, die die Platzierung von Futexen im Speicher beeinflussen, um sie näher an die Prozesse zu bringen, die sie verwenden.
- Für x86_64-Systeme wurde die permanente Unterstützung für fünf Ebenen der Seitenzweittabellen aktiviert (die Option CONFIG_X86_5LEVEL, die die Aktivierung der fünf Ebenen verwaltete, wurde entfernt).
- Der intel_pstate-Treiber, der die Energiemanagementparameter (P-State) für Systeme mit Intel-Prozessoren steuert, bietet nun Unterstützung für den energieeffizienten Aufgabenplaner (EAS – Energy Aware Scheduling) auf hybriden Prozessoren, die leistungsstarke und energieeffiziente CPU-Kerne kombiniert, wie zum Beispiel Intel Lunar Lake.
- Im sysfs wurden die Schnittstellen "/sys/devices/system/cpu/cpuN/cpu_capacity" zur Abfrage der Leistungsfähigkeit verschiedener CPU in hybriden Prozessoren und "/sys/devices/system/cpu/cpuidle/intel_c1_demotion" zur Steuerung der Möglichkeit hinzugefügt, CPU in einem leistungsfähigeren Zustand zu belassen, auch wenn der Kern versucht, die CPU in einen energieeffizienteren Zustand zu versetzen (zum Beispiel kann der Kern den Übergang in den C6-Energiesparmodus anfordern, aber die Firmware kann die CPU bei hoher Wachsamkeit im C1-Zustand belassen).
- Für die ARM64-Architektur wurde der Unterstützung für den Modus der lazy Preemption (PREEMPT_LAZY) hinzugefügt, der dem Modus der vollwertigen Preemption für Echtzeitanwendungen (RR/FIFO/DEADLINE) entspricht, jedoch die Preemption normaler Tasks (SCHED_NORMAL) bis zur Tick-Grenze verzögert.
- Für die ARM64-Architektur wurde die Unterstützung für die Nutzung von SME-Erweiterungen (Scalable Matrix Extension) hinzugefügt, die über den Parameter CONFIG_ARM64_SME aktiviert wird.
- Die Übertragung von Änderungen aus dem Rust-for-Linux-Zweig, die die Verwendung von Rust als zweite Sprache für die Entwicklung von Treibern und Kernelmodulen betreffen, wurde fortgesetzt (Rust-Unterstützung ist standardmäßig nicht aktiv und führt nicht dazu, dass Rust zu den obligatorischen Build-Abhängigkeiten des Kernels gehört). Für in Rust geschriebene Module besteht die Möglichkeit, configfs zu verwenden. Es wurden die notwendigen Abstraktionen für die Entwicklung von Grafiktreibern hinzugefügt. Die Funktionen der Module alloc, time, str, list, workqueue und page wurden erweitert. Die Unterstützung des Makros 'assert!' in KUnit-basierten Tests wurde hinzugefügt. Ein Satz von Abstraktionen zur Steuerung der CPU-Frequenz und zur Verwendung von APIs für das Energiemanagement wurde hinzugefügt. Unterstützung für die Datenstruktur 'xarray' wurde implementiert.
- Für die RISC-V-Architektur wurde die Implementierung des Systemaufrufs getrandom() unter Verwendung des vDSO-Mechanismus (virtual dynamic shared object) portiert. Dieser erlaubt es, den Systemaufrufhandler aus dem Kernel in den Benutzerspeicher zu verlagern und so Kontextwechsel zu vermeiden. In durchgeführten Tests beschleunigte diese Optimierung die Erzeugung von Zufallszahlen um das 17-fache. Zudem wurde für RISC-V die Unterstützung für die Vektorerweiterungen Zicbop, Zabha und Svinval umgesetzt, die in SiFive-Prozessoren verwendet werden.
- Für die LoongArch-Architektur wurde die maximale Anzahl an CPUs im System von 256 auf 2048 erhöht. Zudem wurde die Unterstützung für den Task-Scheduler SCHED_MC (Multicore) hinzugefügt.
- Es wurde die Möglichkeit eröffnet, Unix-Sockets zur Übertragung von Dateideskriptoren zu nutzen. Um diese Funktion für Anwendungen zu deaktivieren, können sie das Flag SO_PASSRIGHTS in setsockopt() verwenden.
- Es besteht nun die Möglichkeit, den Ringpuffer, der zur Nachverfolgung der Kernelaktivitäten verwendet wird, in den Benutzerspeicher zu mappen.
- Die Crash-Dump-Handler, die zur Erstellung eines Problemsberichts nach einem unerwarteten Kernel-Absturz verwendet werden, können jetzt die von dem fehlerhaften Kernel verwendeten LUKS-Schlüssel aktivieren, um Crash-Dumps in verschlüsselten Dateisystemen zu speichern.
- Im asynchronen Ein- und Ausgabe-System io_uring wurde die Operation IORING_OP_PIPE zur Erstellung von unbenannten Kanälen hinzugefügt, die dem Systemaufruf pipe2 ähnelt, jedoch die Verwendung fester Dateideskriptoren unterstützt.
- Eine neue Kernel-Befehlszeilenoption „rt_group_sched“ wurde hinzugefügt, um die Aktivierung des Planers für die Ausführung von Gruppen von Echtzeitaufgaben (SCHED_RR) zu steuern. Diese Option ähnelt der Einstellung RT_GROUP_SCHED in Kconfig.
- Für Geräte, die auf dem CXL-Bus (Compute Express Link) basieren und für den hochgeschwindigkeitsfähigen Austausch zwischen CPU und Speichereinheiten verwendet werden, wurde die Unterstützung für RAS-Erweiterungen (Reliability, Availability, Serviceability) implementiert, die verschiedene Methoden zur Fehlererkennung und -korrektur ermöglichen. CXL erlaubt den Anschluss neuer Speicherbereiche, die von externen Speichergeräten bereitgestellt werden, und deren Nutzung als zusätzliche Ressourcen des physischen Adressraums zur Erweiterung des Systemspeichers (DDR) oder des permanenten Speichers (PMEM).
- Die für den Kernel-Bau erforderliche minimale Version von GCC wurde für alle Architekturen auf die Version 8 angehoben. Auch die Version 2.30 des Pakets binutils ist nun mindestens erforderlich.
- Der Systemaufruf uselib(), der schon lange als veraltet gilt, wurde entfernt. Stattdessen wird mmap() verwendet, um den gemeinsamen Zugriff von Programmen auf gemeinsame Bibliotheken zu ermöglichen.
- Virtualisierung und Sicherheit
- Eine erste Unterstützung für den Einsatz des Intel TDX (Trusted Domain Extensions)-Mechanismus wurde hinzugefügt, um Gast-Systeme, die unter dem KVM-Hypervisor laufen, vor Eingriffen und Analysen durch den Administrator des Host-Systems sowie vor physischen Angriffen auf die Hardware zu schützen. Der Schutz erfolgt durch Verschlüsselung des Speichers. virtuellen Maschinen.
- Ein virtueller TPM (Trusted Platform Module)-Treiber wurde hinzugefügt, der es virtuellen Maschinen ermöglicht, mit TPM-Geräten zu interagieren, die durch das SVSM (Secure VM Service Module) emuliert werden.
- Die Möglichkeit zur Nutzung des GCC-Plugins randstruct, das das Layout von Datenstrukturen während des Kompilierungsschrittes randomisiert, wurde wiederhergestellt, um die Ausnutzung von Sicherheitsanfälligkeiten zu erschweren.
- Die Verwendung der IMA (Integrity Measurement Architecture)-Technologie zur Integritätsprüfung beim Start neuer Kernel mittels des Systemaufrufs kexec wurde ermöglicht.
- Es wurde daran gearbeitet, den Einfluss von SELinux auf die Leistung zu reduzieren. Um die Leistung zu verbessern, wurde ein Cache für die Ergebnisse der Zugriffsprüfungen auf Verzeichnisse hinzugefügt. In die Regeln genfscon wurde die Möglichkeit zur Verwendung von Masken integriert.
- Im Code für die Interaktion mit EFI wurde die Möglichkeit zur Einbettung der SBAT-Sektion (UEFI Secure Boot Advanced Targeting) mit Metadaten zu widerrufenen Versionen der Boot-Komponenten bereitgestellt.
- In den geladenen Modulen wurde die Sektion „.static_call_sites“ nach Abschluss der Initialisierung in den Nur-Lese-Modus versetzt.
- Für 64-Bit ARM-Systeme wurde im KVM-Hypervisor die Unterstützung für geschachtelte Virtualisierung implementiert (standardmäßig deaktiviert).
- Im KVM-Hypervisor wurde die Unterstützung für die Architektur RISC-V als stabil deklariert.
- Netzwerksubsystem
- Im Paket befindet sich der ovpn-Treiber, der die Leistung von OpenVPN erheblich steigert, indem er die Verschlüsselungs-, Paketverarbeitungs- und Kommunikationsmanagement-Operationen in den Linux-Kernel auslagert. Dieser Treiber beseitigt die Overheads, die mit Kontextwechseln verbunden sind, und ermöglicht eine Optimierung der Leistung durch direkten Zugriff auf die internen Kernel-APIs. Darüber hinaus verhindert er langsame Datenübertragungen zwischen Kernel und Benutzerspeicher (Verschlüsselung, Entschlüsselung und Routing werden vom Modul ohne das Senden von Daten an den Benutzerverarbeitungs-Handler durchgeführt).
- Im Device Memory TCP wurde die Unterstützung für das Senden von Daten aus dem Gerätespeicher (TX-Pfad) hinzugefügt. Zuvor war die Funktionalität zur Vereinfachung der Integration von Device Memory TCP in den Kernel nur auf die Annahme von Daten (RX-Pfad) beschränkt. Device Memory TCP ermöglicht die Nutzung von Netzwerk-Sockets für das direkte Senden von Inhalten aus dem Speicher eines Peripheriegeräts über das Netzwerk (Zero-Copy-Modus) sowie das direkte Platzieren von Inhalten aus Netzwerkpaketen im Speicherbereich des Geräts auf der Empfängerseite. Die in den Paketen übertragenen Daten werden von der Netzwerkkarte direkt in den Speicher des Peripheriegeräts (DMABUF) übertragen, beispielsweise in den Videospeicher der GPU, oder aus dem Speicher des Geräts direkt in die Netzwerkkarte, wobei die CPU umgangen wird, während die Paketköpfe in die regulären Kernel-Buffer gelangen.
- Die Möglichkeit, den Inhalt von Core-Dumps über den Socket AF_UNIX zu senden, wurde hinzugefügt, wodurch sicherere Core-Dump-Handler im Benutzerspeicher erstellt werden können, die nicht von privilegierten Prozessaufrufen des Kernels abhängen.
- Die Unterstützung des DCCP-Netzprotokolls (Datagram Congestion Control Protocol) wurde entfernt, da es sich nicht durchgesetzt hat und seit fünf Jahren im Kernel ohne Unterstützung verbleibt. Die Entfernung von DCCP aus dem Kernel beseitigt Hindernisse, die eine Überarbeitung der Datenstruktur inet_connection_sock zur Steigerung der Effizienz des TCP-Stacks behindern. Die Unterstützung von netfilter-Modulen zur Filterung von DCCP-Paketen bleibt erhalten.
- Um die Fehlerbehandlung bei der Verwendung von Sockets mit SO_PEERPIDFD zu vereinfachen, kann der Kernel jetzt pidfd für bereits beendete Prozesse übertragen (pidfd ist an spezifische Prozesse gebunden und wird im Gegensatz zu pid nicht erneut zugewiesen).
- Mit BPF ist es nun möglich, Handler für die Verwaltung von Paketwarteschlangen im Netzwerk-Stack (qdiscs) zu erstellen, um die Reihenfolge der Verarbeitung von Netzwerkpaketen zu beeinflussen.
- In dem Netzwerkdateisystem AFS wird GSSAPI (Generic Security Services API) zur Verwaltung der Verschlüsselung von Verbindungen zu Servern gearbeitet werden. YFS und OpenAFS verwendet.
- Eine umfangreiche Optimierung wurde vorgenommen. Die Organisation der Blockierungen für IPv6-Routing-Tabellen wurde überarbeitet (einige Routenvorgänge werden nun bis zu dreimal schneller ausgeführt). Die softwaregestützte Berechnung der Prüfziffern crc32c wurde beschleunigt. Die GRO-Engine für getunnelten UDP-Verkehr wurde um 10 % verbessert. Die automatische Anpassung des Empfangspuffers für TCP wurde optimiert und die standardmäßig angewendeten Limits erhöht (in durchgeführten Tests stieg die Bandbreite für einzelne Streams über einen 200 Gbit/s Kanal um 60 %).
- In Netfilter wurde die Möglichkeit hinzugefügt, Masken in den Namen der Netzwerkgeräte zu verwenden, die in netdev und flowtable eingesetzt werden. In die Infrastruktur von nft trace wurde Tracking-Informationen zu Verbindungen (conntrack) integriert. Die Extraktion von Tracking-Tabellen (conntrack) über procfs wurde beschleunigt.
- Ausrüstung
- Die Unterstützung für das Auslagern der Verarbeitung von Audio-Streams auf USB-Audiogeräte (USB-Audio-Offload) wurde hinzugefügt. Diese Änderung ermöglicht eine signifikante Reduzierung des Energieverbrauchs von tragbaren Geräten, indem die Verarbeitung des Audio-Streams fortgesetzt wird, während der Rest des Systems in den Ruhezustand versetzt ist. Zuvor gab es spezifische Implementierungen des Audio-Offloads für USB-Geräte in den Android-Kernen, aber jetzt ist eine universelle Implementierung im Hauptkernel verfügbar, die von jedem Projekt genutzt werden kann.
- Die Integration der Nova-Treiberkomponenten für NVIDIA-GPUs, die mit GSP-Firmware ausgestattet sind und seit der NVIDIA GeForce RTX 2000-Serie auf der Turing-Architektur verwendet werden, wurde fortgesetzt. Der Treiber ist in Rust geschrieben. Neben der im letzten Release hinzugefügten nova-core-Komponente, die eine grundlegende Abstraktionsebene für die Schnittstellen der GSP-Firmware implementiert, enthält die Version 6.16 eine erste Implementierung des DRM-Treibers nova-drm (Direct Rendering Manager) für die Interaktion mit der GPU aus dem Benutzerspeicher.
- Der Prozess zur Integration des DRM-Treibers Asahi für die Apple AGX GPUs, die in Apple Silicon Chips verwendet werden, hat begonnen. Der Treiber ist in Rust geschrieben. In diesem Stadium sind bisher nur die Header-Dateien mit UAPI vom Asahi-Treiber, die für Mesa erforderlich sind, in den Kernel integriert; der Hauptcode des Asahi-Treibers wird später integriert.
- Die Unterstützung für NVIDIA GPUs der Hopper- und Blackwell-Baureihen wurde im Nouveau-Treiber hinzugefügt.
- Die Arbeiten am drm-Treiber (Direct Rendering Manager) Xe für GPUs auf Basis der Intel Xe-Architektur, die in den Grafikkarten der Intel Arc-Familie und in integrierter Grafik ab den Tiger Lake-Prozessoren verwendet wird, wurden fortgesetzt. Es wurde die Möglichkeit hinzugefügt, unterschiedliche Firmware-Dateien für verschiedene Intel GPU-Familien zu verwenden.
- Im AMDGPU-Treiber wurde die Unterstützung für den Mechanismus „usermode queue“ implementiert, der es ermöglicht, eigene Arbeitswarteschlangen im Benutzermodus zu erstellen und diese direkt an die GPU zu senden, ohne den Scheduler im Kernel zu konsultieren. Die Unterstützung für die „usermode queue“ ist für die GPUs der Navi 4X und GFX 12 aktiviert.
- Die Unterstützung für Audiosysteme wie Intel WCL (Whiskey Lake), AMD ACP 7.x (Audio Co-Processor), Cirrus Logic CS35L63 und CS48L32, Everest Semiconductor ES8375 und ES8389, Pioneer DJM-V10, Longsoon-1 AC’97, NVIDIA Tegra264, Richtek ALC203, RT9123 und Rockchip SAI sowie neue Intel AVS-Plattformen wurde hinzugefügt.
- Unterstützung für ARM-Plattformen, SoCs und Geräte hinzugefügt: Samsung Exynos7870, Qualcomm Snapdragon X1P42100, Qualcomm MSM8926, RK3562, NXP i.MX94, Renesas RZ/V2N, Amlogic S6/S7/S7D, WonderMedia wm8950, Amlogic s805y, Allwinner A523, Toradex Verdin AM62P, ROCK 5B+, Nitrogen8M Plus, Retronix R-Car V4H Sparrow Hawk, MT8186 Ponyta Chromebook, VIA APC Rock/Paper, Renesas rz/t2h, ASUS Transformer Pad LTE TF300TL, LG Nexus 4, Google Pixel 4a, Raspberry Pi 2.
- Treiber für Videoaufnahmekarten mit STA2X11-Chips entfernt.
Gleichzeitig hat die lateinamerikanische Free Software Foundation eine vollständig freie Kernel-Version 6.16 – Linux-libre 6.16-gnu – erstellt, die von Elementen von Firmwaren und Treibern, die nicht-freie Komponenten oder Codebereiche enthalten, befreit ist, deren Verwendung durch den Hersteller eingeschränkt ist. In der Version 6.16 wurde das Laden von Blobs in den neuen Intel qat 6xxx-Kryptografie-Treibern, dem ST vd55g1-Sensor, dem ath12k AHB-WLAN, Aeonsemi AS21xxx und dem MediaTek 25Gb-Ethernet neutralisiert. Die Bereinigung der Blob-Namen in den dts-Dateien (Device Tree) für ARM-Chips von Qualcomm und MediaTek wurde durchgeführt. Der Code zur Bereinigung von Blobs in den Treibern Nova Core, Nouveau, Realtek r8169 Ethernet, Qualcomm Iris, Venus, Mediatek mt7996 WLAN, Qualcomm ath11k und ath12k WLAN, Texas Instruments tas2781 und Renesas R-Car gen4 PCIe wurde aktualisiert.
Quelle: opennet.ru
