Na twee maanden ontwikkeling heeft Linus Torvalds de release van de Linux-kernel 5.18 gepresenteerd. Onder de meest opvallende veranderingen zijn: een grondige opruiming van verouderde functionaliteit, de afkondiging van de Reiserfs-bestandssysteem als verouderd, implementatie van traceerevenementen voor gebruikersprocessen, ondersteuning voor bescherming tegen exploits van Intel IBT, opname van een modus voor het detecteren van buffer overflow bij gebruik van de functie memcpy(), implementatie van een mechanisme voor het volgen van functie-aanroepen (fprobe), verbeterde prestaties van de CPU-planner voor AMD Zen-processors, opname van een stuurprogramma voor het beheersen van de functionaliteit van Intel-CPU's (SDS) en integratie van een aantal patches voor de herstructurering van headerbestanden, waarbij de toepassing van de C11-standaard is goedgekeurd.
In de nieuwe versie zijn 16206 correcties van 2127 ontwikkelaars opgenomen (in de vorige release waren er 14203 correcties van 1995 ontwikkelaars). De patchgrootte bedraagt 108 MB (de wijzigingen hebben betrekking op 14235 bestanden, toevoeging van 1340982 regels code en verwijdering van 593836 regels). Ongeveer 44% van alle wijzigingen in 5.18 zijn gerelateerd aan stuurprogramma's voor apparaten, ongeveer 16% heeft betrekking op de update van code die specifiek is voor hardwarearchitecturen, 11% is gerelateerd aan de netwerkinfrastructuur, 3% aan bestandssystemen en 3% aan interne subsysteem van de kernel.
Belangrijkste vernieuwingen in de kernel 5.18:
- Opslagsubsystemen, invoer/uitvoer en bestandssystemen
- In het Btrfs-bestandssysteem is ondersteuning toegevoegd voor het doorgeven van gecomprimeerde gegevens tijdens send- en receive-operaties. Voorheen decompresserde de verzendende zijde de gegevens die in gecomprimeerde vorm waren opgeslagen, terwijl de ontvangende zijde deze opnieuw compressie voordat ze werden weggeschreven. In de kernel 5.18 krijgen toepassingen in de gebruikersruimte die gebruikmaken van send/receive-aanroepen de mogelijkheid om gecomprimeerde gegevens door te geven zonder deze opnieuw te verpakken. Deze functionaliteit is gerealiseerd dankzij nieuwe ioctl-operaties BTRFS_IOC_ENCODED_READ en BTRFS_IOC_ENCODED_WRITE, waarmee informatie rechtstreeks naar en van extenties kan worden gelezen en geschreven.
Bovendien is de prestaties van fsync in Btrfs verbeterd. Er is een mogelijkheid toegevoegd voor deduplicatie en het uitvoeren van reflink (klonen van bestandsmetadata met verwijzing naar reeds bestaande gegevens zonder deze daadwerkelijk te kopiëren) voor de hele opslag, niet beperkt tot de montagepunten.
- In de modus van directe invoer/uitvoer (Direct I/O) is het mogelijk om toegang te krijgen tot versleutelde bestanden bij het gebruik van inline-versleuteling in fscrypt, waarbij versleutelings- en ontsleutelingsoperaties worden uitgevoerd door de opslagcontroller, niet door de kernel. Bij normale versleuteling door de kernel is toegang tot versleutelde bestanden via Direct I/O, zoals eerder, niet mogelijk, omdat de toegang tot de bestanden omzeilt de bufferingsmechanisme van de kernel.
- De NFS-server ondersteunt standaard het NFSv3-protocol, dat nu geen aparte inschakeling meer vereist en beschikbaar is bij de algemene inschakeling van NFS. NFSv3 wordt beschouwd als de belangrijkste en altijd ondersteunde versie van NFS, terwijl de ondersteuning voor NFSv2 in de toekomst mogelijk zal worden stopgezet. De efficiëntie van het lezen van inhoud van mappen is aanzienlijk verbeterd.
- Het bestandssysteem ReiserFS is geclassificeerd als verouderd en zal in 2025 worden verwijderd. Het verouderd verklaren van ReiserFS zal de onderhoudskosten voor de gemeenschappelijke wijzigingen in bestandssystemen verlagen, die verband houden met de ondersteuning van een nieuwe API voor het mounten, iomap en volumina.
- Voor het bestandssysteem F2FS is de mogelijkheid geïmplementeerd om gebruikersidentificatienummers van gemounte bestandssystemen te mappen, wat wordt gebruikt om bestanden van een bepaalde gebruiker op een gemounte externe partitie overeen te laten komen met een andere gebruiker in het huidige systeem.
- De code voor het berekenen van statistieken in de Device-mapper handlers is herzien, wat heeft geleid tot een significante verhoging van de nauwkeurigheid van de accounting in handlers zoals dm-crypt.
- Voor NVMe-apparaten is ondersteuning voor 64-bits checksums geïmplementeerd voor integriteitscontrole.
- Voor het bestandssysteem exfat is een nieuwe mountoptie 'keep_last_dots' voorgesteld, die het verwijderen van punten aan het einde van de bestandsnaam verbiedt (in Windows worden punten aan het einde van de naam standaard verwijderd).
- In EXT4 is de prestatie van de fast_commit-modus verbeterd en de schaalbaarheid vergroot. De mountoptie 'mb_optimize_scan', die de prestaties in situaties van hoge fragmentatie van het bestandssysteem verbetert, is aangepast voor gebruik met bestanden met extensies.
- De ondersteuning voor write streams in de subsysteem die de werking van block devices mogelijk maakt, is beëindigd. Deze functionaliteit was bedoeld voor SSD's, maar heeft nooit brede verspreiding gekend en er zijn momenteel geen apparaten die deze modus ondersteunen; het is onwaarschijnlijk dat dit in de toekomst zal veranderen.
- In het Btrfs-bestandssysteem is ondersteuning toegevoegd voor het doorgeven van gecomprimeerde gegevens tijdens send- en receive-operaties. Voorheen decompresserde de verzendende zijde de gegevens die in gecomprimeerde vorm waren opgeslagen, terwijl de ontvangende zijde deze opnieuw compressie voordat ze werden weggeschreven. In de kernel 5.18 krijgen toepassingen in de gebruikersruimte die gebruikmaken van send/receive-aanroepen de mogelijkheid om gecomprimeerde gegevens door te geven zonder deze opnieuw te verpakken. Deze functionaliteit is gerealiseerd dankzij nieuwe ioctl-operaties BTRFS_IOC_ENCODED_READ en BTRFS_IOC_ENCODED_WRITE, waarmee informatie rechtstreeks naar en van extenties kan worden gelezen en geschreven.
- Geheugen en systeemdiensten
- De integratie van een patchset is begonnen die de tijd voor het opnieuw samenstellen van de kernel aanzienlijk kan verkorten door de hierarchische structuur van headerbestanden te herstructureren en het aantal kruisafhankelijkheden te verminderen. In kernel 5.18 zijn patches opgenomen die de structuur van de headerbestanden van de scheduler (kernel/sched) optimaliseren. In vergelijking met de vorige release is de CPU-tijd tijdens het samenstellen van de kernel/sched-code met 61% verminderd, en de daadwerkelijke tijd is met 3,9% afgenomen (van 2,95 naar 2,84 seconden).
- In de kernelcode is het gebruik van de C11-standaard, gepubliceerd in 2011, toegestaan. Voorheen moest de aan de kernel toegevoegde code voldoen aan de ANSI C-specificatie (C89), die al in 1989 was vastgesteld. In de build-scripts van kernel 5.18 is de optie '--std=gnu89' vervangen door '--std=gnu11 -Wno-shift-negative-value'. Het gebruik van de C17-standaard is overwogen, maar dit zou een verhoging van de minimaal ondersteunde GCC-versie met zich meebrengen; de ondersteuning voor C11 valt echter binnen de huidige vereisten voor de GCC-versie (5.1).
- De prestaties van taakplanning op AMD-processoren met Zen-microarchitectuur zijn verbeterd; voor elke node met lokale geheugens zijn meerdere Last Level Caches (LLC) beschikbaar gesteld. In deze nieuwe versie is het onevenwicht in LLC tussen NUMA-nodes opgelost, wat bij bepaalde soorten belasting heeft geleid tot een aanzienlijke verhoging van de prestaties.
- De hulpmiddelen voor het traceren van applicaties in de gebruikersruimte zijn uitgebreid. In de nieuwe kernelversie is het mogelijk gemaakt voor gebruikersprocessen om traceerevenementen (User events) te creëren en gegevens naar de traceerbuffer te schrijven, die door typische kernel traceerutilities zoals ftrace en perf kunnen worden bekeken. De traceerevenementen uit de gebruikersruimte zijn geïsoleerd van de traceerevenementen van de kernel. De status van de evenementen kan worden bekeken via het bestand /sys/kernel/debug/tracing/user_events_status, en het registreren van een evenement en het schrijven van gegevens kan via het bestand /sys/kernel/debug/tracing/user_events_data.
- Een mechanism voor het volgen van functie-aanroepen — fprobe — is toegevoegd. De fprobe API is gebaseerd op ftrace, maar beperkt zich alleen tot de mogelijkheid om callback-handlers aan function entry- en exit-punten te koppelen. In tegenstelling tot kprobes en kretprobes, stelt het nieuwe mechanisme in staat om één handler voor meerdere functies tegelijk te gebruiken.
- De ondersteuning voor oudere ARM-processors (ARMv4 en ARMv5) zonder Memory Management Unit (MMU) is stopgezet. De ondersteuning voor ARMv7-M systemen zonder MMU blijft behouden.
- De ondersteuning voor de RISC-achtige architectuur NDS32, die werd gebruikt in de processoren van Andes Technologies, is stopgezet. De code is verwijderd vanwege gebrek aan onderhoud en onbehoorlijke vraag naar ondersteuning van NDS32 in de meeste Linux-kernelversies (de overgebleven gebruikers maken gebruik van gespecialiseerde kernel-builds van hardwareproducenten).
- Standaard is de kernel-build met ondersteuning voor het uitvoerbare bestandstype a.out voor de architecturen alpha en m68k uitgeschakeld, waarin dit bestandstype nog steeds wordt gebruikt. Waarschijnlijk zal de ondersteuning voor het verouderde a.out-formaat binnenkort volledig uit de kernel worden verwijderd. Plannen om het a.out-formaat te verwijderen, worden sinds 2019 besproken.
- Voor de PA-RISC-architectuur is minimale ondersteuning voor het vDSO-mechanisme (virtual dynamic shared objects) geïmplementeerd, dat een beperkte set systeemoproepen biedt die toegankelijk zijn in de gebruikersruimte zonder contextwisseling. De ondersteuning van vDSO maakt het mogelijk om uit te voeren met een niet-uitvoerbare stack.
- Ondersteuning voor het Intel HFI (Hardware Feedback Interface) mechanisme is toegevoegd, waarmee hardware informatie kan doorgeven aan de kernel over de huidige prestaties en energie-efficiëntie van elke CPU.
- Er is een driver toegevoegd voor het Intel SDSi (Software-Defined Silicon) mechanisme, waarmee het mogelijk is om de inschakeling van extra mogelijkheden in de processor te beheren (bijvoorbeeld gespecialiseerde instructies en extra cache-geheugen). Het idee is dat chips met geblokkeerde uitbreidingsfuncties tegen een lagere prijs kunnen worden geleverd, die vervolgens 'aangekocht' en extra mogelijkheden kunnen worden geactiveerd zonder dat de chip hardwarematig hoeft te worden vervangen.
- De amd_hsmp-driver is toegevoegd voor ondersteuning van de AMD HSMP (Host System Management Port)-interface, die toegang biedt tot processorbeheermogelijkheden via een set speciale registers die zijn geïntroduceerd in de serverprocessoren AMD EPYC, beginnend met generatie Fam19h. Bijvoorbeeld, via HSMP kunnen gegevens over energieverbruik en temperatuur worden verkregen, frequentiebeperkingen worden ingesteld, verschillende prestatieniveaus worden geactiveerd en de geheugenparameters worden beheerd.
- In de interface voor asynchrone invoer/uitvoer io_uring is de optie IORING_SETUP_SUBMIT_ALL gerealiseerd voor het registreren van een set van bestandsdescriptors in de ringbuffer, evenals de operatie IORING_OP_MSG_RING, die het mogelijk maakt om een signaal van de ene ringbuffer naar een andere ringbuffer te verzenden.
- In het DAMOS (Data Access Monitoring-based Operation Schemes)-mechanisme, dat het mogelijk maakt om geheugen vrij te geven op basis van de toegangssnelheid tot het geheugen, zijn de mogelijkheden voor controle over geheugentransacties vanuit de gebruikersruimte uitgebreid.
- De derde serie patches is geïntegreerd met de implementatie van het concept van geheugenpagina-folio's (page folios), die lijken op samengestelde pagina's (compound pages), maar onderscheiden zich door verbeterde semantiek en een duidelijkere organisatie van de werking. Het gebruik van folio's stelt je in staat om het geheugen in sommige subsystemen van de kernel sneller te beheren. In de voorgestelde patches is de overgang naar folio's van interne geheugenbeheersfuncties gerealiseerd, inclusief varianten van de functie get_user_pages(). Ondersteuning voor het creëren van grote folio's is geïmplementeerd in de code voor voorspellend datalezen.
- In het buildsysteem is ondersteuning voor omgevingsvariabelen USERCFLAGS en USERLDFLAGS toegevoegd, waarmee extra vlaggen aan de compiler en linker kunnen worden doorgegeven.
- In het eBPF-subsysteem in het BTF (BPF Type Format)-mechanisme, dat informatie biedt voor typecontrole in BPF-pseudocode, is de mogelijkheid geïmplementeerd om annotaties toe te voegen aan variabelen die naar geheugengebieden in de gebruikersruimte verwijzen. Annotaties helpen het BPF-codeverificatiesysteem beter om geheugentoegangen te detecteren en te verifiëren.
- Een nieuwe geheugenallocatiehandler is voorgesteld voor het opslaan van geladen BPF-programma's, die het mogelijk maakt om geheugen efficiënter te gebruiken in situaties waarin een groot aantal BPF-programma's wordt geladen.
- In the system call madvise(), which provides means for optimizing process memory management, a flag MADV_DONTNEED_LOCKED has been added, complementing the existing flag MADV_DONTNEED, through which the kernel can be notified in advance about the impending release of a memory block, i.e., that this block is no longer needed and can be used by the kernel. Unlike MADV_DONTNEED, the use of the MADV_DONTNEED_LOCKED flag is permissible for pages of memory that are locked in RAM, which, when the madvise call is made, are evicted without changing their locked status and, in the event of subsequent access to the block and generating a 'page fault', are returned while maintaining the binding. Additionally, a modification has been made to allow the use of the MADV_DONTNEED flag with large memory pages in HugeTLB.
- Virtualisatie en beveiliging
- For the x86 architecture, support has been added for the Intel IBT (Indirect Branch Tracking) execution protection mechanism, which hinders the use of exploit construction techniques utilizing return-oriented programming (ROP), where the exploit is formed as a chain of calls to already existing chunks of machine instructions in memory, ending with a return control instruction (usually, this is at the end of functions). The essence of the implemented protection method is to block indirect jumps into function bodies by adding a special instruction ENDBR at the beginning of the function and allowing execution via indirect jumps only if the jump goes to this instruction (an indirect call via JMP and CALL must always hit the ENDBR instruction, which is placed at the very start of the function).
- A stricter boundary check for buffers in the functions memcpy(), memmove(), and memset() has been implemented, performed at compile time when enabling the CONFIG_FORTIFY_SOURCE mode. The added change comes down to checking for overflow beyond the boundaries of struct elements, the size of which is known. It is noted that this implemented capability would have blocked all buffer overflows related to memcpy() in the kernel, identified for at least the last three years.
- De tweede helft van de code voor de bijgewerkte implementatie van de pseudowillekeurige getallengenerator RDRAND is toegevoegd, die verantwoordelijk is voor de werking van de apparaten /dev/random en /dev/urandom. De nieuwe implementatie is opmerkelijk vanwege de uniformiteit in de werking van /dev/random en /dev/urandom, de toevoeging van een bescherming tegen duplicaten in de stroom van willekeurige getallen bij opstarten. virtuele machines en de overstap naar het gebruik van de hashfunctie BLAKE2s in plaats van SHA1 voor entropiemengoperaties. Deze wijziging heeft de veiligheid van de pseudowillekeurige getallengenerator verhoogd door het problematische SHA1-algoritme te elimineren en herschrijfproblemen in de initiële RNG-vector te voorkomen. Aangezien het BLAKE2s-algoritme SHA1 in termen van prestaties overtreft, heeft het gebruik ervan ook een positieve impact op de prestaties gehad.
- Voor de ARM64-architectuur is ondersteuning toegevoegd voor een nieuw algoritme voor pointer-authenticatie - 'QARMA3', dat sneller is dan het QARMA-algoritme en tegelijkertijd een adequaat beveiligingsniveau behoudt. De technologie maakt gebruik van gespecialiseerde ARM64-instructies voor het verifiëren van retouradressen met digitale handtekeningen, die worden opgeslagen in de ongebruikte hogere bits van de pointer zelf.
- Voor de ARM64-architectuur is ondersteuning geïmplementeerd voor het bouwen met inschakeling van de bescherming tegen herschrijving van het retouradres vanuit een functie in geval van een bufferoverflow in GCC 12. De essentie van de bescherming is het opslaan van het retouradres in een aparte 'schaduw'-stack na de controle overdragen aan de functie en het extraheren van dat adres vóór het verlaten van de functie.
- Een nieuwe sleutelopslag (keyring) is toegevoegd - 'machine', die de systeem eigenaar sleutels (MOK, Machine Owner Keys) bevat en wordt ondersteund in de shim-loader. Deze sleutels kunnen worden gebruikt voor de ondertekening met een digitale handtekening van kernelcomponenten die na de initiële opstartfase worden geladen (bijv. kernelmodules).
- Ondersteuning voor asymmetrische privésleutels voor TPM is verwijderd, die in een verouderde versie van TPM zijn voorgesteld, bekend zijn met veiligheidsproblemen en niet praktisch zijn toegepast.
- Er is bescherming toegevoegd tegen gehele getaloverflow voor gegevens van het type size_t. In de code worden de handlers size_mul(), size_add() en size_sub() gebruikt, die veilig vermenigvuldigen, optellen en aftrekken van grootte met het type size_t mogelijk maken.
- Bij het samenstellen van de kernel zijn de vlaggen “-Warray-bounds” en “-Wzero-length-bounds” ingeschakeld, die waarschuwingen geven wanneer de index buiten de arraygrenzen valt en bij het gebruik van arrays met een lengte van nul.
- De virtio-crypto driver heeft ondersteuning toegevoegd voor versleuteling met behulp van het RSA-algoritme.
- Netwerk subsysteem
- In de implementatie van netwerkschakelaars is ondersteuning toegevoegd voor de port binding mode (vergrendelde modus), waarbij gebruikers verkeer alleen via een toegestaan MAC-adres kunnen verzenden. Ook is de mogelijkheid toegevoegd om meerdere structuren te gebruiken voor het evalueren van de status van het Spanning Tree Protocol (STP). Voorheen kon er alleen directe binding naar STP (1:1) voor VLANs plaatsvinden, waarbij elke VLAN onafhankelijk werd beheerd. In de nieuwe versie is de parameter mst_enable toegevoegd, die, wanneer ingeschakeld, ervoor zorgt dat de status van de VLANs wordt gecontroleerd door de MST-module (Multiple Spanning Trees) en de binding van VLANs kan overeenkomen met het M:N-model.
- De integratie van middelen voor het volgen van de oorzaken van pakketafwijzing (reden codes) in de netwerkgelaagdheid is voortgezet. De reden code wordt tijdens het vrijgeven van geheugen dat aan het pakket is gekoppeld, verzonden en maakt het mogelijk om situaties te registreren zoals het afwijzen van een pakket vanwege fouten in de velden van de header, spoofingdetectie door de rp_filter, een onjuiste checksum, geheugen tekort, activering van IPSec XFRM-regels, een ongeldig TCP-volgnummer, enzovoorts.
- Er is de mogelijkheid toegevoegd om netwerkpakketten door te geven vanuit BPF-programma's die zijn uitgevoerd vanuit de gebruikersruimte in de BPF_PROG_RUN-modus, waarbij BPF-programma's in de kernel worden uitgevoerd maar het resultaat naar de gebruikersruimte terugsturen. Pakketten worden verzonden met behulp van het XDP (eXpress Data Path) subsysteem. Live verwerking van pakketten wordt ondersteund, waarbij de XDP-handler in real-time netwerkpakketten kan omleiden naar de netwerkstack of naar andere apparaten. Het is ook mogelijk om softwarematige externe verkeersgenerators te maken of netwerkframes in de netwerkstack in te voegen.
- Voor BPF-programma's die aan netwerkscgroups zijn gekoppeld, zijn hulpfuncties aangeboden voor het expliciet instellen van de waarde die door systeemaanroepen wordt geretourneerd, wat een uitgebreidere informatie over de redenen voor het blokkeren van systeemaanroepen mogelijk maakt.
- De XDP (eXpress Data Path) subsysteem heeft ondersteuning toegevoegd voor gefragmenteerde pakketten die in meerdere buffers zijn geplaatst, wat het mogelijk maakt om Jumbo-frames in XDP te verwerken en TSO/GRO (TCP Segmentation Offload/Generic Receive Offload) voor XDP_REDIRECT toe te passen.
- Het proces van het verwijderen van netwerk namenruimten is aanzienlijk versneld, wat nodig was in sommige grote systemen met een hoog verkeersvolume.
- Apparatuur
- In de amdgpu-driver is de technologie voor adaptieve synchronisatie FreeSync standaard ingeschakeld, waarmee de verversingssnelheid van de informatie op het scherm kan worden aangepast, wat zorgt voor een vloeiende ervaring zonder beeldscheuren tijdens het gamen en het bekijken van video's. Ondersteuning voor de GPU Aldebaran is als stabiel verklaard.
- In de i915-driver is ondersteuning toegevoegd voor Intel Alderlake N-chips en discrete grafische kaarten Intel DG2-G12 (Arc Alchemist).
- In de nouveau-driver is ondersteuning voor hogere bitrates voor de interfaces DP/eDP en ondersteuning voor kabelverlengers lttprs (Link-Training Tunable PHY Repeaters) verzekerd.
- In subsysteem drm (Direct Rendering Manager) zijn in de drivers armada, exynos, gma500, hyperv, imx, ingenic, mcde, mediatek, msm, omap, rcar-du, rockchip, sprd, sti, tegra, tilcdc, xen en vc4 ondersteuning voor de parameter nomodeset toegevoegd, waarmee het schakelen van videomodi op kernel-niveau kan worden uitgeschakeld en het gebruik van middelen voor hardwareversnelling van rendering kan worden stopgezet, terwijl alleen de functionaliteit gerelateerd aan de systeem framebuffer behouden blijft.
- Ondersteuning toegevoegd voor ARM SoC Qualcomm Snapdragon 625/632 (gebruikt in smartphones LG Nexus 5X en Fairphone FP3), Samsung Exynos 850, Samsung Exynos 7885 (gebruikt in Samsung Galaxy A8), Airoha (Mediatek/EcoNet) EN7523, Mediatek mt6582 (tablet Prestigio PMT5008 3G), Microchip Lan966, Renesas RZ/G2LC, RZ/V2L, Tesla FSD, TI K3/AM62 en i.MXRTxxxx.
- Ondersteuning toegevoegd voor ARM-apparaten en -borden van 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, Prestigio PMT5008 3G tablet), Allwinner (A20-Marsboard), Amlogic (Amediatek X96-AIR, CYX A95XF3-AIR, Haochuangy H96-Max, Amlogic AQ222 en OSMC Vero 4K+), Aspeed (Quanta S6Q, ASRock ROMED8HM3), Marvell MVEBU/Armada (Ctera C200 V1 en V2 NAS), Mstar (DongShanPiOne, Miyoo Mini), NXP i.MX (Protonic PRT8MM, emCON-MX8M Mini, Toradex Verdin, Gateworks GW7903).
- Ondersteuning toegevoegd voor audiosystemen en 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. Een initiële implementatie van de audiodriver voor de DSP-chip Intel AVS is toegevoegd. Ondersteuning voor drivers voor Intel ADL en Tegra234 is bijgewerkt, evenals verbeteringen voor de geluidssteun op apparaten van Dell, HP, Lenovo, ASUS, Samsung en Clevo.
Tegelijkertijd heeft de Latijns-Amerikaanse Free Software Foundation een volledig vrij kernversie 5.18 — Linux-libre 5.18-gnu samengesteld, vrijgemaakt van firmware-elementen en stuurprogramma's die onvrije componenten of codefragmenten bevatten, waarvan het gebruik door de fabrikant is beperkt. In de nieuwe release zijn de stuurprogramma's voor MIPI DBI-panelen, VPU Amphion, WiFi MediaTek MT7986 WMAC, Mediatek MT7921U (USB) en Realtek 8852a/8852c, Intel AVS audiogweep en Texas Instruments TAS5805M schoongemaakt. Ook zijn de DTS-bestanden voor verschillende Qualcomm SoC-prosessoren op basis van de AArch64-architectuur schoongemaakt. De code voor het opruimen van blobs in de stuurprogramma's en subsystemen van AMD GPU, MediaTek MT7915, Silicon Labs WF200+ WiFi, Mellanox Spectrum Ethernet, Realtek rtw8852c, Qualcomm Q6V5, Wolfson ADSP, MediaTek HCI UART is geüpdatet.
Bron: opennet.ru
