Linux 5.18-Kernel-Release

Nach zweimonatiger Entwicklungszeit präsentierte Linus Torvalds die Veröffentlichung des Linux-Kernels 5.18. Zu den bemerkenswertesten Änderungen gehören: Es wurde eine umfassende Bereinigung veralteter Funktionen durchgeführt, das Reiserfs FS wurde für veraltet erklärt, Benutzerprozessverfolgungsereignisse wurden implementiert, Unterstützung für den Mechanismus zum Blockieren von Intel IBT-Exploits wurde hinzugefügt, ein Pufferüberlauferkennungsmodus wurde aktiviert, wenn Mithilfe der Funktion memcpy() wurde ein Mechanismus zum Verfolgen von fprobe-Funktionsaufrufen hinzugefügt. Die Leistung des Taskplaners auf AMD Zen-CPUs wurde verbessert. Ein Treiber zur Verwaltung der Intel-CPU-Funktionalität (SDS) wurde hinzugefügt. Einige Patches wurden integriert zur Umstrukturierung von Header-Dateien und die Verwendung des C11-Standards wurde genehmigt.

Die neue Version enthält 16206 Fixes von 2127 Entwicklern (im letzten Release waren es 14203 Fixes von 1995 Entwicklern), die Patchgröße beträgt 108 MB (die Änderungen betrafen 14235 Dateien, 1340982 Zeilen Code wurden hinzugefügt, 593836 Zeilen wurden gelöscht). Etwa 44 % aller in 5.18 eingeführten Änderungen beziehen sich auf Gerätetreiber, etwa 16 % der Änderungen beziehen sich auf die Aktualisierung von Code, der für Hardwarearchitekturen spezifisch ist, 11 % beziehen sich auf den Netzwerkstapel, 3 % beziehen sich auf Dateisysteme und 3 % beziehen sich auf beziehen sich auf interne Kernel-Subsysteme.

Wichtige Neuerungen im Kernel 5.18:

  • Festplattensubsystem, E/A und Dateisysteme
    • Das Btrfs-Dateisystem bietet jetzt Unterstützung für die Weiterleitung komprimierter Daten beim Ausführen von Sende- und Empfangsvorgängen. Bisher dekomprimierte bei der Verwendung von Senden/Empfangen die sendende Seite die in komprimierter Form gespeicherten Daten und die empfangende Seite komprimierte sie erneut, bevor sie geschrieben wurde. Im 5.18-Kernel wurde User-Space-Anwendungen, die Sende-/Empfangsaufrufe verwenden, die Möglichkeit gegeben, komprimierte Daten ohne Neuverpackung zu übertragen. Die Funktionalität wird dank der neuen ioctl-Operationen BTRFS_IOC_ENCODED_READ und BTRFS_IOC_ENCODED_WRITE implementiert, mit denen Sie Informationen direkt in Extents lesen und schreiben können.

      Darüber hinaus verbessert Btrfs die fsync-Leistung. Es wurde die Möglichkeit hinzugefügt, den gesamten Speicher zu deduplizieren und Reflink (Klonen von Dateimetadaten durch Erstellen eines Links zu vorhandenen Daten, ohne diese tatsächlich zu kopieren) durchzuführen, nicht nur auf Bereitstellungspunkte beschränkt.

    • Im Direct I/O-Modus ist es möglich, auf verschlüsselte Dateien zuzugreifen, wenn fscrypt Inline-Verschlüsselung verwendet, bei der Verschlüsselungs- und Entschlüsselungsvorgänge vom Laufwerkscontroller und nicht vom Kernel durchgeführt werden. Mit der regulären Kernel-Verschlüsselung ist der Zugriff auf verschlüsselte Dateien über Direct I/O immer noch nicht möglich, da der Zugriff auf Dateien unter Umgehung des Puffermechanismus im Kernel erfolgt.
    • Der NFS-Server unterstützt standardmäßig das NFSv3-Protokoll, das jetzt keine separate Aktivierung erfordert und verfügbar ist, wenn NFS allgemein aktiviert ist. NFSv3 gilt als die wichtigste und immer unterstützte Version von NFS, und die Unterstützung für NFSv2 wird möglicherweise in Zukunft eingestellt. Die Effizienz beim Lesen von Verzeichnisinhalten wurde deutlich verbessert.
    • Das ReiserFS-Dateisystem ist veraltet und wird voraussichtlich im Jahr 2025 entfernt. Durch die Abschaffung von ReiserFS verringert sich der Aufwand, der erforderlich ist, um dateisystemweite Änderungen im Zusammenhang mit der Unterstützung der neuen API für Mounten, iomap und Tomes beizubehalten.
    • Für das F2FS-Dateisystem wurde die Möglichkeit implementiert, Benutzer-IDs von gemounteten Dateisystemen abzubilden, die dazu dient, die Dateien eines bestimmten Benutzers auf einer gemounteten Fremdpartition mit einem anderen Benutzer auf dem aktuellen System zu vergleichen.
    • Der Code zur Berechnung von Statistiken in Device-Mapper-Handlern wurde überarbeitet, was die Genauigkeit der Abrechnung in Handlern wie dm-crypt deutlich verbessert hat.
    • NVMe-Geräte unterstützen jetzt 64-Bit-Prüfsummen zur Integritätsprüfung.
    • Für das Exfat-Dateisystem wurde eine neue Mount-Option „keep_last_dots“ vorgeschlagen, die das Löschen von Punkten am Ende des Dateinamens deaktiviert (in Windows werden Punkte am Ende des Dateinamens standardmäßig entfernt).
    • EXT4 verbessert die Leistung des fast_commit-Modus und erhöht die Skalierbarkeit. Die Mount-Option „mb_optimize_scan“, die eine Leistungssteigerung bei großer Fragmentierung des Dateisystems ermöglicht, ist für die Arbeit mit Dateien mit Extents angepasst.
    • Die Unterstützung für Schreibströme im Subsystem, das Blockgeräte unterstützt, wurde eingestellt. Diese Funktion wurde für SSDs vorgeschlagen, war jedoch nicht weit verbreitet und derzeit sind keine Geräte im Einsatz, die diesen Modus unterstützen, und es ist unwahrscheinlich, dass sie in Zukunft verfügbar sein werden.
  • Speicher- und Systemdienste
    • Die Integration einer Reihe von Patches hat begonnen, wodurch die Zeit für die Neuerstellung des Kernels erheblich verkürzt werden kann, indem die Hierarchie der Header-Dateien neu strukturiert und die Anzahl der gegenseitigen Abhängigkeiten verringert wird. Kernel 5.18 enthält Patches, die die Struktur der Taskplaner-Headerdateien (kernel/sched) optimieren. Im Vergleich zur vorherigen Version wurde der CPU-Zeitverbrauch beim Zusammenstellen von Kernel/Sched/Code um 61 % reduziert und die tatsächliche Zeit sank um 3.9 % (von 2.95 auf 2.84 Sekunden).
    • Der Kernel-Code darf den 11 veröffentlichten C2011-Standard verwenden. Zuvor musste der dem Kernel hinzugefügte Code der 89 erstellten ANSI C (C1989)-Spezifikation entsprechen. In den 5.18-Kernel-Build-Skripten wurde die Option „—std=gnu89“ durch „—std=gnu11 -Wno-shift-negative-value“ ersetzt. Die Möglichkeit der Verwendung des C17-Standards wurde in Betracht gezogen, in diesem Fall wäre es jedoch notwendig, die unterstützte Mindestversion von GCC zu erhöhen, während die Einbeziehung der C11-Unterstützung zu den aktuellen Anforderungen für die GCC-Version (5.1) passt.
    • Verbesserte Aufgabenplanungsleistung auf AMD-Prozessoren mit Zen-Mikroarchitektur, die mehrere Last Level Cache (LLC) für jeden Knoten mit lokalen Speicherkanälen bereitstellen. Die neue Version beseitigt das LLC-Ungleichgewicht zwischen NUMA-Knoten, was zu einer erheblichen Leistungssteigerung bei einigen Arten von Workloads führte.
    • Tools zum Tracing von Anwendungen im Userspace wurden erweitert. Die neue Kernel-Version bietet Benutzerprozessen die Möglichkeit, Benutzerereignisse zu erstellen und Daten in den Trace-Puffer zu schreiben, die über Standard-Kernel-Tracing-Dienstprogramme wie ftrace und perf angezeigt werden können. Benutzerbereichs-Trace-Ereignisse sind von Kernel-Trace-Ereignissen isoliert. Der Ereignisstatus kann über die Datei /sys/kernel/debug/tracing/user_events_status angezeigt werden, die Ereignisregistrierung und Datenaufzeichnung über die Datei /sys/kernel/debug/tracing/user_events_data.
    • Mechanismus zur Überwachung (Probe) von Funktionsaufrufen hinzugefügt – fprobe. Die fprobe-API basiert auf ftrace, ist jedoch nur durch die Möglichkeit eingeschränkt, Callback-Handler an Funktionseintrittspunkte und Funktionsaustrittspunkte anzuhängen. Im Gegensatz zu kprobes und kretprobes können Sie mit dem neuen Mechanismus einen Handler für mehrere Funktionen gleichzeitig verwenden.
    • Die Unterstützung für ältere ARM-Prozessoren (ARMv4 und ARMv5), die nicht mit einer Speicherverwaltungseinheit (MMU) ausgestattet sind, wurde eingestellt. Die Unterstützung für ARMv7-M-Systeme ohne MMU bleibt erhalten.
    • Die Unterstützung für die RISC-ähnliche NDS32-Architektur, die in Andes Technologies-Prozessoren verwendet wird, wurde eingestellt. Der Code wurde aufgrund mangelnder Wartung und mangelnder Nachfrage nach NDS32-Unterstützung im Haupt-Linux-Kernel entfernt (die verbleibenden Benutzer verwenden spezielle Kernel-Builds von Hardwareherstellern).
    • Standardmäßig ist die Erstellung des Kernels mit Unterstützung für das ausführbare Dateiformat a.out für die Alpha- und m68k-Architekturen deaktiviert, die dieses Format weiterhin verwenden. Es ist wahrscheinlich, dass die Unterstützung für das alte a.out-Format bald vollständig aus dem Kernel entfernt wird. Pläne zur Entfernung des a.out-Formats werden seit 2019 diskutiert.
    • Die PA-RISC-Architektur bietet minimale Unterstützung für den vDSO-Mechanismus (Virtual Dynamic Shared Objects), der eine begrenzte Anzahl von Systemaufrufen im Benutzerbereich ohne Kontextwechsel bereitstellt. Durch die vDSO-Unterstützung konnte die Möglichkeit implementiert werden, mit einem nicht ausführbaren Stack ausgeführt zu werden.
    • Unterstützung für den Intel HFI-Mechanismus (Hardware Feedback Interface) hinzugefügt, der es der Hardware ermöglicht, Informationen über die aktuelle Leistung und Energieeffizienz jeder CPU an den Kernel zu übertragen.
    • Ein Treiber für den Intel SDSi-Mechanismus (Software-Defined Silicon) wurde hinzugefügt, mit dem Sie die Aufnahme zusätzlicher Funktionen in den Prozessor steuern können (z. B. spezielle Anweisungen und zusätzlichen Cache-Speicher). Die Idee besteht darin, dass Chips mit gesperrten erweiterten Funktionen zu einem niedrigeren Preis geliefert werden können, die dann „gekauft“ und zusätzliche Funktionen aktiviert werden können, ohne dass der Chip ausgetauscht werden muss.
    • Der amd_hsmp-Treiber wurde hinzugefügt, um die AMD HSMP-Schnittstelle (Host System Management Port) zu unterstützen, die über eine Reihe spezieller Register, die in AMD EPYC-Serverprozessoren ab der Fam19h-Generation vorhanden sind, Zugriff auf Prozessorverwaltungsfunktionen ermöglicht. Über HSMP können Sie beispielsweise Daten zu Stromverbrauch und Temperatur abrufen, Frequenzgrenzen festlegen, verschiedene Leistungssteigerungsmodi aktivieren und Speicherparameter verwalten.
    • Die asynchrone E/A-Schnittstelle io_uring implementiert die Option IORING_SETUP_SUBMIT_ALL, um einen Satz Dateideskriptoren in einem Ringpuffer zu registrieren, und die Operation IORING_OP_MSG_RING, um ein Signal von einem Ringpuffer an einen anderen Ringpuffer zu senden.
    • Der DAMOS-Mechanismus (Data Access Monitoring-based Operation Schemes), der die Freigabe von Speicher unter Berücksichtigung der Häufigkeit des Speicherzugriffs ermöglicht, verfügt über erweiterte Funktionen zur Überwachung von Speichervorgängen aus dem Benutzerbereich.
    • Eine dritte Reihe von Patches wurde mit der Implementierung des Konzepts der Seitenfolios integriert, die zusammengesetzten Seiten ähneln, aber eine verbesserte Semantik und eine klarere Arbeitsorganisation aufweisen. Durch die Verwendung von Tomes können Sie die Speicherverwaltung in einigen Kernel-Subsystemen beschleunigen. In den vorgeschlagenen Patches wurden interne Speicherverwaltungsfunktionen in Folios übersetzt, einschließlich Variationen der Funktion get_user_pages(). Unterstützung für die Erstellung großer Volumina in Read-Ahead-Code bereitgestellt.
    • Das Assembly-System unterstützt jetzt die Umgebungsvariablen USERCFLAGS und USERLDFLAGS, mit denen Sie zusätzliche Flags an den Compiler und Linker übergeben können.
    • Im eBPF-Subsystem bietet der BTF-Mechanismus (BPF Type Format), der Informationen zur Typprüfung im BPF-Pseudocode bereitstellt, die Möglichkeit, Anmerkungen zu Variablen hinzuzufügen, die auf Speicherbereiche im Benutzerbereich verweisen. Anmerkungen helfen dem BPF-Code-Verifizierungssystem, Speicherzugriffe besser zu identifizieren und zu überprüfen.
    • Es wurde ein neuer Speicherzuweisungshandler zum Speichern geladener BPF-Programme vorgeschlagen, der eine effizientere Speichernutzung in Situationen ermöglicht, in denen eine große Anzahl von BPF-Programmen geladen ist.
    • Dem Systemaufruf madvise() wurde das Flag MADV_DONTNEED_LOCKED hinzugefügt, das Tools zur Optimierung der Prozessspeicherverwaltung bereitstellt und das bestehende Flag MADV_DONTNEED ergänzt, mit dem der Kernel im Voraus über die bevorstehende Freigabe eines Speicherblocks informiert werden kann, d. h. dass dieser Block nicht mehr benötigt wird und vom Kernel verwendet werden kann. Im Gegensatz zu MADV_DONTNEED ist die Verwendung des Flags MADV_DONTNEED_LOCKED für im RAM gepinnte Speicherseiten zulässig, die beim Aufruf von madvise ohne Änderung ihres gepinnten Status entfernt werden und im Falle eines späteren Zugriffs auf den Block und der Generierung einer „Seite Fehler“ werden mit erhaltener Bindung zurückgesandt. Darüber hinaus wurde eine Änderung hinzugefügt, um die Verwendung des MADV_DONTNEED-Flags mit großen Speicherseiten in HugeTLB zu ermöglichen.
  • Virtualisierung und Sicherheit
    • Für die x86-Architektur wurde Unterstützung für den Befehlsflussschutzmechanismus Intel IBT (Indirect Branch Tracking) hinzugefügt, der die Verwendung von Exploit-Konstruktionstechniken unter Verwendung rückgabeorientierter Programmiertechniken (ROP, Return-Oriented Programming) verhindert, in denen der Exploit ausgeführt wird wird in Form einer Kette von bereits im Speicher vorhandenen Aufrufen von Teilen von Maschinenanweisungen gebildet, die mit einer Steuerrückgabeanweisung enden (in der Regel sind dies die Enden von Funktionen). Der Kern der implementierten Schutzmethode besteht darin, indirekte Übergänge zum Hauptteil einer Funktion zu blockieren, indem am Anfang der Funktion eine spezielle ENDBR-Anweisung hinzugefügt wird und die Ausführung eines indirekten Übergangs nur im Falle eines Übergangs zu dieser Anweisung (einer indirekten) zulässig ist Der Aufruf über JMP und CALL muss immer auf die ENDBR-Anweisung fallen, die ganz am Anfang der Funktionen steht.
    • Eine strengere Überprüfung der Puffergrenzen in den Funktionen memcpy(), memmove() und memset() wurde aktiviert, die zur Kompilierungszeit durchgeführt wird, wenn der Modus CONFIG_FORTIFY_SOURCE aktiviert ist. Die zusätzliche Änderung läuft darauf hinaus, zu prüfen, ob Elemente von Strukturen, deren Größe bekannt ist, über die Grenzen hinausgehen. Es wird darauf hingewiesen, dass die implementierte Funktion das Blockieren aller memcpy()-bezogenen Kernel-Pufferüberläufe ermöglichen würde, die in mindestens den letzten drei Jahren festgestellt wurden.
    • Der zweite Teil des Codes für die aktualisierte Implementierung des Pseudozufallszahlengenerators RDRAND hinzugefügt, der für den Betrieb der Geräte /dev/random und /dev/urandom verantwortlich ist. Die neue Implementierung zeichnet sich dadurch aus, dass sie die Funktionsweise von /dev/random und /dev/urandom vereinheitlicht, einen Schutz gegen das Auftreten von Duplikaten im Strom von Zufallszahlen beim Starten virtueller Maschinen bietet und auf die Verwendung der BLAKE2s-Hash-Funktion anstelle von SHA1 umstellt Entropiemischungsoperationen. Die Änderung verbesserte die Sicherheit des Pseudozufallszahlengenerators, indem der problematische SHA1-Algorithmus eliminiert und das Überschreiben des RNG-Initialisierungsvektors beseitigt wurde. Da der BLAKE2s-Algorithmus SHA1 in der Leistung überlegen ist, wirkte sich sein Einsatz auch positiv auf die Leistung aus.
    • Für die ARM64-Architektur wurde Unterstützung für einen neuen Zeigerauthentifizierungsalgorithmus hinzugefügt – „QARMA3“, der schneller als der QARMA-Algorithmus ist und gleichzeitig das richtige Sicherheitsniveau beibehält. Mit dieser Technologie können Sie spezielle ARM64-Anweisungen verwenden, um Rücksprungadressen mithilfe digitaler Signaturen zu überprüfen, die in den nicht verwendeten oberen Bits des Zeigers selbst gespeichert sind.
    • Für die ARM64-Architektur wurde Unterstützung für Assembly implementiert, indem in GCC 12 ein Schutzmodus gegen Überschreiben der Rücksprungadresse einer Funktion im Falle eines Pufferüberlaufs auf dem Stapel aufgenommen wurde. Der Kern des Schutzes besteht darin, die Rücksprungadresse in einem separaten „Schatten“-Stack zu speichern, nachdem die Kontrolle an eine Funktion übergeben wurde, und diese Adresse vor dem Beenden der Funktion abzurufen.
    • Ein neuer Schlüsselring hinzugefügt – „Machine“, der die Systembesitzerschlüssel (MOK, Machine Owner Keys) enthält und im Shim-Bootloader unterstützt wird. Diese Schlüssel können zum digitalen Signieren von Kernelkomponenten verwendet werden, die in einer Post-Boot-Phase geladen werden (z. B. Kernelmodule).
    • Die Unterstützung für asymmetrische private Schlüssel für TPMs, die in einer älteren TPM-Version angeboten wurden, bekannte Sicherheitsprobleme aufwiesen und in der Praxis nicht weit verbreitet waren, wurde entfernt.
    • Schutz von Daten mit Typ size_t vor Ganzzahlüberläufen hinzugefügt. Der Code enthält die Handler size_mul(), size_add() und size_sub(), mit denen Sie Größen mit dem Typ size_t sicher multiplizieren, addieren und subtrahieren können.
    • Beim Erstellen des Kernels sind die Flags „-Warray-bounds“ und „-Wzero-length-bounds“ aktiviert, die Warnungen anzeigen, wenn der Index über die Array-Grenze hinausgeht und wenn Arrays mit der Länge Null verwendet werden.
    • Das Virtio-Crypto-Gerät bietet jetzt Unterstützung für die Verschlüsselung mithilfe des RSA-Algorithmus.
  • Netzwerk-Subsystem
    • Bei der Implementierung von Netzwerkbrücken wurde Unterstützung für den Portbindungsmodus (gesperrter Modus) hinzugefügt, bei dem der Benutzer Datenverkehr nur von einer autorisierten MAC-Adresse über den Port senden kann. Außerdem wurde die Möglichkeit hinzugefügt, mehrere Strukturen zur Auswertung des Zustands des STP-Protokolls (Spanning Tree Protocol) zu verwenden. Bisher konnten VLANs nur direkt STP (1:1) zugeordnet werden, wobei jedes VLAN unabhängig verwaltet wurde. Die neue Version fügt den Parameter mst_enable hinzu. Wenn er aktiviert ist, wird der Zustand von VLANs durch das MST-Modul (Multiple Spanning Trees) gesteuert und die Bindung von VLANs kann dem M:N-Modell entsprechen.
    • Die Arbeit an der Integration von Tools in den Netzwerkstapel zur Verfolgung der Gründe für das Verwerfen von Paketen (Ursachencodes) wurde fortgesetzt. Der Ursachencode wird gesendet, wenn der mit dem Paket verbundene Speicher freigegeben wird, und berücksichtigt Situationen wie das Verwerfen von Paketen aufgrund von Header-Fehlern, die Erkennung von rp_filter-Spoofing, eine ungültige Prüfsumme, nicht genügend Speicher, ausgelöste IPSec-XFRM-Regeln, eine ungültige TCP-Sequenznummer usw.
    • Es ist möglich, Netzwerkpakete von BPF-Programmen, die aus dem Userspace gestartet wurden, im BPF_PROG_RUN-Modus zu übertragen, in dem BPF-Programme im Kernel ausgeführt werden, das Ergebnis aber an den Userspace zurückgeben. Pakete werden über das XDP-Subsystem (eXpress Data Path) übertragen. Der Live-Paketverarbeitungsmodus wird unterstützt, bei dem der XDP-Prozessor Netzwerkpakete im Handumdrehen an den Netzwerkstapel oder an andere Geräte umleiten kann. Es ist auch möglich, Software-Generatoren für externen Datenverkehr zu erstellen oder Netzwerk-Frames im Netzwerk-Stack zu ersetzen.
    • Für BPF-Programme, die an Netzwerk-Cgroups angehängt sind, wurden Hilfsfunktionen vorgeschlagen, um den Rückgabewert von Systemaufrufen explizit festzulegen, was es ermöglicht, umfassendere Informationen über die Gründe für die Blockierung eines Systemaufrufs zu übermitteln.
    • Das XDP-Subsystem (eXpress Data Path) hat Unterstützung für fragmentierte Pakete hinzugefügt, die in mehreren Puffern abgelegt werden. Dadurch können Sie Jumbo-Frames in XDP verarbeiten und TSO/GRO (TCP Segmentation Offload/Generic Receive Offload) für XDP_REDIRECT verwenden.
    • Der Prozess zum Löschen von Netzwerk-Namespaces wurde erheblich beschleunigt, was auf einigen großen Systemen mit großem Datenverkehr gefragt war.
  • Ausrüstung
    • Der amdgpu-Treiber umfasst standardmäßig die adaptive FreeSync-Synchronisierungstechnologie, mit der Sie die Aktualisierungsrate der Informationen auf dem Bildschirm anpassen können, um beim Spielen und Ansehen von Videos flüssige und ruckelfreie Bilder zu gewährleisten. Die Aldebaran-GPU-Unterstützung wurde als stabil angekündigt.
    • Der i915-Treiber bietet Unterstützung für Intel Alderlake N-Chips und separate Intel DG2-G12-Grafikkarten (Arc Alchemist).
    • Der Nouveau-Treiber bietet Unterstützung für höhere Bitraten für DP/eDP-Schnittstellen und Unterstützung für Lttprs-Kabelverlängerungen (Link-Training Tunable PHY Repeaters).
    • Im drm-Subsystem (Direct Rendering Manager) in den Treibern Armada, Exynos, GMA500, HyperV, IMX, Ingenic, McDE, Mediatek, MSM, Omap, Rcar-Du, Rockchip, Sprd, Sti, Tegra, Tilcdc, Xen und VC4-Parameterunterstützung Es wurde Nomodeset hinzugefügt, mit dem Sie das Umschalten von Videomodi auf Kernelebene und die Verwendung von Hardware-Rendering-Beschleunigungstools deaktivieren können, sodass nur Funktionen im Zusammenhang mit dem System-Framebuffer übrig bleiben.
    • Unterstützung für ARM SoС Qualcomm Snapdragon 625/632 (verwendet in LG Nexus 5X- und Fairphone FP3-Smartphones), Samsung Exynos 850, Samsung Exynos 7885 (verwendet in Samsung Galaxy A8), Airoha (Mediatek/EcoNet) EN7523, Mediatek mt6582 (Prestigio PMT5008) hinzugefügt Tablet 3G), Microchip Lan966, Renesas RZ/G2LC, RZ/V2L, Tesla FSD, TI K3/AM62 und i.MXRTxxxx.
    • Unterstützung für ARM-Geräte und Boards von Broadcom (Raspberry Pi Zero 2 W), Qualcomm (Google Herobrine R1 Chromebook, SHIFT6mq, Samsung Galaxy Book2), Rockchip (Pine64 PineNote, Bananapi-R2-Pro, STM32 Emtrion emSBS, Samsung Galaxy Tab S) hinzugefügt , Prestigio PMT5008 3G Tablet), Allwinner (A20-Marsboard), Amlogic (Amediatek X96-AIR, CYX A95XF3-AIR, Haochuangy H96-Max, Amlogic AQ222 und OSMC Vero 4K+), Aspeed (Quanta S6Q, ASRock ROMED8HM3), Marvell MVEBU / Armada (Ctera C200 V1 und V2 NAS), Mstar (DongShanPiOne, Miyoo Mini), NXP i.MX (Protonic PRT8MM, emCON-MX8M Mini, Toradex Verdin, Gateworks GW7903).
    • Unterstützung für Soundsysteme und Codecs AMD PDM, Atmel PDMC, Awinic AW8738, i.MX TLV320AIC31xx, Intel CS35L41, ESSX8336, Mediatek MT8181, nVidia Tegra234, Qualcomm SC7280, Renesas RZ/V2L, Texas Instruments TAS585M hinzugefügt. Erste Implementierung des Soundtreibers für den Intel AVS DSP-Chip hinzugefügt. Treiberunterstützung für Intel ADL und Tegra234 aktualisiert und Änderungen vorgenommen, um die Audiounterstützung auf Dell-, HP-, Lenovo-, ASUS-, Samsung- und Clevo-Geräten zu verbessern.

    Gleichzeitig hat die Latin American Free Software Foundation eine Version des völlig kostenlosen Kernels 5.18 erstellt – Linux-libre 5.18-gnu, frei von Firmware- und Treiberelementen, die unfreie Komponenten oder Codeabschnitte enthalten, deren Umfang begrenzt ist vom Hersteller. Die neue Version bereinigt Treiber für MIPI DBI-Panels, VPU Amphion, WiFi MediaTek MT7986 WMAC, Mediatek MT7921U (USB) und Realtek 8852a/8852c, Intel AVS und Texas Instruments TAS5805M Soundchips. DTS-Dateien wurden auch für verschiedene Qualcomm-SoCs mit Prozessoren auf Basis der AArch64-Architektur bereinigt. Aktualisierter Blob-Reinigungscode in Treibern und Subsystemen von AMD GPU, MediaTek MT7915, Silicon Labs WF200+ WiFi, Mellanox Spectru Ethernet, Realtek rtw8852c, Qualcomm Q6V5, Wolfson ADSP, MediaTek HCI UART.

Source: opennet.ru

Kommentar hinzufügen