Linux 6.2-Kernel-Release

Nach zweimonatiger Entwicklungszeit präsentierte Linus Torvalds die Veröffentlichung des Linux-Kernels 6.2. Zu den bemerkenswertesten Änderungen gehören: Die Akzeptanz von Code unter der Copyleft-Next-Lizenz ist erlaubt, die Implementierung von RAID5/6 in Btrfs wurde verbessert, die Integration der Unterstützung für die Rust-Sprache wird fortgesetzt, der Aufwand für den Schutz vor Retbleed-Angriffen wird reduziert Es wurde die Möglichkeit hinzugefügt, den Speicherverbrauch während des Zurückschreibens zu regulieren, ein Mechanismus für den TCP-Ausgleich PLB (Protective Load Balancing) wurde hinzugefügt, ein hybrider Befehlsflussschutzmechanismus (FineIBT) wurde hinzugefügt, BPF hat nun die Möglichkeit, seine eigenen Objekte und Datenstrukturen zu definieren Da das Dienstprogramm rv (Runtime Verification) enthalten ist, wurde der Stromverbrauch bei der Implementierung von RCU-Sperren reduziert.

Die neue Version enthält 16843 Fixes von 2178 Entwicklern, die Patchgröße beträgt 62 MB (die Änderungen betrafen 14108 Dateien, 730195 Zeilen Code wurden hinzugefügt, 409485 Zeilen wurden gelöscht). Etwa 42 % aller in 6.2 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, 12 % beziehen sich auf den Netzwerkstapel, 4 % beziehen sich auf Dateisysteme und 3 % beziehen sich auf beziehen sich auf interne Kernel-Subsysteme.

Wichtige Neuerungen im Kernel 6.2:

  • Speicher- und Systemdienste
    • Es ist erlaubt, in den Kernel-Code und Änderungen aufzunehmen, die unter der Copyleft-Next 0.3.1-Lizenz bereitgestellt werden. Die Copyleft-Next-Lizenz wurde von einem der Autoren von GPLv3 erstellt und ist vollständig kompatibel mit der GPLv2-Lizenz, wie Anwälte von SUSE und Red Hat bestätigten. Im Vergleich zur GPLv2 ist die Copyleft-Next-Lizenz wesentlich kompakter und verständlicher (der einleitende Teil und die Erwähnung veralteter Kompromisse wurden entfernt), definiert den Zeitrahmen und das Verfahren zur Beseitigung von Verstößen und entfernt automatisch Copyleft-Anforderungen für veraltete Software ist älter als 15 Jahre.

      Copyleft-Next enthält außerdem eine proprietäre Technologiegewährungsklausel, die diese Lizenz im Gegensatz zu GPLv2 mit der Apache 2.0-Lizenz kompatibel macht. Um die vollständige Kompatibilität mit GPLv2 sicherzustellen, gibt Copyleft-Next ausdrücklich an, dass ein abgeleitetes Werk zusätzlich zur ursprünglichen Copyleft-Next-Lizenz unter der GPL-Lizenz bereitgestellt werden darf.

    • Die Struktur umfasst das Dienstprogramm „rv“, das eine Schnittstelle für die Interaktion aus dem Benutzerbereich mit Handlern des RV-Subsystems (Runtime Verification) bereitstellt und dazu dient, den korrekten Betrieb auf hochzuverlässigen Systemen zu überprüfen, die die Abwesenheit von Fehlern garantieren. Die Überprüfung erfolgt zur Laufzeit, indem Handler an Trace-Punkte angehängt werden, die den tatsächlichen Ausführungsfortschritt anhand eines vorgegebenen deterministischen Referenzmodells der Maschine überprüfen, das das erwartete Verhalten des Systems definiert.
    • Das zRAM-Gerät, das es ermöglicht, die Swap-Partition in komprimierter Form im Speicher zu speichern (im Speicher wird ein Blockgerät erstellt, auf das der Austausch mit Komprimierung durchgeführt wird), implementiert die Möglichkeit, Seiten mithilfe eines alternativen Algorithmus neu zu packen, um eine höhere Ebene zu erreichen der Komprimierung. Die Hauptidee besteht darin, eine Auswahl zwischen mehreren Algorithmen (lzo, lzo-rle, lz4, lz4hc, zstd) bereitzustellen, die eigene Kompromisse zwischen Komprimierungs-/Dekomprimierungsgeschwindigkeit und Komprimierungsstufe bieten oder in besonderen Situationen optimal sind (z. B. für die Komprimierung großer Datenmengen). Speicherseiten).
    • Die „iommufd“-API zur Verwaltung des I/O-Speicherverwaltungssystems – IOMMU (I/O Memory-Management Unit) aus dem Benutzerbereich hinzugefügt. Die neue API ermöglicht die Verwaltung von I/O-Speicherseitentabellen mithilfe von Dateideskriptoren.
    • BPF bietet die Möglichkeit, Typen zu erstellen, eigene Objekte zu definieren, eine eigene Objekthierarchie aufzubauen und flexibel eigene Datenstrukturen wie verknüpfte Listen zu erstellen. Für BPF-Programme, die in den Ruhemodus wechseln (BPF_F_SLEEPABLE), wurde Unterstützung für bpf_rcu_read_{,un}lock()-Sperren hinzugefügt. Unterstützung für das Speichern von task_struct-Objekten implementiert. Kartentyp BPF_MAP_TYPE_CGRP_STORAGE hinzugefügt, der lokalen Speicher für Kontrollgruppen bereitstellt.
    • Für den RCU-Blockierungsmechanismus (Read-Copy-Update) ist ein optionaler Mechanismus für „lazy“ Callback-Aufrufe implementiert, bei dem mehrere Callback-Aufrufe gleichzeitig mithilfe eines Timers im Batch-Modus verarbeitet werden. Durch die Anwendung der vorgeschlagenen Optimierung können wir den Stromverbrauch auf Android- und ChromeOS-Geräten um 5–10 % senken, indem wir RCU-Anfragen während Leerlaufzeiten oder geringer Systemlast verschieben.
    • sysctl split_lock_mitigate wurde hinzugefügt, um zu steuern, wie das System reagiert, wenn es Split-Sperren erkennt, die beim Zugriff auf nicht ausgerichtete Daten im Speicher auftreten, weil die Daten bei der Ausführung einer atomaren Anweisung zwei CPU-Cache-Zeilen überschreiten. Solche Blockaden führen zu einem erheblichen Leistungsabfall. Wenn Sie „split_lock_mitigate“ auf 0 setzen, wird nur eine Warnung ausgegeben, dass ein Problem vorliegt, während das Setzen von „split_lock_mitigate“ auf 1 auch dazu führt, dass der Prozess, der die Sperre verursacht hat, verlangsamt wird, um die Leistung für den Rest des Systems zu erhalten.
    • Für die PowerPC-Architektur wurde eine neue Implementierung von qspinlock vorgeschlagen, die eine höhere Leistung aufweist und einige in Ausnahmefällen auftretende Sperrprobleme löst.
    • Der MSI-Interrupt-Verarbeitungscode (Message-Signaled Interrupts) wurde überarbeitet, um angesammelte Architekturprobleme zu beseitigen und Unterstützung für die Bindung einzelner Handler an verschiedene Geräte hinzuzufügen.
    • Für Systeme, die auf der LoongArch-Befehlssatzarchitektur basieren, die in den Loongson 3 5000-Prozessoren verwendet wird und die neue RISC ISA implementiert, ähnlich wie MIPS und RISC-V, ist Unterstützung für Ftrace, Stack Protection, Sleep und Standby-Modi implementiert.
    • Es wurde die Möglichkeit bereitgestellt, Bereichen des gemeinsam genutzten anonymen Speichers Namen zuzuweisen (zuvor konnten Namen nur dem privaten anonymen Speicher zugewiesen werden, der einem bestimmten Prozess zugewiesen war).
    • Ein neuer Kernel-Befehlszeilenparameter „trace_trigger“ wurde hinzugefügt, der dazu dient, einen Trace-Trigger zu aktivieren, der zum Binden bedingter Befehle verwendet wird, die aufgerufen werden, wenn eine Kontrollprüfung ausgelöst wird (z. B. Trace_trigger=“sched_switch.stacktrace if prev_state == 2″).
    • Die Anforderungen an die Version des Binutils-Pakets wurden erhöht. Für den Aufbau des Kernels sind nun mindestens Binutils 2.25 erforderlich.
    • Beim Aufruf von exec() wurde die Möglichkeit hinzugefügt, einen Prozess in einem Zeit-Namespace zu platzieren, in dem die Zeit von der Systemzeit abweicht.
    • Wir haben damit begonnen, zusätzliche Funktionalität aus dem Rust-for-Linux-Zweig zu übertragen, die sich auf die Verwendung der Rust-Sprache als Zweitsprache für die Entwicklung von Treibern und Kernelmodulen bezieht. Die Rust-Unterstützung ist standardmäßig deaktiviert und führt nicht dazu, dass Rust als erforderliche Kernel-Build-Abhängigkeit enthalten ist. Die in der letzten Version angebotene Grundfunktionalität wird erweitert, um Low-Level-Code wie den Vec-Typ und die Makros pr_debug!(), pr_cont!() und pr_alert!() sowie das prozedurale Makro „#[vtable ]“, was die Arbeit mit Zeigertabellen auf Funktionen vereinfacht. Das Hinzufügen von Rust-Bindungen auf hoher Ebene über Kernel-Subsysteme, die die Erstellung vollwertiger Rust-Treiber ermöglichen, wird in zukünftigen Versionen erwartet.
    • Der im Kernel verwendete Typ „char“ wird jetzt standardmäßig für alle Architekturen als unsigniert deklariert.
    • Der Slab-Speicherzuweisungsmechanismus – SLOB (Slab Allocator), der für Systeme mit wenig Speicher entwickelt wurde, wurde für veraltet erklärt. Anstelle von SLOB wird unter normalen Bedingungen die Verwendung von SLUB oder SLAB empfohlen. Für Systeme mit wenig Speicher empfiehlt sich die Verwendung von SLUB im SLUB_TINY-Modus.
  • Festplattensubsystem, E/A und Dateisysteme
    • Es wurden Verbesserungen an Btrfs vorgenommen, die darauf abzielen, das „Write Hole“-Problem in RAID 5/6-Implementierungen zu beheben (ein Versuch, ein RAID wiederherzustellen, wenn beim Schreiben ein Absturz auftritt und es unmöglich ist, zu verstehen, welcher Block auf welches RAID-Gerät korrekt geschrieben wurde). was zur Blockzerstörung führen kann, entsprechend unterschriebenen Blöcken). Darüber hinaus aktivieren SSDs jetzt standardmäßig automatisch den asynchronen Verwerfungsvorgang, wenn möglich, was eine verbesserte Leistung durch die effiziente Gruppierung von Verwerfungsvorgängen in Warteschlangen und die Verarbeitung der Warteschlange durch einen Hintergrundprozessor ermöglicht. Verbesserte Leistung der Sende- und Lseek-Vorgänge sowie des FIEMAP-Ioctl.
    • Die Möglichkeiten zur Verwaltung des verzögerten Schreibens (Rückschreiben, Speichern geänderter Daten im Hintergrund) für Blockgeräte wurden erweitert. In manchen Situationen, beispielsweise bei der Verwendung von Netzwerkblockgeräten oder USB-Laufwerken, können verzögerte Schreibvorgänge zu einem hohen RAM-Verbrauch führen. Um das Verhalten von verzögerten Schreibvorgängen zu steuern und die Größe des Seitencaches innerhalb bestimmter Grenzen zu halten, wurden in sysfs (/sys/class/bdi/) neue Parameter strict_limit, min_bytes, max_bytes, min_ratio_fine und max_ratio_fine eingeführt.
    • Das F2FS-Dateisystem implementiert eine atomare Ioctl-Ersetzungsoperation, die es Ihnen ermöglicht, Daten in einer einzigen atomaren Operation in eine Datei zu schreiben. F2FS fügt außerdem einen Block-Extent-Cache hinzu, um aktiv genutzte Daten oder Daten, auf die über einen längeren Zeitraum nicht zugegriffen wurde, zu identifizieren.
    • Im ext4 FS sind nur Fehlerkorrekturen vermerkt.
    • Das NTFS3-Dateisystem bietet mehrere neue Mount-Optionen: „nocase“, um die Groß-/Kleinschreibung bei Datei- und Verzeichnisnamen zu steuern; windows_name, um die Erstellung von Dateinamen zu verhindern, die Zeichen enthalten, die für Windows ungültig sind; hide_dot_files, um die Zuweisung der versteckten Dateibezeichnung für Dateien zu steuern, die mit einem Punkt beginnen.
    • Das Squashfs-Dateisystem implementiert eine Mount-Option „threads=“, mit der Sie die Anzahl der Threads definieren können, um Dekomprimierungsvorgänge zu parallelisieren. Squashfs führte außerdem die Möglichkeit ein, Benutzer-IDs von gemounteten Dateisystemen zuzuordnen, um die Dateien eines bestimmten Benutzers auf einer gemounteten fremden Partition mit einem anderen Benutzer auf dem aktuellen System abzugleichen.
    • Die Implementierung von POSIX-Zugriffskontrolllisten (POSIX-ACLs) wurde überarbeitet. Die neue Implementierung beseitigt Architekturprobleme, vereinfacht die Wartung der Codebasis und führt sicherere Datentypen ein.
    • Das fscrypt-Subsystem, das zur transparenten Verschlüsselung von Dateien und Verzeichnissen verwendet wird, hat Unterstützung für den SM4-Verschlüsselungsalgorithmus (chinesischer Standard GB/T 32907-2016) hinzugefügt.
    • Die Möglichkeit, den Kernel ohne NFSv2-Unterstützung zu erstellen, wurde bereitgestellt (in Zukunft ist geplant, die Unterstützung von NFSv2 vollständig einzustellen).
    • Die Organisation der Überprüfung der Zugriffsrechte auf NVMe-Geräte wurde geändert. Bietet die Möglichkeit, auf einem NVMe-Gerät zu lesen und zu schreiben, wenn der Schreibprozess Zugriff auf die dedizierte Datei des Geräts hat (zuvor musste der Prozess über die Berechtigung CAP_SYS_ADMIN verfügen).
    • Der CD/DVD-Pakettreiber wurde entfernt, der 2016 veraltet war.
  • Virtualisierung und Sicherheit
    • In Intel- und AMD-CPUs wurde eine neue Methode zum Schutz vor der Retbleed-Schwachstelle implementiert, die die Anruftiefenverfolgung nutzt, die die Arbeit nicht so stark verlangsamt wie der zuvor vorhandene Schutz vor Retbleed. Um den neuen Modus zu aktivieren, wurde der Kernel-Befehlszeilenparameter „retbleed=stuff“ vorgeschlagen.
    • Es wurde ein hybrider FineIBT-Befehlsflussschutzmechanismus hinzugefügt, der die Verwendung von Hardware-Intel-IBT-Anweisungen (Indirect Branch Tracking) und Softwareschutz kCFI (Kernel Control Flow Integrity) kombiniert, um Verletzungen der normalen Ausführungsreihenfolge (Kontrollfluss) als Ergebnis der Verwendung zu blockieren von Exploits, die im Speicher gespeicherte Zeiger auf Funktionen ändern. FineIBT erlaubt die Ausführung durch indirekten Sprung nur im Falle eines Sprungs zur ENDBR-Anweisung, die ganz am Anfang der Funktion steht. Zusätzlich werden dann analog zum kCFI-Mechanismus Hashes überprüft, um die Unveränderlichkeit von Zeigern zu gewährleisten.
    • Einschränkungen hinzugefügt, um Angriffe zu blockieren, die die Generierung von „Ups“-Zuständen manipulieren, nach denen problematische Aufgaben abgeschlossen werden und der Zustand wiederhergestellt wird, ohne das System anzuhalten. Bei zu vielen Aufrufen des Status „oops“ kommt es zu einem Überlauf des Referenzzählers (refcount), wodurch Schwachstellen ausgenutzt werden können, die durch NULL-Zeiger-Dereferenzierungen verursacht werden. Um sich vor solchen Angriffen zu schützen, wurde dem Kernel ein Limit für die maximale Anzahl von „Ups“-Auslösern hinzugefügt, nach dessen Überschreitung der Kernel einen Übergang in den „Panik“-Zustand einleitet, gefolgt von einem Neustart, der das Erreichen des Ziels nicht zulässt Anzahl der Iterationen, die erforderlich sind, um den Refcount zu überlaufen. Standardmäßig ist das Limit auf 10 „oops“ eingestellt, kann aber bei Bedarf über den Parameter oops_limit geändert werden.
    • Konfigurationsparameter LEGACY_TIOCSTI und sysctl Legacy_tiocsti hinzugefügt, um die Möglichkeit zu deaktivieren, Daten mithilfe des ioctl TIOCSTI in das Terminal einzugeben, da diese Funktionalität verwendet werden kann, um beliebige Zeichen im Eingabepuffer des Terminals zu ersetzen und Benutzereingaben zu simulieren.
    • Es wird eine neue Art interner Struktur, encoded_page, vorgeschlagen, bei der die unteren Bits des Zeigers zum Speichern zusätzlicher Informationen zum Schutz vor versehentlicher Dereferenzierung des Zeigers verwendet werden (wenn eine Dereferenzierung tatsächlich erforderlich ist, müssen diese zusätzlichen Bits zuerst gelöscht werden). .
    • Auf der ARM64-Plattform ist es in der Boot-Phase möglich, die Software-Implementierung des Shadow-Stack-Mechanismus zu aktivieren oder zu deaktivieren, der zum Schutz vor dem Überschreiben der Rücksprungadresse einer Funktion im Falle eines Pufferüberlaufs auf dem Stack dient ( Der Kern des Schutzes besteht darin, die Rücksprungadresse in einem separaten „Schattenstapel“ zu speichern, nachdem die Steuerung an die Funktion übergeben wurde, und die angegebene Adresse vor dem Beenden der Funktion abzurufen. Durch die Unterstützung von Hardware- und Software-Implementierungen von Shadow Stack in einer Kernel-Assembly können Sie einen Kernel auf verschiedenen ARM-Systemen verwenden, unabhängig von deren Unterstützung für Anweisungen zur Zeigerauthentifizierung. Die Einbindung einer Softwareimplementierung erfolgt durch die Ersetzung der notwendigen Anweisungen im Code beim Laden.
    • Unterstützung für die Verwendung des asynchronen Exit-Benachrichtigungsmechanismus auf Intel-Prozessoren hinzugefügt, der die Erkennung einstufiger Angriffe auf Code ermöglicht, der in SGX-Enklaven ausgeführt wird.
    • Es wird eine Reihe von Operationen vorgeschlagen, die es dem Hypervisor ermöglichen, Anfragen von Intel TDX-Gastsystemen (Trusted Domain Extensions) zu unterstützen.
    • Die Kernel-Build-Einstellungen RANDOM_TRUST_BOOTLOADER und RANDOM_TRUST_CPU wurden zugunsten der entsprechenden Befehlszeilenoptionen random.trust_bootloader und random.trust_cpu entfernt.
    • Der Landlock-Mechanismus, der es Ihnen ermöglicht, die Interaktion einer Gruppe von Prozessen mit der externen Umgebung einzuschränken, hat Unterstützung für das Flag LANDLOCK_ACCESS_FS_TRUNCATE hinzugefügt, das es ermöglicht, die Ausführung von Dateikürzungsvorgängen zu steuern.
  • Netzwerk-Subsystem
    • Für IPv6 wurde Unterstützung für PLB (Protective Load Balancing) hinzugefügt, einen Lastausgleichsmechanismus zwischen Netzwerkverbindungen, der darauf abzielt, Überlastungspunkte auf Rechenzentrums-Switches zu reduzieren. Durch Ändern des IPv6-Flow-Labels ändert der PLB die Paketpfade nach dem Zufallsprinzip, um die Last auf den Switch-Ports auszugleichen. Um die Neuordnung der Pakete zu reduzieren, wird dieser Vorgang nach Möglichkeit nach Leerlaufzeiten durchgeführt. Der Einsatz von PLB in Google-Rechenzentren hat das Lastungleichgewicht auf Switch-Ports um durchschnittlich 60 %, den Paketverlust um 33 % und die Latenz um 20 % reduziert.
    • Treiber für MediaTek-Geräte hinzugefügt, die Wi-Fi 7 (802.11be) unterstützen.
    • Unterstützung für 800-Gigabit-Links hinzugefügt.
    • Es wurde die Möglichkeit hinzugefügt, Netzwerkschnittstellen im Handumdrehen umzubenennen, ohne die Arbeit zu unterbrechen.
    • Den Protokollmeldungen zur SYN-Flut wurde ein Hinweis auf die IP-Adresse hinzugefügt, an der das Paket angekommen ist.
    • Für UDP wurde die Möglichkeit implementiert, separate Hash-Tabellen für verschiedene Netzwerk-Namespaces zu verwenden.
    • Für Netzwerkbrücken wurde die Unterstützung der Authentifizierungsmethode MAB (MAC Authentication Bypass) implementiert.
    • Für das CAN-Protokoll (CAN_RAW) wurde die Unterstützung des SO_MARK-Socket-Modus zum Anhängen von fwmark-basierten Verkehrsfiltern implementiert.
    • ipset implementiert einen neuen Bitmaskenparameter, mit dem Sie eine Maske basierend auf beliebigen Bits in der IP-Adresse festlegen können (z. B. „ipset create set1 hash:ip bitmask 255.128.255.0“).
    • Unterstützung für die Verarbeitung interner Header in getunnelten Paketen zu nf_tables hinzugefügt.
  • Ausrüstung
    • Das „accel“-Subsystem wurde mit der Implementierung eines Frameworks für Rechenbeschleuniger hinzugefügt, die entweder in Form einzelner ASICs oder in Form von IP-Blöcken innerhalb von SoCs und GPUs bereitgestellt werden können. Diese Beschleuniger zielen hauptsächlich darauf ab, die Lösung von Problemen des maschinellen Lernens zu beschleunigen.
    • Der amdgpu-Treiber unterstützt die IP-Komponenten GC, PSP, SMU und NBIO. Für ARM64-Systeme ist die Unterstützung von DCN (Display Core Next) implementiert. Die Implementierung der geschützten Bildschirmausgabe wurde von DCN10 auf DCN21 verschoben und kann nun beim Anschluss mehrerer Bildschirme verwendet werden.
    • Der i915 (Intel)-Treiber hat die Unterstützung für separate Intel Arc (DG2/Alchemist)-Grafikkarten stabilisiert.
    • Der Nouveau-Treiber unterstützt NVIDIA GA102 (RTX 30) GPUs basierend auf der Ampere-Architektur. Für NVA3-Karten (GT215) wurde die Möglichkeit hinzugefügt, die Hintergrundbeleuchtung zu steuern.
    • Unterstützung für drahtlose Adapter basierend auf den Chips Realtek 8852BE, Realtek 8821CU, 8822BU, 8822CU, 8723DU (USB) und MediaTek MT7996, Broadcom BCM4377/4378/4387 Bluetooth-Schnittstellen sowie Motorcomm yt8521 und NVIDIA Tegra GE Ethernet-Controller hinzugefügt.
    • ASoC-Unterstützung (ALSA System on Chip) für integrierte Soundchips HP Stream 8, Advantech MICA-071, Dell SKU 0C11, Intel ALC5682I-VD, Xiaomi Redmi Book Pro 14 2022, i.MX93, Armada 38x, RK3588 hinzugefügt. Unterstützung für die Audioschnittstelle Focusrite Saffire Pro 40 hinzugefügt. Realtek RT1318 Audiocodec hinzugefügt.
    • Unterstützung für Sony-Smartphones und -Tablets hinzugefügt (Xperia 10 IV, 5 IV, X und X Compact, OnePlus One, 3, 3T und Nord N100, Xiaomi Poco F1 und Mi6, Huawei Watch, Google Pixel 3a, Samsung Galaxy Tab 4 10.1).
    • Unterstützung für ARM SoC und Apple T6000 (M1 Pro), T6001 (M1 Max), T6002 (M1 Ultra), Qualcomm MSM8996 Pro (Snapdragon 821), SM6115 (Snapdragon 662), SM4250 (Snapdragon 460), SM6375 (Snapdragon 695) hinzugefügt. Platinen, SDM670 (Snapdragon 670), MSM8976 (Snapdragon 652), MSM8956 (Snapdragon 650), RK3326 Odroid-Go/rg351, Zyxel NSA310S, InnoComm i.MX8MM, Odroid Go Ultra.

Gleichzeitig hat die Latin American Free Software Foundation eine Version des völlig kostenlosen 6.2-Kernels erstellt – Linux-libre 6.2-gnu, frei von Firmware- und Treiberelementen, die unfreie Komponenten oder Codeabschnitte enthalten, deren Umfang begrenzt ist vom Hersteller. Die neue Version bereinigt neue Blobs im Nouveau-Treiber. Das Laden von Blobs ist in den Bluetooth-Treibern mt7622, ​​​​mt7996 wifi und bcm4377 deaktiviert. Blob-Namen in DTS-Dateien für die Aarch64-Architektur bereinigt. Aktualisierter Blob-Reinigungscode in verschiedenen Treibern und Subsystemen. Die Reinigung des s5k4ecgx-Treibers wurde gestoppt, da er aus dem Kernel entfernt wurde.

Source: opennet.ru

Kommentar hinzufügen