Nach zwei Monaten Entwicklung stellte Linus Torvalds die Veröffentlichung des Linux-Kernels 5.15 vor. Zu den bemerkenswertesten Änderungen gehören: neuer NTFS-Treiber mit Schreibunterstützung, ksmbd-Modul mit Implementierung eines SMB-Servers, DAMON-Subsystem zur Überwachung des Speicherzugriffs, Sperrprimitive für den Echtzeitzugriff, Unterstützung für fs-verity in Btrfs, Systemaufruf process_mrelease für Systemreaktionen bei Speicherknappheit, Modul für Remote Attestation dm-ima.
In die neue Version wurden 13499 Korrekturen von 1888 Entwicklern aufgenommen, die Patchgröße beträgt 42 MB (Änderungen betrafen 10895 Dateien, 632522 neue Codezeilen wurden hinzugefügt, 299966 Zeilen wurden entfernt). Etwa 45 % aller in 5.15 vorgestellten Änderungen beziehen sich auf Gerätetreiber, etwa 14 % der Änderungen betreffen die Aktualisierung von hardwarearchitektur-spezifischem Code, 14 % entfallen auf das Netzwerk-Stack, 6 % auf Dateisysteme und 3 % auf interne Subsysteme des Kernels.
Hauptneuheiten:
- Festplattensubsystem, Ein-/Ausgabe und Dateisysteme
- Im Kernel wurde eine neue Implementierung des NTFS-Dateisystems angenommen, die von der Firma Paragon Software geöffnet wurde. Der neue Treiber kann im Schreibmodus arbeiten und unterstützt alle Funktionen der aktuellen NTFS-Version 3.1, einschließlich erweiterter Dateiattribute, Zugriffskontrolllisten (ACL), Datenkomprimierungsmodus, effiziente Handhabung von freien Bereichen in Dateien (sparse) und das Wiederherstellen von Änderungen aus dem Journal zur Gewährleistung der Integrität nach Abstürzen.
- Im Btrfs-Dateisystem wurde die Unterstützung des fs-verity-Mechanismus implementiert, der zur transparenten Kontrolle der Integrität und Authentizität einzelner Dateien anhand von mit den Dateien assoziierten kryptografischen Hashes oder Schlüsseln verwendet wird, die im Metadatenbereich gespeichert sind. Zuvor war fs-verity nur für die Dateisysteme Ext4 und F2fs verfügbar.
In Btrfs wurde auch die Unterstützung für das Mappen von Nutzer-IDs für eingehängte Dateisysteme hinzugefügt (zuvor wurde es für die Dateisysteme FAT, ext4 und XFS unterstützt). Diese Möglichkeit erlaubt es, Dateien eines bestimmten Benutzers auf einer eingehängten Fremdpartition mit einem anderen Benutzer im aktuellen System abzugleichen.
Unter den weiteren Änderungen in Btrfs: Beschleunigung der Hinzufügung von Schlüsseln zum Katalogindex zur Verbesserung der Dateierstellung; Möglichkeit der Verwendung von raid0 mit einem Gerät und raid10 mit zwei (zum Beispiel während der Neu-Konfiguration des Arrays); Option „rescue=ibadroots“ zum Ignorieren eines fehlerhaften Extent-Baums; Beschleunigung der „send“-Operation; Verringerung von Sperrkonflikten während der Umbenennungsoperationen; Möglichkeit der Verwendung von 4K-Sektoren in Systemen mit einer Seitengröße von 64K.
- In XFS wurde die Nutzung des FS für Daten nach 2038 stabilisiert. Ein Mechanismus zur verzögerten Deaktivierung von Inodes sowie zur verzögerten Erstellung und Löschung von Datei-Attributen wurde implementiert. Um Probleme zu vermeiden, wurde die Möglichkeit entfernt, Festplattengrenzen für bereits eingebundene Partitionen zu deaktivieren (es ist möglich, die Quoten zwangsweise zu deaktivieren, aber die damit verbundenen Berechnungen werden fortgesetzt, sodass für eine vollständige Deaktivierung eine erneute Einbindung erforderlich ist).
- In EXT4 wurde die Leistung des Schreibens von delalloc-Puffern und der Verarbeitung von verwaisten (orphan) Dateien, die weiterhin existieren, weil sie geöffnet bleiben, aber nicht mehr an ein Verzeichnis gebunden sind, verbessert. Die Verarbeitung von discard-Operationen wurde aus dem jbd2-Kthread-Stream herausgenommen, um Sperrkonflikte bei Metadatenoperationen zu vermeiden.
- In F2FS wurde die Option „discard_unit=block|segment|section“ hinzugefügt, um die discard-Operationen (Kennzeichnung von freigegebenen Blöcken, die nicht mehr physisch gespeichert werden müssen) an die Ausrichtung von Block, Sektor, Segment oder Abschnitt zu binden. Es wurde die Unterstützung zur Verfolgung von Verzögerungsänderungen bei Ein-/Ausgaben hinzugefügt.
- In dem Dateisystem EROFS (Extendable Read-Only File System) wurde die Unterstützung für direkten Ein/Ausgang für unkomprimierte Dateien sowie die Unterstützung für fiemap hinzugefügt.
- In OverlayFS wurde die korrekte Verarbeitung der Montage-Flags „immutable“, „append-only“, „sync“ und „noatime“ realisiert.
- In NFS wurde die Verarbeitung von Situationen verbessert, in denen der NFS-Server nicht mehr auf Anfragen antwortet. Es wurde die Möglichkeit hinzugefügt, über eine bereits verwendete, aber über eine andere Netzwerkadresse zugängliche Partition zu montieren. ServerDie Vorbereitung zum Umbau des FSCACHE-Subsystems hat begonnen.
- Die Unterstützung für EFI-Partitionen mit nicht-standardmäßiger Platzierung der GPT-Tabellen wurde hinzugefügt.
- Die Unterstützung für EFI-Partitionen mit nicht-standardmäßiger Platzierung der GPT-Tabellen wurde hinzugefügt.
- Im fanotify-Mechanismus wurde ein neuer Flag FAN_REPORT_PIDFD implementiert, der die Angabe von pidfd in den zurückgegebenen Metadaten ermöglicht. Pidfd hilft bei der Verarbeitung von Situationen mit der Wiederverwendung von PID zur genaueren Identifizierung von Prozessen, die auf überwachte Dateien zugreifen (pidfd ist an einen bestimmten Prozess gebunden und bleibt unverändert, während PID nach Beendigung des aktuellen Prozesses, der mit dieser PID verbunden ist, einem anderen Prozess zugeordnet werden kann).
- Dem Systemaufruf move_mount() wurde die Möglichkeit hinzugefügt, Montagepunkte in bestehende gemeinsame Gruppen einzufügen, was Probleme beim Speichern und Wiederherstellen des Zustands von Prozessen im CRIU-Tool bei mehreren in isolierten Containern gemeinsam genutzten Mount-Räumen löst.
- Ein Schutz gegen versteckte Rennbedingungen wurde hinzugefügt, die potenziell zu Datei-Schäden führen könnten, wenn während der Verarbeitung von Lücken in der Datei aus dem Cache gelesen wird.
- Die Unterstützung für obligatorische (mandatory) Datei-Sperren, die durch das Sperren von Systemaufrufen implementiert wurden, die zu Änderungen an der Datei führen, wurde eingestellt. Aufgrund möglicher Rennbedingungen wurden diese Sperren als unzuverlässig angesehen und vor vielen Jahren als veraltet erklärt.
- Das LightNVM-Subsystem, das einen direkten Zugriff auf SSD-Speicher ermöglicht hat, ohne die Emulationsschicht zu durchlaufen, wurde entfernt. LightNVM hat nach dem Erscheinen der NVMe-Standards, die die Möglichkeit der Zonierung (ZNS, Zoned Namespace) vorsehen, an Bedeutung verloren.
- Speicher und Systemdienste
- Das DAMON (Data Access MONitor)-Subsystem wurde implementiert, das die Aktivität im Zusammenhang mit dem Datenzugriff im Arbeitsspeicher in Verbindung mit einem ausgewählten Prozess überwacht, der im Benutzerspeicherraum läuft. Das Subsystem ermöglicht die Analyse, auf welche spezifischen Speicherbereiche der Prozess während seiner gesamten Laufzeit zugegriffen hat und welche Speicherbereiche ungenutzt geblieben sind. Zu den Merkmalen von DAMON zählen eine geringe CPU-Belastung, ein geringerer Speicherverbrauch, hohe Genauigkeit und vorhersehbare konstanten Overhead-Kosten, unabhängig von der Größe. Das Subsystem kann sowohl vom Kernel zur Optimierung des Speichermanagements als auch von Dienstprogrammen im Benutzerspeicher zur Analyse dessen verwendet werden, was der Prozess tut, und zur Optimierung der Speichernutzung, z. B. zur Freigabe überschüssigen Speichers für das System.
- Der systematische Aufruf process_mrelease wurde implementiert, um den Prozess der Speicherrückgabe eines beendenden Prozesses zu beschleunigen. Unter normalen Bedingungen erfolgt die Freigabe von Ressourcen und das Beenden eines Prozesses nicht sofort und kann aus verschiedenen Gründen verzögert werden, was die Funktionsweise der im Benutzerraum aktiven Systeme zur frühzeitigen Reaktion auf Speichermangel, wie zum Beispiel oomd (bereitgestellt in systemd) und lmkd (verwendet in Android), beeinträchtigt. Mit dem Aufruf process_mrelease können solche Systeme die Rückgabe von Speicher durch erzwungene Beendigung von Prozessen wesentlich vorhersehbarer initiieren.
- Aus dem PREEMPT_RT-Kernzweig, in dem die Unterstützung für Echtzeitbetrieb entwickelt wird, wurden Varianten von Mutex-Synchronisationsprimitive, ww_mutex, rw_semaphore, spinlock und rwlock, die auf dem RT-Mutex-Subsystem basieren, übernommen. Im SLUB-Slab-Allocator wurden Änderungen vorgenommen, die die Leistung im PREEMPT_RT-Modus verbessern und die Auswirkungen auf Interrupts verringern.
- Im cgroup wurde die Unterstützung für den Task-Scheduler-Attribut SCHED_IDLE hinzugefügt, der es ermöglicht, dieses Kennzeichen für alle Prozesse einer bestimmten cgroup bereitzustellen. Das bedeutet, dass diese Prozesse nur ausgeführt werden, wenn im System keine anderen Aufgaben auf die Ausführung warten. Im Gegensatz zur individuellen Festlegung des Attributs SCHED_IDLE für jeden Prozess wird bei der Zuordnung von SCHED_IDLE zu einer cgroup das relative Gewicht der Aufgaben innerhalb der Gruppe bei der Auswahl der auszuführenden Aufgabe berücksichtigt.
- Der Mechanismus zur Verfolgung des Speicherverbrauchs im cgroup wurde um die Möglichkeit erweitert, zusätzliche Datenstrukturen des Kernels zu verfolgen, die unter anderem für Polling, Signalverarbeitung und Namensräume erstellt werden.
- Die Unterstützung für asymmetrische Planung der Zuweisung von Aufgaben zu Prozessorkernen wurde hinzugefügt, auf Architekturen, bei denen einige CPUs die Ausführung von 32-Bit-Aufgaben ermöglichen, während andere nur im 64-Bit-Modus arbeiten (z. B. ARM). Der neue Modus erlaubt es, bei der Planung der Ausführung von 32-Bit-Aufgaben nur CPUs zu berücksichtigen, die 32-Bit-Aufgaben unterstützen.
- Im Interface von asynchronem Input/Output io_uring wurde die Unterstützung für das Öffnen von Dateien direkt in der festen Dateitabelle fixed-file eingeführt, ohne einen Dateideskriptor verwenden zu müssen, was die Möglichkeit bietet, bestimmte Arten von Operationen erheblich zu beschleunigen, jedoch im Widerspruch zu dem traditionellen Unix-Prozess steht, bei dem Dateideskriptoren zum Öffnen von Dateien verwendet werden.
In io_uring für die BIO-Subsystem (Block I/O Layer) wurde ein neuer Mechanismus zur Wiederverwertung ('BIO recycling') implementiert, der die Overhead-Kosten bei der Verwaltung des internen Speichers senkt und die Zahl der pro Sekunde verarbeiteten Ein-/Ausgabeoperationen um etwa 10 % erhöht. Zudem wurde die Unterstützung für die Systemaufrufe mkdirat(), symlinkat() und linkat() hinzugefügt.
- Für BPF-Programme wurde die Möglichkeit zur Anforderung und Verarbeitung von Timer-Ereignissen realisiert. Ein Iterator für UNIX-Sockets wurde hinzugefügt, sowie die Möglichkeit, Socket-Optionen über setsockopt abzurufen und festzulegen. Im BTF-Dumper wurde die Unterstützung für typisierte Daten hinzugefügt.
- Auf NUMA-Systemen mit unterschiedlichen Speichertypen, die sich in der Leistung unterscheiden, wurde bei Erschöpfung des freien Speicherplatzes der Transfer verdrängter Seiten aus dem dynamischen Speicher (DRAM) in den langsameren persistenten Speicher (Persistent Memory) anstelle der Löschung dieser Seiten realisiert. Tests haben gezeigt, dass eine solche Taktik in der Regel die Leistung auf solchen Systemen verbessert. Für NUMA wurde auch die Möglichkeit implementiert, Seiten für Prozesse aus einem ausgewählten Satz von NUMA-Knoten zuzuweisen.
- Für die ARC-Architektur wurde die Unterstützung für drei- und vierstufige Seiten-Tabellen realisiert, was zukünftig die Unterstützung für 64-Bit-ARC-Prozessoren ermöglichen wird.
- Für die Architektur s390 wurde die Möglichkeit implementiert, den KFENCE-Mechanismus zur Identifizierung von Speicherfehlern zu nutzen sowie die Unterstützung für den KCSAN-Race-Conditions-Detektor hinzugefügt.
- Die Unterstützung für die Indizierung von Nachrichtenlisten, die über printk() ausgegeben werden, wurde hinzugefügt, was ermöglicht, alle derartigen Nachrichten auf einmal abzurufen und Änderungen im Benutzerspeicher zu verfolgen.
- In mmap() wurde die Unterstützung der Option VM_DENYWRITE eingestellt, und der Kernel-Code wurde von der Verwendung des Modus MAP_DENYWRITE befreit, was die Zahl der Situationen verringert hat, die zu einem Schreibabbruch mit dem Fehler ETXTBSY führen.
- Im Tracing-Subsystem wurde ein neuer Prüftyp „Event probes“ hinzugefügt, der an bestehenden Tracing-Ereignissen angehängt werden kann, um ein eigenes Ausgabeformat zu definieren.
- Beim Zusammenstellen des Kernels mit dem Clang-Compiler wird standardmäßig jetzt der eingebaute Assembler des LLVM-Projekts verwendet.
- Im Rahmen eines Projekts zur Beseitigung von Compiler-Warnungscodes aus dem Kernel wurde ein Experiment zur standardmäßigen Aktivierung des „-Werror“-Modus durchgeführt, bei dem Compiler-Warnungen als Fehler behandelt werden. Im Vorfeld der Veröffentlichung von 5.15 begann Linus, nur Änderungen zu akzeptieren, die beim Zusammenstellen des Kernels keine Warnungen verursachen, und aktivierte die Zusammenstellung mit „-Werror“. Später stimmte er jedoch der Meinung zu, dass eine solche Entscheidung zu früh kam, und verschob die Standardaktivierung von „-Werror“. Die Steuerung der Aktivierung des „-Werror“-Flags beim Aufbau erfolgt über den Parameter WERROR, der standardmäßig auf COMPILE_TEST gesetzt ist, d. h. es wird vorerst nur bei Test-Bauten aktiviert.
- Virtualisierung und Sicherheit
- Im Device Mapper (DM) wurde ein neuer Handler dm-ima hinzugefügt, der ein Mechanismus für die Fernzertifizierung auf Basis des IMA (Integrity Measurement Architecture) implementiert, der es einem externen Dienst ermöglicht, den Zustand der Kernel-Subsysteme zu verifizieren, um ihre Echtheit sicherzustellen. In der Praxis erlaubt dm-ima die Erstellung von mit externen Cloud-Systemen verbundenen Speicherlösungen über den Device Mapper, in denen die Integrität der ausgeführten DM-Zielkonfiguration durch IMA überprüft wird.
- In prctl() wurde eine neue Option PR_SPEC_L1D_FLUSH implementiert, bei der das Kernel beim Kontextwechsel den Inhalt des Level-1-Daten-Caches (L1D) zurücksetzt. Dieser Modus ermöglicht es, für die wichtigsten Prozesse einen zusätzlichen Schutz gegen Seitenkanalangriffe zu implementieren, die darauf abzielen, Informationen zu ermitteln, die aufgrund von Schwachstellen, die durch spekulative Ausführung von Anweisungen im CPU verursacht werden, im Cache abgelegt wurden. Der Preis für die Aktivierung von PR_SPEC_L1D_FLUSH (standardmäßig nicht aktiviert) ist ein erheblicher Rückgang der Leistung.
- Die Möglichkeit, den Kernel mit der GCC-Flagge „-fzero-call-used-regs=used-gpr“ zu compilieren, wurde implementiert, wodurch sichergestellt wird, dass alle Register vor der Rückkehr aus einer Funktion auf Null gesetzt werden. Diese Option schützt vor Informationsleckagen aus Funktionen und reduziert die Anzahl der Blöcke, die für den Aufbau von ROP-Gadgets (Return-Oriented Programming) in Exploits geeignet sind, um 20%.
- Die Möglichkeit, Kerne für die ARM64-Architektur in Form von Clients für den Hypervisor Hyper-V zu compilieren, wurde implementiert.
- Ein neues Framework für die Entwicklung von Treibern „VDUSE“ wurde vorgeschlagen, das die Implementierung virtueller Blockgeräte im Benutzerspeicher ermöglicht und Virtio als Transport für den Zugriff aus Gast-Systemen verwendet.
- Ein Virtio-Treiber für den I2C-Bus wurde hinzugefügt, der die Emulation von I2C-Controllern im Paravirtualisierungsmodus mit individuellen Backends ermöglicht.
- Ein Virtio-Treiber gpio-virtio wurde hinzugefügt, der es Gast-Systemen ermöglicht, auf die vom Host-System bereitgestellten GPIO-Leitungen zuzugreifen.
- Die Möglichkeit, den Zugriff auf Speicherseiten für Gerätetreiber mit DMA-Unterstützung auf Systemen ohne I/O MMU (Speicherverwaltungseinheit) einzuschränken, wurde hinzugefügt.
- Im Hypervisor KVM wurde die Möglichkeit implementiert, Statistiken in Form von linearen und logarithmischen Histogrammen auszugeben.
- Netzwerksubsystem
- Ein Modul ksmbd mit der Implementierung eines Dateiservers, der das SMB3-Protokoll verwendet, wurde dem Kernel hinzugefügt. Dieses Modul ergänzt die zuvor im Kernel verfügbare Implementierung eines SMB-Clients und ist im Vergleich zu einem im Benutzerspeicher arbeitenden SMB-Server in Bezug auf Leistung, Speicherverbrauch und Integration mit erweiterten Funktionen des Kernels effizienter. Ksmbd wird als leistungsstarkes und für den Einsatz in eingebetteten Geräten bereitgestelltes Erweiterung für Samba angeboten, das bei Bedarf mit Samba-Tools und -Bibliotheken integriert werden kann. Zu den Möglichkeiten von ksmbd gehört eine verbesserte Unterstützung der Technologie des verteilten Datei-Caching (SMB-Leases) auf lokalen Systemen, die den Verkehr erheblich reduzieren kann. Zukünftig ist geplant, die Unterstützung von RDMA („smbdirect“) und Protokollerweiterungen im Zusammenhang mit der Verbesserung der Verschlüsselungszuverlässigkeit und der Überprüfung durch digitale Signaturen hinzuzufügen.
- Im CIFS-Client wurde die Unterstützung für NTLM und weniger zuverlässige Authentifizierungsalgorithmen, die auf dem DES-Algorithmus basieren und im SMB1-Protokoll verwendet werden, eingestellt.
- Bei der Implementierung von Netzwerkbrücken für VLAN wurde Multicast-Unterstützung hinzugefügt.
- Im Bonding-Treiber, der zur Aggregation von Netzwerk-Schnittstellen verwendet wird, wurde die Unterstützung für das XDP (eXpress Data Path)-Subsystem hinzugefügt, das die Manipulation von Netzwerkpaketen vor deren Verarbeitung durch den Linux-Kernel-Netzwerkstack ermöglicht.
- Im drahtlosen mac80211-Stack wurde die Unterstützung für 6GHz STA (Special Temporary Authorization) in den Modi LPI, SP und VLP implementiert, sowie die Möglichkeit zur Einstellung einzelner TWT (Target Wake Time) im Access Point-Modus.
- Es wurde die Unterstützung für das MCTP (Management Component Transport Protocol) hinzugefügt, das für die Interaktion von Steuercontrollern und verbundenen Geräten (Host-Prozessoren, Peripheriegeräte usw.) verwendet wird.
- Die Integration von MPTCP (MultiPath TCP), einer Erweiterung des TCP-Protokolls zur Einrichtung von TCP-Verbindungen mit gleichzeitiger Paketlieferung über mehrere Routen durch verschiedene Netzwerk-Schnittstellen, die an unterschiedliche IP-Adressen gebunden sind, wurde fortgesetzt. In dieser neuen Version wurde die Unterstützung für Adressen im Fullmesh-Modus hinzugefügt.
- Im Netfilter wurden Handler für Netzwerkströme hinzugefügt, die in das SRv6 (Segment Routing IPv6)-Protokoll eingekapselt sind.
- Die Unterstützung von Sockmap für Streaming-Unix-Sockets wurde hinzugefügt.
- Ausrüstung
- Im amdgpu-Treiber wurde die Unterstützung für das APU Cyan Skillfish (mit GPU Navi 1x) implementiert. Für das APU Yellow Carp wurde die Unterstützung für Video-Codecs hinzugefügt. Die GPU-Unterstützung für Aldebaran wurde verbessert. Neue Identifikatoren für Karten auf Grundlage der GPU Navi 24 „Beige Goby“ und RDNA2 wurden hinzugefügt. Eine verbesserte Implementierung virtueller Bildschirme (VKMS) wurde vorgeschlagen. Die Unterstützung zur Überwachung der Temperatur von AMD Zen 3-Chips wurde realisiert.
- Im amdkfd-Treiber (für diskrete GPUs wie Polaris) wurde ein Manager für gemeinsam genutzten virtuellen Speicher (SVM, shared virtual memory) basierend auf dem HMM (Heterogeneous memory management)-Subsystem implementiert, das die Nutzung von Geräten mit eigenen Speichersteuerungseinheiten (MMU, memory management unit) ermöglicht, die auf den Hauptspeicher zugreifen können. Mit HMM kann unter anderem ein gemeinsamer Adressraum zwischen GPU und CPU organisiert werden, in dem die GPU auf den Hauptspeicher des Prozesses zugreifen kann.
- Im i915-Treiber für Intel-Grafikkarten wurde die Verwendung des TTM-Managements für Videospeicher erweitert und die Möglichkeit zur Verwaltung des Energieverbrauchs basierend auf GuC (Graphics micro Controller) aktiviert. Die Vorbereitung zur Implementierung der Unterstützung für die Intel ARC Alchemist-Grafikkarte und die GPU Intel Xe-HP hat begonnen.
- Im Nouveau-Treiber wurde die Steuerung der Hintergrundbeleuchtung von eDP-Panels über DPCD (DisplayPort Configuration Data) implementiert.
- Im MSM-Treiber wurde die Unterstützung für die GPU Adreno 7c Gen 3 und Adreno 680 hinzugefügt.
- Für den Apple M1-Chip wurde ein IOMMU-Treiber implementiert.
- Ein Soundtreiber für Systeme mit AMD Van Gogh APU wurde hinzugefügt.
- Im Staging-Zweig wurde der Driver Realtek R8188EU hinzugefügt, der die alte Version des Treibers (rtl8188eu) für drahtlose Realtek RTL8188EU 802.11 b/g/n-Chips ersetzt hat.
- Der Treiber ocp_pt für die von Meta (Facebook) entwickelte PCIe-Karte mit der Implementierung von Miniatur-Quarzuhren und GNSS-Empfängern wurde aufgenommen, die zur Organisation isolierter Server Zeitgenauigkeitssynchronisierung verwendet werden können.
- Die Unterstützung für Smartphones Sony Xperia 10II (Snapdragon 665), Xiaomi Redmi 2 (Snapdragon MSM8916), Samsung Galaxy S3 (Snapdragon MSM8226), Samsung Gavini/Codina/Kyle wurde hinzugefügt.
- Die Unterstützung für ARM SoCs und die NVIDIA Jetson TX2 NX Developer Kit, Sancloud BBE Lite, PicoITX, DRC02, SolidRun SolidSense, SKOV i.MX6, Nitrogen8, Traverse Ten64, GW7902, Microchip SAMA7, Qualcomm Snapdragon SDM636/SM8150, Renesas R-Car H3e-2G/M3e-2G, Marvell CN913x, ASpeed AST2600 (Serverplatten von Facebook Cloudripper, Elbert und Fuji), 4KOpen STiH418-b2264 wurde hinzugefügt.
- Die Unterstützung für LCD-Panels Gopher 2b, EDT ETM0350G0DH6/ETMV570G2DHU, LOGIC Technologies LTTD800480070-L6WH-RT, Multi-Innotechnology MI1010AIT-1CP1, Innolux EJ030NA 3.0, ilitek ili9341, E Ink VB3300-KCA, Samsung ATNA33XC20, Samsung DB7430, WideChips WS2401 wurde hinzugefügt.
- Der LiteETH-Treiber mit Unterstützung für Ethernet-Controller, die in den Software-SoCs LiteX (für FPGA) verwendet werden, wurde hinzugefügt.
- Im usb-audio-Treiber wurde die Option lowlatency zum Steuern des Betriebs im Modus mit minimalen Latenzen hinzugefügt. Außerdem wurde die Option quirk_flags hinzugefügt, um spezifische Geräteeinstellungen zu übermitteln.
Gleichzeitig hat die lateinamerikanische Software-Freiheits-Stiftung eine vollständige freie Kernel-Version 5.15 – Linux-libre 5.15-gnu veröffentlicht, die von Firmware- und Treiberelementen befreit wurde, die unfreie Komponenten oder Codeabschnitte enthalten, deren Verwendung vom Hersteller eingeschränkt ist. In der neuen Version wurde eine Protokollmeldung über den Abschluss der Bereinigung implementiert. Probleme bei der Paketbildung mit mkspec wurden behoben, die Unterstützung für Snap-Pakete wurde verbessert. Einige Warnungen, die bei der Verarbeitung der Header-Datei firmware.h ausgegeben wurden, wurden entfernt. Einige Warnungen („format-extra-args“, Kommentare, nicht verwendete Funktionen und Variablen) sind beim Kompilieren im „-Werror“-Modus nun erlaubt. Die Treiberbereinigung für gehc-achc wurde hinzugefügt. Der Code zur Bereinigung der Blobs in den Treibern und Subsystemen adreno, btusb, btintel, brcmfmac, aarch64 qcom wurde aktualisiert. Die Bereinigung der Treiber prism54 (entfernt) und rtl8188eu (durch r8188eu ersetzt) wurde eingestellt.
Quelle: opennet.ru
