Release des Linux-Kernels 5.15.

Nach zwei Monaten Entwicklungszeit präsentierte Linus Torvalds die Veröffentlichung des Linux-Kernels 5.15. Zu den auffälligsten Änderungen gehören: ein neuer NTFS-Treiber mit Schreibunterstützung, das ksmbd-Modul mit einer Implementierung eines SMB-Servers, das DAMON-Subsystem für die Überwachung des Speicherzugriffs, Sperrprimitive für den Echtzeitbetrieb, Unterstützung von fs-verity in Btrfs und der Systemaufruf process_mrelease zur Reaktion auf Speichermangel sowie das Modul für Remote-Attestierung dm-ima.

In die neue Version wurden 13.499 Änderungen von 1.888 Entwicklern aufgenommen, die Patchgröße beträgt 42 MB (es wurden 10.895 Dateien geändert, 632.522 Codezeilen hinzugefügt und 299.966 Zeilen entfernt). Etwa 45 % der in 5.15 vorgenommenen Änderungen beziehen sich auf Gerätetreiber, rund 14 % betreffen die Aktualisierung architekturspezifischen Codes, 14 % stehen im Zusammenhang mit dem Netzwerk-Stack, 6 % mit Dateisystemen und 3 % mit internen Subsystemen des Kernels.

Hauptneuheiten:

  • Festplattensubsystem, Ein-/Ausgabe und Dateisysteme
    • Im Kernel wurde eine neue Implementierung des NTFS-Dateisystems aufgenommen, die von der Firma Paragon Software eröffnet wurde. Der neue Treiber kann im Schreibmodus arbeiten und unterstützt alle Funktionen der aktuellen Version NTFS 3.1, einschließlich erweiterter Dateiattribute, Zugriffskontrolllisten (ACL), Datenkomprimierungsmodus, effiziente Handhabung von Sparsity in Dateien und Wiederherstellung von Integrität aus dem Protokoll nach Störungen.
    • Im Btrfs-Dateisystem wurde die Unterstützung für den fs-verity-Mechanismus implementiert, der für die transparente Überwachung der Integrität und Authentizität einzelner Dateien anhand von zugehörigen kryptografischen Hashes oder Schlüsseln, die im Metadatenbereich gespeichert sind, verwendet wird. Zuvor war fs-verity nur für die Dateisysteme Ext4 und F2fs verfügbar.

      In Btrfs wurde auch die Unterstützung für die Zuordnung von Benutzer-IDs für eingebundene Dateisysteme hinzugefügt (zuvor war dies nur für die Dateisysteme FAT, ext4 und XFS möglich). Diese Funktion ermöglicht es, Dateien eines bestimmten Benutzers auf einem eingebundenen Fremdpartition mit einem anderen Benutzer im aktuellen System zuzuordnen.

      Zu den weiteren Änderungen in Btrfs gehören: beschleunigte Schlüsselaufnahme im Katalogindex zur Verbesserung der Dateierstellung; die Möglichkeit, raid0 mit einem Gerät und raid10 mit zwei Geräten zu betreiben (zum Beispiel während der Neukonfiguration des Arrays); die Option „rescue=ibadroots“, um fehlerhafte Extent-Bäume zu ignorieren; beschleunigte „send“-Operationen; reduzierte Konflikte bei Locking während der Umbenennungsoperationen; die Möglichkeit, 4K-Sektoren auf Systemen mit einer Seitenrammgröße von 64K zu verwenden.

    • In XFS wurde die Verwendung von Datesystemen nach 2038 stabilisiert. Ein Mechanismus zur verzögerten Deaktivierung von Inodes und die Unterstützung für verzögerte Installation und Löschung von Dateiattributen wurde implementiert. Um Probleme zu vermeiden, wurde die Möglichkeit entfernt, Disk Quotas für bereits eingehängte Partitionen zu deaktivieren (Quotas können zwar manuell deaktiviert werden, die zugehörige Zählung wird jedoch fortgesetzt, weshalb für eine vollständige Deaktivierung eine erneute Einhängung erforderlich ist).
    • In EXT4 wurden Verbesserungen zur Steigerung der Schreibgeschwindigkeit von delalloc-Puffern und zur Verarbeitung von verwaisten (orphan) Dateien vorgenommen, die weiterhin existieren, da sie geöffnet bleiben, aber keinen Verweis auf ein Verzeichnis haben. Die Behandlung von Discard-Operationen wurde aus dem jbd2-Kthread-Stream ausgelagert, um Blockierungen bei Metadatenoperationen zu vermeiden.
    • In F2FS wurde die Option „discard_unit=block|segment|section“ hinzugefügt, um Discard-Operationen (Markierung von freigegebenen Blöcken, die physisch nicht mehr gespeichert werden müssen) an die Ausrichtung gegenüber Block, Sektor, Segment oder Abschnitt zu binden. Zudem wurde die Unterstützung zur Verfolgung von Änderungslatenzen bei Ein-/Ausgabe eingeführt.
    • In dem Dateisystem EROFS (Extendable Read-Only File System) wurde die Unterstützung für direkten Ein-/Ausgabebetrieb für unkomprimierte Dateien sowie die Unterstützung für fiemap hinzugefügt.
    • In OverlayFS wurde die korrekte Verarbeitung der Mount-Flags „immutable“, „append-only“, „sync“ und „noatime“ implementiert.
    • In NFS wurde die Handhabung von Situationen verbessert, in denen der NFS-Server auf Anfragen nicht mehr reagiert. Die Möglichkeit, von einem bereits verwendeten, aber über eine andere Netzwerkadresse verfügbaren Punkt zu mounten, wurde hinzugefügt. сервераDie Vorbereitung zur Neugestaltung des FSCACHE-Subsystems hat begonnen.
    • Die Vorbereitung zur Umschreibung des FSCACHE-Subsystems hat begonnen.
    • Unterstützung für EFI-Partitionen mit nicht standardmäßiger GPT-Tabellenplatzierung wurde hinzugefügt.
    • Der neue Flag FAN_REPORT_PIDFD wurde im fanotify-Mechanismus implementiert, wodurch pidfd in den zurückgegebenen Metadaten angegeben wird. Pidfd hilft bei der Handhabung von Situationen mit der Wiederverwendung von PIDs, um Prozesse, die auf überwachte Dateien zugreifen, genauer zu identifizieren (pidfd ist mit einem bestimmten Prozess verknüpft und ändert sich nicht, während die PID nach Beendigung des aktuellen Prozesses, der mit dieser PID assoziiert ist, einem anderen Prozess zugeordnet werden kann).
    • Der Systemaufruf move_mount() wurde um die Möglichkeit erweitert, Mountpunkte zu bestehenden gemeinsamen Gruppen hinzuzufügen, was Probleme beim Speichern und Wiederherstellen des Prozessstatus im CRIU-Toolkit behebt, wenn mehrere Mountpunkte in isolierten Containern gemeinsam genutzt werden.
    • Schutz vor versteckten Race-Conditions wurde hinzugefügt, die potenziell zu Dateibeschädigungen führen konnten, wenn Daten aus dem Cache während der Verarbeitung von Lücken in der Datei gelesen wurden.
    • Die Unterstützung für verpflichtende (mandatory) Dateisperren, die durch die Blockierung von Systemaufrufen implementiert werden, die zu einer Dateiänderung führen, wurde eingestellt. Aufgrund möglicher Wettlaufbedingungen galten diese Sperren als unzuverlässig und wurden vor vielen Jahren als veraltet erklärt.
    • Das LightNVM-Subsystem, das direkten Zugriff auf SSD-Speichermedien ermöglichte, indem es die Emulationsschicht umging, wurde entfernt. LightNVM hat an Bedeutung verloren, nachdem die NVMe-Standards eingeführt wurden, die die Möglichkeit der Zonenbildung (ZNS, Zoned Namespace) vorsehen.
  • Speicher und Systemdienste
    • Das DAMON (Data Access MONitor) Subsystem wurde implementiert, um die mit dem Datenzugriff im Arbeitsspeicher verbundene Aktivität in Bezug auf den ausgewählten Prozess im Benutzerspeicher zu überwachen. Dieses Subsystem ermöglicht eine Analyse der Speicherbereiche, auf die der Prozess während seiner gesamten Laufzeit zugegriffen hat, und zeigt an, welche Speicherbereiche ungenutzt geblieben sind. Zu den Besonderheiten von DAMON zählen eine geringe CPU-Belastung, ein niedriger Speicherverbrauch, hohe Genauigkeit und vorhersehbare konstante Overheadkosten, die nicht von der Größe abhängen. Das Subsystem kann sowohl vom Kernel zur Optimierung des Speichermanagements als auch von Benutzerdienstprogrammen zur Analyse der Aktionen des Prozesses und zur Optimierung der Speichernutzung, beispielsweise durch die Freigabe von unnötigem Speicher, verwendet werden.
    • Der system call process_mrelease wurde implementiert, um den Prozess der Speicherfreigabe für Prozesse, die ihre Ausführung beenden, zu beschleunigen. Unter normalen Umständen erfolgt die Freigabe von Ressourcen und der Abschluss des Prozesses nicht sofort und kann aus verschiedenen Gründen verzögert werden, was die Funktion von im Nutzerraum arbeiteten Systemen, die frühzeitig auf Speicherengpässe reagieren, wie oomd (bereitgestellt in systemd) und lmkd (verwendet in Android), behindert. Mit dem Aufruf process_mrelease können solche Systeme die Rückgabe von Speicher von zwangsweise beendeten Prozessen vorhersehbarer initiieren.
    • Aus dem PREEMPT_RT-Kernelzweig, der die Unterstützung für den Echtzeitbetrieb entwickelt, wurden Anpassungen der Primitive zur Organisation von Sperren wie mutex, ww_mutex, rw_semaphore, spinlock und rwlock übertragen, die auf dem RT-Mutex-Subsystem basieren. Im SLUB-Slab-Allocator wurden Änderungen hinzugefügt, die die Arbeitsweise im PREEMPT_RT-Modus verbessern und die Auswirkungen auf Interrupts verringern.
    • In cgroup wurde die Unterstützung für das Scheduler-Attribut SCHED_IDLE hinzugefügt, das es ermöglicht, dieses Merkmal auf alle Processes der Gruppe anzuwenden, die zu einer bestimmten cgroup gehören. Das bedeutet, dass diese Prozesse nur ausgeführt werden, wenn im System keine anderen Aufgaben auf die Ausführung warten. Im Gegensatz zur individuellen Zuweisung des Attributs SCHED_IDLE an jeden Prozess wird bei der Zuweisung von SCHED_IDLE an die cgroup das relative Gewicht der Aufgaben innerhalb der Gruppe berücksichtigt.
    • Der Mechanismus zur Überwachung des Speicherbedarfs in cgroup wurde um die Möglichkeit erweitert, zusätzliche Datenstrukturen des Kernels, einschließlich der für Polling, Signalverarbeitung und Namensräume, zu verfolgen.
    • Die Unterstützung für asymmetrische Planung der Zuweisung von Aufgaben an Prozessorkerne wurde hinzugefügt auf Architekturen, bei denen einige CPUs die Ausführung von 32-Bit-Aufgaben zulassen, während andere nur im 64-Bit-Modus arbeiten (z. B. ARM). Der neue Modus ermöglicht es, bei der Planung der Ausführung von 32-Bit-Aufgaben nur die CPU zu berücksichtigen, die 32-Bit-Aufgaben unterstützen.
    • Im Interface der asynchronen Ein-/Ausgabe io_uring gibt es jetzt Unterstützung für das sofortige Öffnen von Dateien in der festen Dateitabelle fixed-file, ohne einen Dateideskriptor zu verwenden. Dies ermöglicht eine signifikante Beschleunigung bestimmter Arten von Operationen, widerspricht jedoch dem traditionellen UNIX-Prozess, bei dem Dateideskriptoren zum Öffnen von Dateien verwendet werden.

      In io_uring für das Block-I/O-Schichtsystem (BIO) wurde ein neuer Mechanismus zur Wiederverwendung ('BIO recycling') implementiert, der die Verwaltung des internen Speichers optimiert und die Zahl der pro Sekunde verarbeiteten Ein-/Ausgabeoperationen um etwa 10 % erhöht. Darüber hinaus wurden Unterstützung für die Systemaufrufe mkdirat(), symlinkat() und linkat() hinzugefügt.

    • Für BPF-Programme wurde die Möglichkeit implementiert, Timerereignisse anzufordern und zu verarbeiten. Ein Iterator für UNIX-Sockets wurde hinzugefügt, und es ist jetzt möglich, Socket-Optionen für setsockopt abzurufen und festzulegen. Der BTF-Dumper unterstützt nun typisierte Daten.
    • In NUMA-Systemen mit verschiedenen Speichertypen, die sich in ihrer Leistung unterscheiden, wird bei einem Mangel an freiem Speicherplatz der Transfer der verdrängten Speicherseiten aus dem dynamischen Speicher (DRAM) in den langsameren Persistent Memory anstelle der Löschung dieser Seiten realisiert. Tests haben gezeigt, dass diese Taktik in der Regel die Leistung auf solchen Systemen verbessert. Für NUMA wurde zudem die Möglichkeit implementiert, Speicherseiten für Prozesse aus einer ausgewählten Gruppe von NUMA-Knoten zuzuweisen.
    • Für die ARC-Architektur wurde die Unterstützung für drei- und vierstufige Seitenkampftabellen implementiert, was die Unterstützung von 64-Bit ARC-Prozessoren zukünftig ermöglichen wird.
    • Für die s390-Architektur wurde die Möglichkeit zur Anwendung des KFENCE-Mechanismus zur Identifizierung von Fehlern bei der Arbeit mit dem Speicher eingeführt, außerdem wurde die Unterstützung des KCSAN-Race Condition Detektors hinzugefügt.
    • Die Unterstützung für die Indizierung der über printk() ausgegebenen Nachrichten wurde hinzugefügt, was es ermöglicht, alle ähnlichen 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 verwendet nicht mehr den Modus MAP_DENYWRITE, was die Anzahl der Situationen verringert hat, die zu einem Schreibfehler im Zusammenhang mit ETXTBSY führen.
    • Das Trace-Subsystem hat einen neuen Typ von Prüfungen, die "Event-Probes", erhalten, die an bestehenden Trace-Events angehängt werden können, um ein eigenes Ausgabeformat zu definieren.
    • Beim Kompilieren des Kernels mit dem Clang-Compiler wird nun standardmäßig der eingebettete Assembler des LLVM-Projekts verwendet.
    • Im Rahmen des Projekts zur Bereinigung des Kerncodes von Compiler-Warnungen wurde ein Experiment mit der standardmäßig aktivierten Option „-Werror“ durchgeführt. Bei diesem Modus werden Compiler-Warnungen als Fehler behandelt. Während der Vorbereitung der Version 5.15 begann Linus, nur Änderungen zu akzeptieren, die keine Warnungen beim Kompilieren des Kernels erzeugen, und aktivierte das Kompilieren mit „-Werror“. Später stimmte er jedoch der Meinung zu, dass diese Entscheidung voreilig war, und verschob die Standardaktivierung von „-Werror“. Die Steuerung der Aktivierung des „-Werror“-Flags beim Kompilieren erfolgt über den Parameter WERROR, der standardmäßig auf den Wert COMPILE_TEST gesetzt ist, d.h. derzeit wird er nur bei Testkompilierungen aktiviert.
  • Virtualisierung und Sicherheit
    • Im Device Mapper (DM) wurde ein neuer Handler dm-ima hinzugefügt, der einen Mechanismus für Remote-Validierung auf Basis des IMA (Integrity Measurement Architecture) realisiert. Dieser ermöglicht es einem externen Dienst, den Zustand der Kernsubsysteme zu überprüfen, um deren Authentizität zu gewährleisten. In der Praxis erlaubt dm-ima, Speicher mit dem Device Mapper zu erstellen, die an externe Cloud-Systeme gebunden sind, bei denen die Integrität der gestarteten DM-Target-Konfiguration mithilfe von IMA überprüft wird.
    • In prctl() wurde eine neue Option PR_SPEC_L1D_FLUSH implementiert. Wenn diese aktiviert ist, beginnt der Kernel, den Inhalt des ersten Level-Caches (L1D) bei jedem Kontextwechsel zu leeren. Dieser Modus ermöglicht es, für die wichtigsten Prozesse zusätzlichen Schutz vor Seitenkanalangriffen bereitzustellen, die darauf abzielen, Daten abzufangen, die aufgrund von Verwundbarkeiten, verursacht durch spekulative Ausführung von Instruktionen in der CPU, im Cache verbleiben. 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 zur Erstellung von Kernen wurde implementiert, indem das GCC-Flag „-fzero-call-used-regs=used-gpr“ hinzugefügt wurde, das alle Register vor der Rückkehr aus einer Funktion auf Null setzt. Diese Option hilft, Informationen aus Funktionen zu schützen 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 zur Erstellung von Kernen für die ARM64-Architektur in Form von Clients für den Hypervisor Hyper-V wurde implementiert.
    • Ein neues Framework zur Entwicklung von Treibern namens „VDUSE“ wurde vorgeschlagen, das es ermöglicht, virtuelle Blockgeräte im Benutzerspeicher zu realisieren und Virtio als Transportmittel für den Zugriff aus Gastsystemen zu verwenden.
    • Ein Virtio-Treiber für den I2C-Bus wurde hinzugefügt, der es ermöglicht, I2C-Controller im Modus der Paravirtualisierung mit separaten Backends zu emulieren.
    • Es wurde ein Virtio-Treiber gpio-virtio hinzugefügt, der es Gastsystemen ermöglicht, auf die von der Hostsystem bereitgestellten GPIO-Pins zuzugreifen.
    • Die Möglichkeit, den Zugriff auf Speicherseiten für Geräte-Treiber mit DMA-Unterstützung auf Systemen ohne I/O MMU (Memory-Management-Einheit) einzuschränken, wurde hinzugefügt.
    • Im KVM-Hypervisor wurde die Möglichkeit implementiert, Statistiken in Form von linearen und logarithmischen Histogrammen auszugeben.
  • Netzwerksubsystem
    • Dem Kernel wurde das Modul ksmbd hinzugefügt, das einen Dateiserver implementiert, der das SMB3-Protokoll verwendet. Dieses Modul ergänzt die zuvor im Kernel verfügbare SMB-Client-Implementierung und ist im Vergleich zu einem im Benutzerraum betriebenen SMB-Server in Bezug auf Leistung, Speicherverbrauch und Integration in erweiterte Kernel-Funktionen effizienter. Ksmbd wird als hochleistungsfähige Erweiterung für Samba präsentiert, die für eingebettete Geräte bereit ist und bei Bedarf mit Samba-Tools und -Bibliotheken integriert werden kann. Zu den Funktionen von ksmbd gehört eine verbesserte Unterstützung der Technologie für verteiltes Dateicaching (SMB-Leases) auf lokalen Systemen, die den Datenverkehr erheblich reduziert. In Zukunft ist geplant, Unterstützung für RDMA („smbdirect“) und Protokollerweiterungen hinzuzufügen, die die Zuverlässigkeit der Verschlüsselung und die digitale Signaturverifizierung verbessern.
    • 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.
    • In der Implementierung von Netzwerkbrücken für VLAN wurde die Unterstützung für Multicast hinzugefügt.
    • Im Bonding-Treiber, der zur Aggregation von Netzwerkinterfaces verwendet wird, wurde die Unterstützung des XDP (eXpress Data Path)-Subsystems hinzugefügt, das ermöglicht, Netzwerkpakete vor deren Verarbeitung durch den Linux-Kernel-Netzwerkstack zu manipulieren.
    • Im drahtlosen Stack mac80211 wurde die Unterstützung für 6GHz STA (Special Temporary Authorization) in den Modi LPI, SP und VLP sowie die Möglichkeit hinzugefügt, separate TWT (Target Wake Time) im Access Point-Modus einzustellen.
    • Die Unterstützung für das MCTP (Management Component Transport Protocol) wurde hinzugefügt, das für die Interaktion zwischen Management Controllern und ihren zugehörigen Geräten (Host-Prozessoren, Peripheriegeräte usw.) verwendet wird.
    • Die Integration des MPTCP (MultiPath TCP) in den Kernel wurde fortgesetzt, eine Erweiterung des TCP-Protokolls zur Einrichtung einer TCP-Verbindung mit der gleichzeitigen Paketzustellung über mehrere Routen durch verschiedene Netzwerkinterfaces, die an unterschiedliche IP-Adressen gebunden sind. In der 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 im SRv6-Protokoll (Segment Routing IPv6) kapsuliert sind.
    • Unterstützung für Sockmaps für streambare Unix-Sockets wurde hinzugefügt.
  • Ausrüstung
    • Der amdgpu-Treiber unterstützt jetzt APU Cyan Skillfish (mit GPU Navi 1x). Für APU Yellow Carp wurde die Unterstützung für Video-Codecs implementiert. Die Unterstützung für GPU Aldebaran wurde verbessert. Neue Identifikatoren für Grafikkarten auf Basis der GPU Navi 24 „Beige Goby“ und RDNA2 wurden hinzugefügt. Eine verbesserte Umsetzung virtueller Bildschirme (VKMS) wurde vorgeschlagen. Die Unterstützung für die Temperaturüberwachung von AMD Zen 3-Chips wurde implementiert.
    • Im amdkfd-Treiber (für diskrete GPUs wie Polaris) wurde ein Manager für gemeinsam genutzten virtuellen Speicher (SVM, shared virtual memory) implementiert, der auf dem HMM-System (Heterogeneous Memory Management) basiert. Dies ermöglicht die Verwendung von Geräten mit eigenen Speicherverwaltungseinheiten (MMU), die auf den Hauptspeicher zugreifen können. Darüber hinaus kann mit HMM ein gemeinsamer Adressraum zwischen GPU und CPU eingerichtet werden, in dem die GPU auf den Hauptspeicher des Prozesses zugreifen kann.
    • Im i915-Treiber für Intel-Grafikkarten wurde die Verwendung des TTM-Speichermanagement-Systems erweitert, sowie die Möglichkeit zur Energieverbrauchssteuerung basierend auf GuC (Graphics micro Controller) hinzugefügt. Die Vorbereitung zur Implementierung der Unterstützung für die Intel ARC Alchemist-Grafikkarte und die Intel Xe-HP-GPU hat begonnen.
    • Im nouveau-Treiber wurde die Steuerung der Hintergrundbeleuchtung für eDP-Panels mithilfe von 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 Audiotreiber für Systeme mit AMD Van Gogh APU wurde hinzugefügt.
    • In den Staging-Zweig wurde der Realtek R8188EU-Treiber integriert, der den alten Treiber (rtl8188eu) für die Realtek RTL8188EU 802.11 b/g/n-Wireless-Chips ersetzt.
    • Der ocp_pt-Treiber wurde aufgenommen, der von Meta (Facebook) entwickelt wurde und für eine PCIe-Karte mit Implementierung von Miniatur-Atomuhren und GNSS-Empfängern dient, die zur Organisation isolierter Zeitmessungen eingesetzt werden können. Server Dieser unterstützt die Synchronisation präziser Zeitangaben.
    • Die Unterstützung für Smartphones wie Sony Xperia 10II (Snapdragon 665), Xiaomi Redmi 2 (Snapdragon MSM8916), Samsung Galaxy S3 (Snapdragon MSM8226) sowie Samsung Gavini/Codina/Kyle wurde hinzugefügt.
    • Unterstützung für ARM SoC und 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 (Server-Boards Facebook Cloudripper, Elbert und Fuji), 4KOpen STiH418-b2264 wurde hinzugefügt.
    • 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.
    • Ein LiteETH-Treiber mit Unterstützung für Ethernet-Controller, die in Software-SoCs LiteX (für FPGA) verwendet werden, wurde hinzugefügt.
    • Im usb-audio-Treiber wurde eine Option für lowlatency zur Steuerung des Betriebs im Minimallatenzmodus hinzugefügt. Außerdem wurde eine Option quirk_flags zur Übertragung von gerätespezifischen Einstellungen hinzugefügt.

Gleichzeitig hat die lateinamerikanische Stiftung für freie Software eine vollständig freie Version des Kerns 5.15 – Linux-libre 5.15-gnu – entwickelt, die von Firmware- und Treiberelementen, die nicht freie Komponenten oder Codeabschnitte enthalten, bereinigt wurde, deren Verwendung durch den Hersteller eingeschränkt ist. In der neuen Version wurde die Protokollierung des Abschlusses der Bereinigung implementiert. Probleme bei der Erstellung von Paketen mit mkspec wurden behoben, und die Unterstützung für Snap-Pakete wurde verbessert. Einige Warnungen, die bei der Verarbeitung der Header-Datei firmware.h ausgegeben wurden, wurden entfernt. Das Ausgeben bestimmter Warnungen („format-extra-args“, Kommentare, ungenutzte Funktionen und Variablen) ist beim Kompilieren im „-Werror“-Modus erlaubt. Die Bereinigung des Treibers gehc-achc wurde hinzugefügt. Der Code zur Bereinigung von Blobs in den Treiber- und Subsistems adreno, btusb, btintel, brcmfmac, aarch64 qcom wurde aktualisiert. Die Bereinigung der Treiber prism54 (entfernt) und rtl8188eu (auf r8188eu gewechselt) wurde eingestellt.

Quelle: opennet.ru

Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы 🔥 Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы | ProHoster