Linux 5.15-Kernel-Release

Nach zweimonatiger Entwicklungszeit hat Linus Torvalds die Veröffentlichung des Linux 5.15-Kernels vorgestellt. Zu den bemerkenswerten Änderungen gehören: neuer NTFS-Treiber mit Schreibunterstützung, ksmbd-Modul mit SMB-Server-Implementierung, DAMON-Subsystem zur Speicherzugriffsüberwachung, Echtzeit-Sperrprimitive, fs-verity-Unterstützung in Btrfs, Systemaufruf „process_mrelease“ für Speichermangel-Reaktionssysteme, Remote-Zertifizierungsmodul dm-ima.

Die neue Version erhielt 13499 Fixes von 1888 Entwicklern, die Patchgröße beträgt 42 MB (die Änderungen betrafen 10895 Dateien, 632522 Codezeilen wurden hinzugefügt, 299966 Zeilen wurden gelöscht). Etwa 45 % aller in 5.15 eingeführten Änderungen beziehen sich auf Gerätetreiber, etwa 14 % der Änderungen beziehen sich auf die Aktualisierung von Code, der für Hardwarearchitekturen spezifisch ist, 14 % beziehen sich auf den Netzwerkstapel, 6 % beziehen sich auf Dateisysteme und 3 % beziehen sich auf beziehen sich auf interne Kernel-Subsysteme.

Wichtigste Neuerungen:

  • Festplattensubsystem, E/A und Dateisysteme
    • Der Kernel übernimmt eine neue Implementierung des NTFS-Dateisystems, die von Paragon Software entdeckt wurde. Der neue Treiber kann im Schreibmodus arbeiten und unterstützt alle Funktionen der aktuellen Version von NTFS 3.1, einschließlich erweiterter Dateiattribute, Zugriffslisten (ACLs), Datenkomprimierungsmodus, effektive Arbeit mit Lücken in Dateien (sparse) und Wiedergabe von Änderungen aus dem Protokoll, um die Integrität nach Abstürzen wiederherzustellen.
    • Das Btrfs-Dateisystem implementiert Unterstützung für den fs-verity-Mechanismus, der zur transparenten Kontrolle der Integrität und Authentizität einzelner Dateien mithilfe kryptografischer Hashes oder Schlüssel verwendet wird, die mit im Metadatenbereich gespeicherten Dateien verknüpft sind. Bisher war fs-verity nur für Ext4- und F2fs-Dateisysteme verfügbar.

      Btrfs bietet außerdem Unterstützung für die Zuordnung von Benutzer-IDs für gemountete Dateisysteme (zuvor für FAT-, ext4- und XFS-Dateisysteme unterstützt). Mit dieser Funktion können Sie die Dateien eines bestimmten Benutzers auf einer gemounteten Fremdpartition mit einem anderen Benutzer auf dem aktuellen System abgleichen.

      Weitere Änderungen an Btrfs umfassen: Beschleunigung des Hinzufügens von Schlüsseln zu einem Verzeichnisindex, um die Leistung bei der Dateierstellung zu verbessern; die Möglichkeit, Raid0 mit einem Gerät und Raid10 mit zwei zu betreiben (z. B. bei der Neukonfiguration des Arrays); Option „rescue=ibadroots“ zum Ignorieren eines falschen Extent-Baums; Beschleunigung des „Sende“-Vorgangs; Sperrkonflikte während Umbenennungsvorgängen reduzieren; die Möglichkeit, 4K-Sektoren auf Systemen mit einer Seitengröße von 64K-Speicher zu verwenden.

    • Die Möglichkeit, Daten nach 2038 im FS zu verwenden, wurde in XFS stabilisiert. Ein Mechanismus zur verzögerten Inode-Deaktivierung und Unterstützung für das verzögerte Setzen und Entfernen von Dateiattributen wurde implementiert. Um Probleme zu beseitigen, wurde die Möglichkeit zum Deaktivieren von Festplattenkontingenten für bereits gemountete Partitionen entfernt (Sie können Kontingente zwangsweise deaktivieren, aber die damit verbundene Berechnung wird fortgesetzt, daher ist ein erneutes Mounten erforderlich, um sie vollständig zu deaktivieren).
    • In EXT4 wurde daran gearbeitet, die Leistung beim Schreiben von Delalloc-Puffer und bei der Verarbeitung verwaister (verwaister) Dateien zu erhöhen, die aufgrund der Tatsache, dass sie geöffnet bleiben, weiterhin vorhanden sind, sich jedoch als ohne Verzeichnisbindung herausstellten. Die Handhabung von Verwerfungsvorgängen wurde aus dem kthread-jbd2-Thread verschoben, um das Blockieren von Metadatenvorgängen zu vermeiden.
    • In F2FS wurde die Option „discard_unit=block|segment|section“ hinzugefügt, um Verwerfungsvorgänge (Markierung freigegebener Blöcke, die nicht mehr physisch gespeichert werden können) an die Ausrichtung relativ zu einem Block, Sektor, Segment oder Abschnitt zu binden. Unterstützung für die Verfolgung von E/A-Latenzänderungen hinzugefügt.
    • Das Dateisystem EROFS (Extendable Read-Only File System) bietet Unterstützung für direkte E/A für ohne Komprimierung gespeicherte Dateien sowie Unterstützung für Fiemap.
    • OverlayFS verarbeitet jetzt korrekt die unveränderlichen, nur anhängenden, synchronisierenden und Noatime-Mount-Flags.
    • NFS hat die Handhabung von Situationen verbessert, in denen der NFS-Server nicht mehr reagiert. Es wurde die Möglichkeit hinzugefügt, von einem bereits verwendeten Server aus zu mounten, der jedoch über eine andere Netzwerkadresse verfügbar ist.
    • Die Vorbereitungen für das Neuschreiben des FSCACHE-Subsystems haben begonnen.
    • Unterstützung für EFI-Partitionen mit nicht standardmäßiger Platzierung von GPT-Tabellen hinzugefügt.
    • Der Fanotify-Mechanismus implementiert ein neues Flag, FAN_REPORT_PIDFD, das bewirkt, dass pidfd in die zurückgegebenen Metadaten aufgenommen wird. Pidfd hilft bei der Handhabung von PID-Wiederverwendungssituationen, um Prozesse, die auf überwachte Dateien zugreifen, genauer zu identifizieren (pidfd ist einem bestimmten Prozess zugeordnet und ändert sich nicht, während eine PID einem anderen Prozess zugeordnet werden kann, nachdem der aktuelle Prozess, der dieser PID zugeordnet ist, beendet wird).
    • Es wurde die Möglichkeit hinzugefügt, Mount-Punkte zu vorhandenen freigegebenen Gruppen im Systemaufruf move_mount() hinzuzufügen, wodurch Probleme beim Speichern und Wiederherstellen des CRIU-Prozessstatus behoben werden, wenn mehrere Mount-Bereiche in isolierten Containern gemeinsam genutzt werden.
    • Schutz vor versteckten Race Conditions hinzugefügt, die möglicherweise Dateien beschädigen könnten, wenn aus dem Cache gelesen wird, während Lücken in einer Datei verarbeitet werden.
    • Obligatorische Dateisperren werden nicht mehr unterstützt. Sie werden durch das Blockieren von Systemaufrufen implementiert, die eine Datei ändern. Aufgrund möglicher Rennbedingungen galten diese Sperren als unzuverlässig und wurden vor vielen Jahren nicht mehr unterstützt.
    • Das LightNVM-Subsystem wurde entfernt, das den direkten Zugriff auf das SSD-Laufwerk unter Umgehung der Emulationsschicht ermöglichte. LightNVM verlor seine Bedeutung nach dem Aufkommen von NVMe-Standards, die die Möglichkeit der Zonierung vorsehen (ZNS, Zoned Namespace).
  • Speicher- und Systemdienste
    • Das DAMON-Subsystem (Data Access MONitor) wurde implementiert, mit dem Sie die Aktivität überwachen können, die mit dem Zugriff auf Daten im RAM in Bezug auf den ausgewählten Prozess verbunden ist, der im Benutzerbereich ausgeführt wird. Mit dem Subsystem können Sie analysieren, auf welche Speicherbereiche der Prozess während der gesamten Betriebszeit zugegriffen hat und welche Speicherbereiche nicht beansprucht wurden. Zu den Merkmalen von DAMON gehören eine geringe CPU-Auslastung, ein geringer Speicherverbrauch, eine hohe Genauigkeit und ein vorhersehbarer, fester Overhead, der nicht von der Größe abhängt. Das Subsystem kann sowohl vom Kernel zur Optimierung der Speicherverwaltung als auch von User-Space-Dienstprogrammen verwendet werden, um zu verstehen, was ein Prozess tut, und um die Speichernutzung zu optimieren, beispielsweise um Speicher für das System zurückzugewinnen.
    • Der Systemaufruf „process_mrelease“ wurde implementiert, um den Prozess der Speicherfreigabe eines Prozesses zu beschleunigen, der seine Ausführung beendet. Unter normalen Umständen erfolgen die Ressourcenfreigabe und die Prozessbeendigung nicht sofort und können aus verschiedenen Gründen verzögert werden, was die frühen Speicherreaktionssysteme des Benutzerbereichs wie oomd (bereitgestellt von systemd) und lmkd (von Android verwendet) beeinträchtigt. Durch den Aufruf von „process_mrelease“ können solche Systeme die Speicherrückgewinnung von zwangsweise beendeten Prozessen vorhersehbarer initiieren.
    • Aus dem PREEMPT_RT-Kernelzweig, der Unterstützung für den Echtzeitbetrieb entwickelt, wurden die Varianten von Primitiven zum Organisieren von Mutex-, ww_mutex-, rw_semaphore-, Spinlock- und rwlock-Sperren basierend auf dem RT-Mutex-Subsystem übertragen. Am SLUB-Slab-Allokator wurden Änderungen hinzugefügt, um die Leistung im PREEMPT_RT-Modus zu verbessern und die Auswirkungen auf Interrupts zu verringern.
    • Der cgroup wurde Unterstützung für das Taskplaner-Attribut SCHED_IDLE hinzugefügt, wodurch dieses Attribut allen Prozessen der Gruppe, die in einer bestimmten cgroup enthalten sind, gleichzeitig bereitgestellt werden kann. Diese. Diese Prozesse werden nur gestartet, wenn keine anderen Aufgaben im System auf ihre Ausführung warten. Anders als beim individuellen Festlegen des SCHED_IDLE-Attributs für jeden Prozess wird beim Binden von SCHED_IDLE an eine Kontrollgruppe bei der Auswahl einer auszuführenden Aufgabe die relative Gewichtung der Aufgaben innerhalb der Gruppe berücksichtigt.
    • Der Mechanismus zur Speicherverbrauchsabrechnung in cgroup wurde um die Möglichkeit erweitert, zusätzliche Kernel-Datenstrukturen zu verfolgen, einschließlich solcher, die für Abfragen, Signalverarbeitung und Namespaces erstellt wurden.
    • Unterstützung für asymmetrische Planung der Aufgabenbindung an Prozessorkerne auf Architekturen hinzugefügt, in denen einige CPUs 32-Bit-Aufgaben zulassen und andere nur im 64-Bit-Modus arbeiten (z. B. ARM). Der neue Modus ermöglicht, dass bei der Planung von 32-Bit-Aufgaben nur CPUs berücksichtigt werden, die 32-Bit-Aufgaben unterstützen.
    • Die asynchrone E/A-Schnittstelle io_uring unterstützt jetzt das direkte Öffnen von Dateien in der Indextabelle mit festen Dateien ohne Verwendung eines Dateideskriptors, was es ermöglicht, einige Arten von Vorgängen erheblich zu beschleunigen, aber im Widerspruch zum traditionellen Unix-Prozess steht, bei dem Dateideskriptoren verwendet werden Dateien öffnen.

      io_uring für das BIO-Subsystem (Block I/O Layer) implementiert einen neuen Wiederverarbeitungsmechanismus („BIO-Recycling“), der den Overhead bei der Verwaltung des internen Speichers reduziert und die Anzahl der verarbeiteten I/O-Vorgänge pro Sekunde um etwa 10 % erhöht. io_uring fügt außerdem Unterstützung für die Systemaufrufe mkdirat(), symlinkat() und linkat() hinzu.

    • Für BPF-Programme ist die Möglichkeit implementiert, Timer-Ereignisse abzufragen und zu verarbeiten. Ein Iterator für UNIX-Sockets und die Möglichkeit hinzugefügt, Socket-Optionen für setsockopt abzurufen und festzulegen. Dem BTF-Dumper wurde Unterstützung für typisierte Daten hinzugefügt.
    • Auf NUMA-Systemen mit unterschiedlichen Speichertypen, die sich in der Leistung unterscheiden, wird bei Erschöpfung des freien Speicherplatzes die Übertragung vorbelegter Speicherseiten vom dynamischen Speicher (DRAM) in einen langsameren persistenten Speicher (Persistent Memory) implementiert, anstatt diese Seiten zu löschen . Tests haben gezeigt, dass diese Taktik im Allgemeinen die Leistung auf diesen Systemen verbessert. NUMA implementiert außerdem die Möglichkeit, Speicherseiten für einen Prozess aus einem ausgewählten Satz von NUMA-Knoten zuzuweisen.
    • Für die ARC-Architektur wurde die Unterstützung von drei- und vierstufigen Speicherseitentabellen implementiert, was später die Implementierung der Unterstützung für 64-Bit-ARC-Prozessoren ermöglichen wird.
    • Für die s390-Architektur wurde die Möglichkeit implementiert, den KFENCE-Mechanismus zur Fehlererkennung bei der Arbeit mit dem Speicher zu verwenden, und Unterstützung für den KCSAN-Race-Condition-Detektor wurde hinzugefügt.
    • Unterstützung für die Indizierung der Liste der über printk() ausgegebenen Nachrichten hinzugefügt, wodurch Sie alle derartigen Nachrichten auf einmal extrahieren und Änderungen im Benutzerbereich verfolgen können.
    • mmap() hat die Option VM_DENYWRITE abgelehnt und den MAP_DENYWRITE-Modus aus dem Kernel-Code entfernt, wodurch die Anzahl der Situationen verringert wurde, die zum Blockieren von Dateischreibvorgängen mit einem ETXTBSY-Fehler führten.
    • Dem Trace-Subsystem wurde ein neuer Typ von „Ereignissonden“ hinzugefügt, die durch Definition eines benutzerdefinierten Ausgabeformats an vorhandene Trace-Ereignisse angehängt werden können.
    • Beim Erstellen des Kernels mit dem Clang-Compiler wird nun standardmäßig der Inline-Assembler aus dem LLVM-Projekt verwendet.
    • Im Rahmen eines Projekts, um den Kernel von Code zu befreien, der vom Compiler Warnungen erzeugt, wurde ein Experiment mit der standardmäßigen Einbeziehung des „-Werror“-Modus durchgeführt, in dem Compiler-Warnungen als Fehler verarbeitet werden. In Vorbereitung auf die Veröffentlichung von 5.15 begann Linus, nur Änderungen zu akzeptieren, die nicht zu Warnungen beim Erstellen des Kernels führten, und aktivierte den Build mit „-Werror“, stimmte dann aber der Meinung zu, dass diese Entscheidung verfrüht sei, und verschob die Aufnahme von „ -Werror" standardmäßig. Die Einbeziehung des Flags „-Werror“ während der Kompilierung wird über den Parameter WERROR gesteuert, der standardmäßig auf COMPILE_TEST gesetzt ist, d. h. Bisher ist es nur in Test-Builds enthalten.
  • Virtualisierung und Sicherheit
    • Dem Device Mapper (DM) wurde ein neuer dm-ima-Handler mit der Implementierung eines Remote-Attestierungsmechanismus basierend auf dem IMA-Subsystem (Integrity Measurement Architecture) hinzugefügt, der es einem externen Dienst ermöglicht, den Zustand von Kernel-Subsystemen zu überprüfen, um dies zu überprüfen ihre Authentizität. In der Praxis können Sie mit dm-ima mithilfe von Device Mapper mit externen Cloud-Systemen verknüpfte Repositorys erstellen, in denen mithilfe von IMA die Gültigkeit der gestarteten DM-Zielkonfiguration überprüft wird.
    • prctl() verfügt über eine neue Option, PR_SPEC_L1D_FLUSH, die bewirkt, dass der Kernel bei jedem Kontextwechsel mit dem Leeren des L1D-Cache beginnt. In diesem Modus können Sie selektiv einen zusätzlichen Schutz gegen den Einsatz von Kanalangriffen Dritter für die wichtigsten Prozesse implementieren, die durchgeführt werden, um die Daten zu ermitteln, die sich aufgrund von Schwachstellen, die durch die spekulative Ausführung von Anweisungen in verursacht werden, im Cache abgelegt haben die CPU. Die Kosten für die Aktivierung von PR_SPEC_L1D_FLUSH (standardmäßig nicht aktiviert) bedeuten eine erhebliche Leistungseinbuße.
    • Die Möglichkeit zum Erstellen des Kernels wurde durch Hinzufügen des Flags „-fzero-call-used-regs=used-gpr“ zu GCC implementiert, das sicherstellt, dass alle Register auf Null zurückgesetzt werden, bevor die Steuerung von der Funktion zurückgegeben wird. Mit dieser Option können Sie sich vor Informationslecks aus Funktionen schützen und die Anzahl der Blöcke, die zum Erstellen von ROP-Gadgets (Return-Oriented Programming) in Exploits geeignet sind, um 20 % reduzieren.
    • Implementierung der Möglichkeit, Kernel für die ARM64-Architektur in Form von Clients für den Hyper-V-Hypervisor zusammenzustellen.
    • Es wird ein neues Framework zur Entwicklung von Treibern „VDUSE“ vorgeschlagen, das die Implementierung virtueller Blockgeräte im Benutzerraum und die Verwendung von Virtio als Transportmittel für den Zugriff von Gastsystemen ermöglicht.
    • Virtio-Treiber für den I2C-Bus hinzugefügt, der es ermöglicht, I2C-Controller im Paravirtualisierungsmodus über separate Backends zu emulieren.
    • Virtio-Treiber gpio-virtio hinzugefügt, um Gastsystemen den Zugriff auf vom Hostsystem bereitgestellte GPIO-Leitungen zu ermöglichen.
    • Es wurde die Möglichkeit hinzugefügt, den Zugriff auf Speicherseiten für Gerätetreiber mit DMA-Unterstützung auf Systemen ohne E/A-MMU (Speicherverwaltungseinheit) einzuschränken.
    • Der KVM-Hypervisor verfügt über die Möglichkeit, Statistiken in Form von linearen und logarithmischen Histogrammen anzuzeigen.
  • Netzwerk-Subsystem
    • Das ksmbd-Modul wurde dem Kernel mit der Implementierung eines Dateiservers unter Verwendung des SMB3-Protokolls hinzugefügt. Das Modul ergänzt die bisher im Kernel verfügbare Implementierung des SMB-Clients und ist im Gegensatz zum User-Space-SMB-Server effizienter in Bezug auf Leistung, Speicherverbrauch und Integration mit erweiterten Kernel-Funktionen. Ksmbd wird als leistungsstarke, eingebettete Erweiterung für Samba angepriesen, die sich bei Bedarf in Samba-Tools und -Bibliotheken integrieren lässt. Zu den Fähigkeiten von ksmbd gehört die verbesserte Unterstützung der verteilten Datei-Caching-Technologie (SMB-Leases) auf lokalen Systemen, die den Datenverkehr deutlich reduzieren kann. Für die Zukunft planen sie die Unterstützung von RDMA („smbdirect“) und Protokollerweiterungen im Zusammenhang mit der Stärkung der Zuverlässigkeit der Verschlüsselung und Überprüfung durch digitale Signaturen.
    • Der CIFS-Client unterstützt nicht mehr NTLM und weniger sichere Authentifizierungsalgorithmen, die auf dem DES-Algorithmus basieren und im SMB1-Protokoll verwendet werden.
    • Bei der Implementierung von Netzwerkbrücken für VLAN wird Multicast-Unterstützung implementiert.
    • Dem Bonding-Treiber für die Aggregation von Netzwerkschnittstellen wurde Unterstützung für das XDP-Subsystem (eXpress Data Path) hinzugefügt, mit dem Sie Netzwerkpakete bereits vor der Verarbeitung durch den Netzwerkstapel des Linux-Kernels manipulieren können.
    • Der drahtlose Stack mac80211 unterstützt 6 GHz STA (Special Temporary Authorization) in den LPI-, SP- und VLP-Modi sowie die Möglichkeit, separate TWT (Target Wake Time) im Access Point-Modus festzulegen.
    • Unterstützung für das MCTP-Protokoll (Management Component Transport Protocol) hinzugefügt, das für die Interaktion von Steuerungscontrollern und den zugehörigen Geräten (Hostprozessoren, Peripheriegeräte usw.) verwendet wird.
    • Weitere Integration in den Kern von MPTCP (MultiPath TCP), einer Erweiterung des TCP-Protokolls zur Organisation des Betriebs einer TCP-Verbindung mit der gleichzeitigen Zustellung von Paketen auf mehreren Routen über verschiedene Netzwerkschnittstellen, die an unterschiedliche IP-Adressen gebunden sind. Die neue Version bietet Unterstützung für Fullmesh-Adressen.
    • Handler für Netzwerkströme, die im SRv6-Protokoll (Segment Routing IPv6) gekapselt sind, wurden zu Netfilter hinzugefügt.
    • Sockmap-Unterstützung für Unix-Stream-Sockets hinzugefügt.
  • Ausrüstung
    • Der amdgpu-Treiber unterstützt Cyan Skillfish APUs (ausgestattet mit GPU Navi 1x). Für APU Yellow Carp wurde Unterstützung für Video-Codecs implementiert. Verbesserte Unterstützung für GPU Aldebaran. Neue Karten-IDs basierend auf GPU Navi 24 „Beige Goby“ und RDNA2 hinzugefügt. Es wird eine verbesserte Implementierung virtueller Bildschirme (VKMS) vorgeschlagen. Unterstützung für die Temperaturüberwachung des AMD Zen 3-Chips hinzugefügt.
    • Der amdkfd-Treiber (für diskrete GPUs wie Polaris) implementiert einen gemeinsam genutzten virtuellen Speichermanager (SVM, Shared Virtual Memory) basierend auf dem HMM-Subsystem (Heterogeneous Memory Management), mit dem Sie Geräte mit eigenen Speicherverwaltungseinheiten (MMU) verwenden können , Speicherverwaltungseinheit), die auf den Hauptspeicher zugreifen kann. Unter Verwendung von HMM können Sie einen gemeinsamen Adressraum zwischen der GPU und der CPU organisieren, in dem die GPU auf den Hauptspeicher des Prozesses zugreifen kann.
    • Der i915-Treiber für Intel-Grafikkarten erweitert die Nutzung des TTM-Videospeichermanagers und bietet die Möglichkeit, den Stromverbrauch auf Basis von GuC (Graphics Micro Controller) zu verwalten. Die Vorbereitungen zur Implementierung der Unterstützung für die Intel ARC Alchemist-Grafikkarte und die Intel Xe-HP-GPU haben begonnen.
    • Der Nouveau-Treiber implementiert die Hintergrundbeleuchtungssteuerung von eDP-Panels mithilfe von DPCD (DisplayPort Configuration Data).
    • Unterstützung für Adreno 7c Gen 3 und Adreno 680 GPUs zum MSM-Treiber hinzugefügt.
    • Der IOMMU-Treiber wurde für den Apple M1-Chip implementiert.
    • Soundtreiber für Systeme hinzugefügt, die auf AMD Van Gogh APUs basieren.
    • Der Realtek R8188EU-Treiber wurde zum Staging-Zweig hinzugefügt, der die alte Version des Treibers (rtl8188eu) für Realtek RTL8188EU 802.11 b/g/n Wireless-Chips ersetzt.
    • Der ocp_pt-Treiber wurde für das von Meta (Facebook) entwickelte PCIe-Board mit der Implementierung einer Miniatur-Atomuhr und eines GNSS-Empfängers übernommen, mit denen der Betrieb separater Server für eine präzise Zeitsynchronisation organisiert werden kann.
    • Unterstützung für Sony Xperia 10II (Snapdragon 665), Xiaomi Redmi 2 (Snapdragon MSM8916), Samsung Galaxy S3 (Snapdragon MSM8226) und Samsung Gavini/Codina/Kyle-Smartphones 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, ualcomm Snapdragon SDM636/SM8150, Renesas R-Car H3e hinzugefügt Boards -2G/M3e-2G, Marvell CN913x, ASpeed ​​​​AST2600 (Facebook Cloudripper, Elbert und Fuji Serverboards), 4KOpen STiH418-b2264.
    • 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 ATNA33X C hinzugefügt 20, Samsung DB7430, WideChips WS2401 .
    • LiteETH-Treiber mit Unterstützung für Ethernet-Controller hinzugefügt, die in LiteX-Software-SoCs (für FPGAs) verwendet werden.
    • Dem USB-Audio-Treiber wurde eine Option für niedrige Latenz hinzugefügt, um zu steuern, ob der Betrieb mit niedriger Latenz aktiviert ist. Außerdem wurde die Option quirk_flags hinzugefügt, um gerätespezifische Einstellungen zu übergeben.

Gleichzeitig entwickelte die Latin American Free Software Foundation eine Variante des völlig freien Kernels 5.15 – Linux-libre 5.15-gnu, frei von Firmware- und Treiberelementen, die unfreie Komponenten oder Codeabschnitte enthalten, deren Umfang durch begrenzt ist der Hersteller. Das neue Release implementiert die Ausgabe einer Meldung an das Protokoll über den Abschluss der Reinigung. Probleme beim Packen mit mkspec behoben, Unterstützung für Snap-Pakete verbessert. Einige Warnungen aus der Verarbeitung der Header-Datei „firmware.h“ entfernt. Erlaubte Ausgabe einiger Arten von Warnungen („format-extra-args“, Kommentare, nicht verwendete Funktionen und Variablen) beim Erstellen im „-Werror“-Modus. Reinigung des gehc-achc-Treibers hinzugefügt. Aktualisierter Blob-Bereinigungscode in Adreno-, Btusb-, Btintel-, Brcmfmac- und Aarch64-QCOM-Treibern und -Subsystemen. Die Reinigung der Prism54-Treiber (entfernt) und von rtl8188eu (ersetzt durch r8188eu) wurde gestoppt.

Source: opennet.ru

Kommentar hinzufügen