NVIDIA nyílt forráskódú videó-illesztőprogramok a Linux kernelhez

Az NVIDIA bejelentette, hogy a saját video-illesztőprogramjaiban található összes kernelmodul nyílt forráskódú. A kód MIT és GPLv2 licenc alatt érhető el. Az x86_64 és aarch64 architektúrákhoz a Linux kernel 3.10-es és újabb kiadásaival rendelkező rendszereken lehetőség van modulok létrehozására. A felhasználói térben használt firmware és könyvtárak, például a CUDA, az OpenGL és a Vulkan veremek továbbra is védettek maradnak.

A kód közzététele várhatóan jelentősen megnöveli az NVIDIA GPU-k használhatóságát Linux rendszereken, erősíti az integrációt az operációs rendszerrel, valamint egyszerűsíti az illesztőprogramok szállítását és a problémák hibakeresését. Az Ubuntu és a SUSE fejlesztői már bejelentették a nyílt modulokra épülő csomagok kialakítását. A nyílt modulok jelenléte leegyszerűsíti az NVIDIA illesztőprogramok integrációját a Linux kernel nem szabványos egyedi buildjein alapuló rendszerekkel. Az NVIDIA esetében a nyílt forráskód segít javítani a Linux-illesztőprogramok minőségét és biztonságát a közösséggel való szorosabb interakció, valamint a változások harmadik fél általi felülvizsgálatának és a független auditálásnak köszönhetően.

Megjegyzendő, hogy a bemutatott nyílt kódbázist egyidejűleg használják a szabadalmaztatott illesztőprogramok kialakításában, különösen a ma közzétett 515.43.04 béta ágban. Ebben az esetben az elsődleges egy zárt tároló, és a javasolt nyílt kódbázis a védett illesztőprogramok minden egyes kiadásához bizonyos feldolgozás és tisztítás után öntvény formájában frissül. Az egyedi változtatások előzményei nem szerepelnek, csak egy általános véglegesítés az illesztőprogram minden verziójához (jelenleg az 515.43.04 illesztőprogram moduljainak kódja van közzétéve).

A közösség tagjai azonban lehetőséget kapnak arra, hogy lekérési kérelmeket nyújtsanak be a javításaik és a modulkód módosításaik beküldésére, de ezek a változtatások nem jelennek meg külön változtatásként a nyilvános adattárban, hanem előbb integrálódnak a fő privát adattárba. és csak ezután vihető át a többi változtatással a megnyitáshoz. A fejlesztésben való részvételhez megállapodást kell aláírnia az átadott kód tulajdonjogának átruházásáról az NVIDIA-ra (Contributor License Agreement).

A kernelmodulok kódja két részre oszlik: az operációs rendszerhez nem kötődő általános komponensekre és egy rétegre a Linux kernellel való interakcióhoz. A telepítési idő csökkentése érdekében a közös összetevőket továbbra is szabadalmaztatott NVIDIA-illesztőprogramokban szállítják egy már összeállított bináris fájl formájában, és a réteget minden rendszeren összeállítják, figyelembe véve az aktuális kernelverziót és a meglévő beállításokat. A következő kernelmodulok állnak rendelkezésre: nvidia.ko, nvidia-drm.ko (Direct Rendering Manager), nvidia-modeset.ko és nvidia-uvm.ko (Egységes videomemória).

A GeForce sorozat és a munkaállomás GPU-támogatás alfa minőségben szerepel, de az adatközponti számításgyorsító és párhuzamos számítási (CUDA) architektúrákban használt NVIDIA Turing és NVIDIA Ampere architektúrákon alapuló dedikált GPU-k teljes mértékben támogatottak és teszteltek. projektek (a nyílt forráskód már készen áll a védett illesztőprogramok cseréjére). A munkaállomások GeForce- és GPU-támogatásának stabilizálását a jövőbeli kiadásokhoz tervezik. Végső soron a nyílt forráskód-alap stabilitásának szintje a védett illesztőprogramok szintjére kerül.

Jelenlegi formájában a publikált modulok beépítése a fő kernelbe lehetetlen, mivel ezek nem felelnek meg a kernel kódolási stílusának és architekturális konvencióinak, de az NVIDIA a Canonical, a Red Hat és a SUSE együttműködésével kívánja megoldani ezt a problémát. stabilizálja az illesztőprogram-szoftver interfészt. Ezenkívül a közzétett kód felhasználható a kernelben található nyílt forráskódú Nouveau meghajtó fejlesztésére, amely ugyanazt a GPU firmware-t használja, mint a szabadalmaztatott illesztőprogram.

Forrás: opennet.ru

Hozzászólás