A Linux 6.16 kernel kiadása

Két hónapnyi fejlesztés után Linus Torvalds bemutatta a Linux 6.16 kernel kiadását. A legszembetűnőbb változások között szerepel az OpenVPN gyorsításhoz készült illesztőprogram, a Kexec HandOver mechanizmus, az öt szintű oldaltábla alapértelmezett aktiválása x86 esetében, a DCCP protokoll eltávolítása, a zloop blokkeszközillesztő, a core-dumpok UNIX-socketen való elküldésének lehetősége, az atomikus írás támogatása az XFS-ben, az audio offload feldolgozás USB-eszközökkel, optimalizációk az Ext4-ben, a TPM (Trusted Platform Module) virtuális illesztőprogramja, a Device Memory TCP teljes körű megvalósítása, a nem névtelen csatornák támogatása az io_uringban, a DRM-illesztőprogram Asahi integrációjának előkészítése, a 'usermode queue' mechanizmus az AMDGPU illesztőprogramban, az Intel TDE (Trusted Domain Extensions) és az Intel APE (Advanced Performance Extensions) támogatása.

Az új verzióba 15924 javítást fogadtak el 2145 fejlesztőtől, a javítás mérete 50 MB (a változások 13793 fájlt érintenek, 655451 kódsort adtak hozzá, 316441 sort eltávolítottak). Az előző kiadásban 15945 javítást fogadtak el 2154 fejlesztőtől, a javítás mérete 59 MB volt. A 6.16-os verzióban bemutatott változások körülbelül 45%-a illesztőprogramokkal kapcsolatos, körülbelül 16%-a a hardverarchitektúrákhoz specifikus kód frissítésével foglalkozik, 13% a hálózati veremhez kapcsolódik, 4%-a a fájlrendszerekhez, és 3%-a a kernel belső alrendszereihez.

A 6.16 kernel főbb újításai:

  • Lemezszubszisztéma, bemenet/kipontozás és fájlrendszerek
    • Zloop illesztőprogram került hozzáadásra zónás blokkolt loopback-eszközök létrehozásához, amelyek loop üzemmódban csatlakoztathatók. Az illesztőprogram a szokásos blokkeljáratok munkáját emulálja, több fájl használatával a meglévő fájlrendszerből (egy fájl tárol minden zóna számára). Ez a lehetőség hasznos lehet a fájlrendszerek, a device mapper kezelők és az alkalmazások tesztelésére, hogy támogassák a zónás eszközöket, amelyek blokkok vagy szektorok sorozatokra történő felosztását használják, amelyekbe csak sorozatos adatok hozzáadása engedélyezett, frissítve az egész blokkcsoportot.
    • Az XFS fájlrendszerben megvalósult a nagy adatmennyiségek atomikus írásának támogatása - több blokk most már atomikus üzemmódban írható (vagy minden blokk sikeresen kerül rögzítésre, vagy egyetlen blokk sem).
    • Az Ext4 fájlrendszerben javult a "fast commit" mechanizmus teljesítménye. Hozzáadták a nagy memóriapartíciók (large folios) támogatását a normál fájlok számára, ami a végzett tesztekben 37%-kal növelte a teljesítményt intenzív szekvenciális I/O esetén. Hozzáadták az atomikus írási műveletek támogatását több blokkot átfogva.
    • Az ext2 fájlrendszer meghajtójában elavultnak nyilvánították a DAX mechanizmus támogatását, amely közvetlen hozzáférést biztosít a fájlrendszerhez a lapkészlet megkerülésével. A DAX eltávolítása az ext2 meghajtóból az év végére tervezett. Az okok között szerepel, hogy az ext2 meghajtót stabil referenciaként tekintik, ahol tilos a nem elterjedt speciális lehetőségek használata.
    • Az OrangeFS, UFS, BFS és OMFS fájlrendszerek átálltak az új partíciómontázsi API használatára.
    • A sysctl-hez hozzáadták a vfs_cache_pressure_denom beállítást, amely lehetővé teszi a "dentry" (a könyvtári elemek belső reprezentációja) cache bejegyzéseinek számának kezelését memóriahiányos körülmények között. Minél magasabb az érték, annál több bejegyzést lehet eltávolítani a cache-ből (kevesebb bejegyzés marad a cache-ben) memóriahiány esetén.
    • A Bcachefs fájlrendszerben hozzáadták a "rebalance_on_ac_only" opciót, amely megakadályozza a rebalance műveletek és a háttérkompresszió végrehajtását, amikor a rendszer akkumulátorról működik. Gyorsítják a snapshotok és eszközök törlését. Csökkentett memóriafogyasztás olvasási módban történő csatlakozáskor. Lehetővé tették bizonyos helyreállítási műveletek háttérben való futtatását a fájlrendszer működésének leállítása nélkül.
    • A teljesítménye kezeléséért felelős alrendszernek engedélyezték, hogy önállóan végrehajthatja a fájlrendszerek és EFI változók fagyasztását a hibernálási és alvó üzemmódokban (ha a fájlrendszerek már fagyasztva vannak felhasználói térben, a fagyasztás nem történik meg újra).
    • Hozzáadták az EROFS teljesítményének gyorsítási lehetőségét az Intel processzorokba beépített QAT (QuickAssist Technology) gyorsító segítségével, amely eszközöket kínál a tömörítéssel és titkosítással kapcsolatos számítási feladatok felgyorsítására.
    • Az NFS esetében 1 MB-ról 4 MB-ra növelték a maximális adatcsomagméretet olvasási és írási műveletekhez (alapértelmezés szerint 1 MB az érték, mivel nem minden kliens támogat nagyobb méretet).
    • A nem privilegizált felhasználók, akik rendelkeznek CAP_SYS_ADMIN jogokkal egy külön felhasználói névtérben, de nem rendelkeznek kiterjesztett jogokkal a gyökérnévtérben, lehetőséget kaptak a fanotify mechanizmus használatára a fájlrendszerekben bekövetkező változások követésére.
    • Fájlok számára, amelyek a FUSE alrendszert használják, lehetőséget biztosítottak az összes gyorsítótárazott könyvtárelem (dentry) egyidejű törlésére. A FUSE alrendszerhez nagy lapokkal kapcsolatos támogatás került hozzáadásra.
    • Az OverlayFS fájlrendszerben megvalósították a nem privilegizált névtérben lévő adatrétegek létrehozásának támogatását, amelyekhez a dm-verity modulen alapuló integritás-ellenőrzés tartozik. Ez a lehetőség lehetővé teszi megbízható rétegek kombinálását a metaadatokkal a nem megbízható adatrétegekkel, amelyek nem privilegizált névtérben kerülnek feldolgozásra.
  • Memória és rendszerszolgáltatások
    • KHO (Kexec HandOver) mechanizmus került hozzáadásra, amely lehetővé teszi egy új kernel indítását a régiből anélkül, hogy a rendszer állapota elveszne. A vezérlés új kernel verzióba való átadása előtt a kernel kulcsfontosságú alrendszereinek állapotát a KHO segítségével serializálni lehet egy olyan memória területen, amelyet a további műveletek nem érintenek. Az új kernel, amikor átveszi a vezérlést, visszaállítja a serializált állapotot. A KHO alapjára épül a Live Update Orchestrator (LUO) alrendszer, amely lehetővé teszi a kernel újraindítását anélkül, hogy a perifériák működését leállítanák.
    • Hozzáadták a kernel build paramétert CONFIG_X86_NATIVE, amely lehetővé teszi a "-march=native" opció használatát a fordítás során, a jelenlegi rendszer CPU képességeinek figyelembevételével a optimalizálás érdekében.
    • Hozzáadták az Intel APX (Advanced Performance Extension) architektúra állapotbővítési kiterjesztés támogatását, amely 16 további általános célú regisztert biztosít (a meglévő 16 mellett), lehetővé téve a kevesebb memóriaolvasási és -írási művelet használatát a teljesítmény növelése és az energiafogyasztás csökkentése érdekében.
    • Hozzáadták a NUMA rendszerek memóriaelosztási politikájának automatikus konfigurálási módját, amelyben az összes csomópont súlyát újraszámolják, amikor új információ érkezik a sávszélességről rendszerindítás közben vagy memória forró csatlakoztatása során.
    • A futex-implementációban megjelent a folyamatok helyi hash-táblájának támogatása (local futex_hash_bucket), amely, ellentétben a korábban támogatott közös hash-táblával, minden folyamat számára, helyi egy adott folyamatra, és azt a folyamat összes szálával közösen használják. A helyi hash-táblák csak a PROCESS_PRIVATE futex-műveletekhez alkalmazhatók. Ezen kívül az új kiadásban bekerült a FUTEX2_NUMA és a FUTEX2_MPOL opciók támogatása, amelyek lehetővé teszik a futexek memóriaelhelyezésének befolyásolását, hogy közelebb kerüljenek azokhoz a folyamatokhoz, amelyek használják őket.
    • X86_64 rendszerek számára folyamatos támogatás került bevezetésre az öt szintből álló memóriaoldal-táblákhoz (a CONFIG_X86_5LEVEL paraméter, ami az öt szintű táblák aktiválásával foglalkozott, eltávolítva).
    • Az intel_pstate meghajtó, amely az Intel processzorok energiatakarékossági paramétereit (P-state) kezeli, hozzáadta annak támogatását, hogy az energiafogyasztás figyelembevételével dolgozó feladatütemezőt (EAS - Energy Aware Scheduling) alkalmazzon a hibrid processzorok esetében, amelyek nagy teljesítményű és energiahatékony CPU-magokat ötvöznek, mint például az Intel Lunar Lake.
    • A sysfs-be új interfészek kerültek bevezetésre: „/sys/devices/system/cpu/cpuN/cpu_capacity” az hibrid processzorokban különböző CPU-k képességeinek lekérdezésére, valamint a „/sys/devices/system/cpu/cpuidle/intel_c1_demotion” az CPU állapotában a magasabb teljesítmény fenntartásának kezelésére, még akkor is, ha a mag megpróbálja átállítani a CPU-t alacsonyabb energiafogyasztási állapotba (például a mag kérheti a C6 energiafogyasztási állapotba való átállítást, de a firmware a CPU intenzív ébresztésével hagyhatja a C1 állapotban).
    • ARM64 architektúrára hozzáadták a lazy preemption (PREEMPT_LAZY) támogatását, amely megfelel a teljes preemption („full preemption”) módnak realtime feladatok esetén (RR/FIFO/DEADLINE), de késlelteti a normál feladatok (SCHED_NORMAL) kiszorítását a tik határáig.
    • ARM64 architektúrára hozzáadták a SME (Scalable Matrix Extension) kiterjesztések használatának támogatását, amelyet a CONFIG_ARM64_SME paraméterrel lehet aktiválni.
    • A módosítások átvitele a Rust-for-Linux ágból folytatódik, amelyek a Rust nyelv második nyelvként való használatára vonatkoznak a driverek és kernel modulok fejlesztésében (a Rust alapértelmezés szerint nincs aktiválva, és nem követeli meg, hogy a Rust kötelező építési függőség legyen a kernelhez). A Rust nyelven írt modulok számára lehetőség van a configfs használatára. Kiegészítések történtek a grafikus driverek fejlesztéséhez szükséges absztrakciók biztosításában. A modules alloc, time, str, list, workqueue és page képességei bővítve lettek. Hozzáadva a „assert!” makró támogatása a KUnit alapú tesztekhez. Kiegészítve egy absztrakciós készlettel a CPU frekvencia kezelésére és az energiafogyasztással kapcsolatos API-k használatára. Támogatás került a 'xarray' adattípushoz.
    • A RISC-V architektúrához átkerült a getrandom() rendszerhívás megvalósítása, amelyet a vDSO (virtuális dinamikus megosztott objektum) mechanizmussal optimalizáltak, lehetővé téve a rendszerhívás kezelőjének átvitelét a kernelből a felhasználói térbe, ezzel elkerülve a kontextusváltásokat. A végzett tesztekben az optimalizálás 17-szer gyorsította meg a véletlen számok előállítását. RISC-V-hez a SiFive processzorokban használt Zicbop, Zabha és Svinval vektoros kiterjesztések támogatása is megvalósult.
    • A LoongArch architektúra esetében a CPU-k számának korlátját 256-ról 2048-ra emelték. Hozzáadva a SCHED_MC (többmagos) feladatütemező támogatása.
    • Lehetőséget biztosítanak Unix-socketek használatára fájlleírók átadásához. Az alkalmazások a setsockopt() függvénnyel a SO_PASSRIGHTS kapcsolóval letilthatják ezt a lehetőséget.
    • Lehetőség nyílt a kernel működésének nyomkövetésére használt gyűrűs pufferek felhasználói térbe történő leképezésére.
    • A kernel összeomlásjelentésének elkészítésére alkalmazott crash-dump kezelők most már használhatják a törött kernel által használt LUKS kulcsokat a crash dumpok titkosított fájlrendszerekbe való mentésére.
    • Az aszinkron bemenet/kimenet io_uring rendszerhez hozzáadva az IORING_OP_PIPE művelet, amely névtelen csövek létrehozására szolgál, hasonló a pipe2 rendszerhíváshoz, kivéve a rögzített fájlleírók támogatását.
    • Hozzáadva a kernel parancssori opciót a „rt_group_sched” kezelt feladatok tervezőjének aktiválására a realtime feladatok (SCHED_RR) számára. Az opció hasonló a Kconfig RT_GROUP_SCHED beállításához.
    • CXL (Compute Express Link) alapú eszközök számára, amely a CPU és a memóriaeszközök közötti nagy sebességű interakció megvalósítására használatos, támogatja a RAS (Reliability, Availability, Serviceability) kiterjesztések alkalmazását, amelyek lehetővé teszik a hibák azonosítására és kijavítására szolgáló különböző sémák megvalósítását. A CXL lehetővé teszi új memória területek csatlakoztatását, amelyeket külső memóriaeszközök biztosítanak, és ezeket mint további forrásokat használhatjuk a fizikai címtartomány bővítéséhez a rendszeres RAM (DDR) vagy állandó memória (PMEM) számára.
    • A kernel összeállításához szükséges minimális GCC verzió minden architektúrához a GCC 8 ágra emelkedett. Az összeállításhoz most már legalább a 2.30-as verziójú binutils csomag is szükséges.
    • Eltávolításra került az uselib() rendszerhívás, amely már régóta elavult, és helyette a megosztott könyvtárakhoz való közös hozzáféréshez az mmap() használatos.
  • Virtualizáció és biztonság
    • Kezdeti támogatás került hozzáadásra az Intel TDX (Trusted Domain Extensions) mechanizmus használatához, amely a KVM hypervisor alatt futó vendég rendszerek védelmét szolgálja a gazdaszerver adminisztrátora általi beavatkozások és a fizikai támadások ellen. A védelem a memória titkosításával valósul meg. virtuális gépekhez.
    • Hozzáadásra került egy virtuális TPM (Trusted Platform Module) illesztőprogram, amely lehetővé teszi a virtuális gépek számára a TPM-eszközökkel való interakciót, amelyeket az SVSM (Secure VM Service Module) modul emulál.
    • Újra lehetővé vált a GCC randstruct pluginnal való használat, amely a struktúrák elhelyezkedését véletlenszerűsíti a fordítási folyamat során, hogy nehezebbé tegye a sebezhetőségek kihasználását.
    • Hozzáadva az IMA (Integrity Measurement Architecture) technológia használatának lehetősége az új magok indításakor a kexec rendszerhívás segítségével történő integritás-ellenőrzéshez.
    • Munkát végeztek a SELinux teljesítményre gyakorolt hatásának csökkentésén. A hozzáférési ellenőrzések eredményeinek gyorsítása érdekében hozzáadták a könyvtárakhoz való hozzáférés ellenőrzéséhez szükséges cache-t. A genfscon szabályokhoz maszkolási lehetőség került bevezetésre.
    • Az EFI-vel való interakcióhoz használt kódban lehetőség nyílt a visszahívott rendszerkomponensek metainformációival rendelkező SBAT (UEFI Secure Boot Advanced Targeting) szakasz beágyazására.
    • A betöltött modulokban a '.static_call_sites' szakasz olvasási módban került átállításra a inicializálás befejezése után.
    • ARM 64 bites rendszerekhez a KVM hipervizorban bevezetésre került a beágyazott virtualizáció támogatása (alapértelmezés szerint ki van kapcsolva).
    • A KVM hipervizorban stabil támogatást nyújtanak a RISC-V architektúrához.
  • Hálózati alrendszer
    • Bevezetésre került az ovpn illesztőprogram, amely jelentősen felgyorsítja az OpenVPN teljesítményét azáltal, hogy a titkosítási, csomagfeldolgozási és kommunikációs vezérlési műveleteket a Linux kernel alá helyezi. Az illesztőprogram megszünteti a kontextusváltás költségeit, lehetővé teszi a munka optimalizálását a belső kernel API-k közvetlen elérésével, és megakadályozza az adatok lassú átvitelét a kernel és a felhasználói tér között (a titkosítás, visszafejtés és irányítás a modul által történik anélkül, hogy a forgalmat a felhasználói tér kezelőjéhez küldenék).
    • A Device Memory TCP mechanizmushoz hozzáadódott az eszközmemóriából származó adatok küldésének támogatása (TX path). Korábban a Device Memory TCP kernelbe való integrálásának megkönnyítése érdekében a funkcionalitás csak az adatok fogadására volt korlátozva (RX path). A Device Memory TCP lehetővé teszi a hálózati socketek használatát az eszközmemória tartalmának közvetlen küldésére az interneten (zero-copy üzemmódban), valamint a hálózati csomagok tartalmának közvetlen elhelyezését a memória területen a fogadó oldalon. A csomagokban átküldött adatok közvetlenül a hálózati kártyából a perifériás eszköz memóriájába (DMABUF), például a GPU videomemóriájába kerülnek, vagy közvetlenül a perifériás eszköz memóriájából a hálózati kártyára, megkerülve a CPU-t, míg a csomagok fejlécét a kernel normál puffereibe küldik.
    • Lehetővé vált a core-dumpok AF_UNIX socketen keresztüli küldése, ami biztonságosabb felhasználói térbeli core-dump feldolgozókat hozhat létre, amelyek nem függenek az állandó folyamatok kernel általi hívásától.
    • Eltávolításra került a DCCP (Datagram Congestion Control Protocol) hálózati protokoll támogatása, amely nem terjedt el, és öt éve nincs támogatás alatt a kernelben. A DCCP kernelből való eltávolítása megszünteti a TCP verem hatékonyságának növelését gátló akadályokat az inet_connection_sock adatstruktúra átdolgozása érdekében. A DCCP csomagszűréséhez szükséges netfilter modulok támogatása megmaradt.
    • A hiba kezelésének egyszerűsítése érdekében a SO_PEERPIDFD socketek használatakor a kernel most már át tudja adni a pidfd-t a már befejezett folyamatokhoz (a pidfd egy adott folyamathoz kapcsolódik, és ellentétben a pid-del, nem lehet újra hozzárendelni).
    • A BPF segítségével most már lehetőség van a hálózati veremben (qdiscs) található csomagkezelők létrehozására, amelyek befolyásolják a hálózati csomagok feldolgozásának sorrendjét.
    • A hálózati fájlszerver AFS-ben a GSSAPI (Generic Security Services API) került bevezetésre a kapcsolatok titkosításának kezelésére. szerverek YFS és OpenAFS.
    • Jelentős optimalizációk lettek bevezetve. Az IPv6 útválasztási táblák lezárásainak struktúrája átdolgozásra került (bizonyos műveletek a route-okkal akár 3-szor gyorsabban is végrehajthatók). A crc32c ellenőrző összegek programozott számításának felgyorsítása történt. A GRO motor akár 10%-kal gyorsabb a tunnelingolt UDP forgalom számára. Az TCP ügyfélzóna automatikus beállítása javult, és a használt alapértelmezett korlátok is megnövekedtek (a tesztek során az egyes szálak sávszélessége 200 Gbps csatornán keresztül 60%-kal nőtt).
    • A Netfilterben lehetőség nyílt a maszkok használatára a hálózati eszközök neveiben, amelyeket a netdev és a flowtable használnak. Az nft trace infrastruktúrájába integrálásra került a kapcsolatok nyomon követéséről szóló információ (conntrack). A kapcsolatok nyomon követésének (conntrack) tábláinak kinyerése a procfs-en keresztül felgyorsult.
  • Hardver
    • Bevezetésre került a USB interfésszel rendelkező hangkibocsátó eszközökre történő hangfolyamok feldolgozásának leválasztási támogatása (USB audio offload). Ez a változás jelentősen csökkentheti a hordozható eszközök energiafogyasztását, mivel lehetővé teszi a hangfolyam feldolgozását, míg a rendszer többi része alvó üzemmódban tartózkodik. Korábban az Android platformokhoz készült kernellel specifikus megvalósításon alapuló offload hangfeldolgozás volt érvényben USB-eszközök számára, míg most a fő kernelben egyetemes megvalósítás jelent meg, amelyet bármely projekt használhat.
    • Folytatódott a Nova meghajtó komponenseinek integrációja az NVIDIA GPU-khoz, amelyek GSP firmware-rel vannak felszerelve, kezdve a Turing mikroarchitektúrára épülő NVIDIA GeForce RTX 2000 sorozattól. A meghajtó Rust nyelven íródott. A múlt kiadásban hozzáadott nova-core komponens mellett, amely a GSP firmware-programozási interfészek feletti alapstruktúrákat valósít meg, a 6.16-os verzióban megjelent a kezdeti DRM meghajtó, a nova-drm (Direct Rendering Manager), amely lehetővé teszi a GPU-val való interakciót a felhasználói térből.
    • Megkezdődött az Asahi DRM meghajtó magba való integrálása az Apple AGX GPU-k számára, amelyeket az Apple Silicon chipekben alkalmaznak. A meghajtó Rust nyelven készült. E szakaszban a magba csak a szükséges UAPI fejlécfájlok kerültek be az Asahi meghajtóból, amelyek a Mesához szükségesek, míg az Asahi meghajtó főkódja később kerül integrálásra.
    • A Nouveau meghajtóba támogatás került hozzáadásra az NVIDIA Hopper és Blackwell GPU családjához.
    • Folytatódik az Intel Xe architektúrára épülő Xe DRM meghajtó (Direct Rendering Manager) fejlesztése, amely az Intel Arc családhoz tartozó videokártyákban és integrált grafikus rendszereken használatos, kezdve a Tiger Lake processzoroktól. Hozzáadva a különböző Intel GPU családokhoz való firmware fájlok használatának lehetősége.
    • Az AMDGPU meghajtóban támogatást valósítottak meg az "usermode queue" mechanizmushoz, amely lehetővé teszi saját felhasználói térbeli munkafolyamatok létrehozását és közvetlen GPU-ba történő küldését anélkül, hogy a mag szintű ütemezőhöz kellene fordulnia. Az "usermode queue" támogatása a Navi 4X és GFX 12 GPU-k számára érhető el.
    • Hangrendszerek támogatása került hozzáadásra az Intel WCL (Whiskey Lake), AMD ACP 7.x (Audio Co-Processor), Cirrus Logic CS35L63 és CS48L32, Everest Semiconductor ES8375 és ES8389, Pioneer DJM-V10, Longsoon-1 AC’97, NVIDIA Tegra264, Richtek ALC203, RT9123 és Rockchip SAI, valamint új Intel AVS platformok számára.
    • ARM platformok, SoC és eszközök támogatása került hozzáadásra: Samsung Exynos7870, Qualcomm Snapdragon X1P42100, Qualcomm MSM8926, RK3562, NXP i.MX94, Renesas RZ/V2N, Amlogic S6/S7/S7D, WonderMedia wm8950, Amlogic s805y, Allwinner A523, Toradex Verdin AM62P, ROCK 5B+, Nitrogen8M Plus, Retronix R-Car V4H Sparrow Hawk, MT8186 Ponyta Chromebook, VIA APC Rock/Paper, Renesas rz/t2h, ASUS Transformer Pad LTE TF300TL, LG Nexus 4, Google Pixel 4a, Raspberry Pi 2.
    • Eltávolításra került a videófelvevő kártyák meghajtója az STA2X11 chipjeivel.

Egy időben a Latin-Amerikai Szabad Szoftver Alapítvány kiadta a teljesen szabad 6.16-os Linux-libre 6.16-gnu magváltozatot, amely mentes az olyan firmware-ektől és driverektől, amelyek nem szabad összetevőket vagy gyártó által korlátozott kódterületeket tartalmaznak. A 6.16-os kiadásban semlegesítették a blobok betöltését az új Intel qat 6xxx crypto, ST vd55g1 szenzor, ath12k AHB wifi, Aeonsemi AS21xxx és MediaTek 25Gb Ethernet driverekben. Megtörtént a blobnevek tisztítása a Qualcomm és MediaTek ARM chipjeihez készült dts-fájlokban (devicetree). Frissítették a blobtisztító kódot a Nova Core, Nouveau, Realtek r8169 Ethernet, Qualcomm Iris, Venus, Mediatek mt7996 wifi, Qualcomm ath11k és ath12k wifi, Texas Instruments tas2781 és Renesas R-Car gen4 PCIe driverekben.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster