Odprtokodni video gonilniki NVIDIA za jedro Linuxa

NVIDIA je objavila, da so vsi moduli jedra, vključeni v njen nabor lastniških video gonilnikov, odprtokodni. Koda je odprta pod licencama MIT in GPLv2. Možnost gradnje modulov je na voljo za arhitekturi x86_64 in aarch64 v sistemih z jedrom Linux 3.10 in novejšimi izdajami. Vdelana programska oprema in knjižnice, ki se uporabljajo v uporabniškem prostoru, kot so skladi CUDA, OpenGL in Vulkan, ostanejo lastniške.

Pričakuje se, da bo objava kode povzročila znatno izboljšanje uporabnosti dela z grafičnimi procesorji NVIDIA v sistemih Linux, okrepila integracijo z operacijskim sistemom ter poenostavila dostavo gonilnikov in odpravljanje napak. Razvijalci Ubuntu in SUSE so že napovedali oblikovanje paketov na osnovi odprtih modulov. Prisotnost odprtih modulov bo tudi poenostavila integracijo gonilnikov NVIDIA s sistemi, ki temeljijo na nestandardnih zgradbah jedra Linux po meri. Za NVIDIA bo odprta koda pomagala izboljšati kakovost in varnost gonilnikov za Linux s tesnejšim sodelovanjem s skupnostjo in možnostjo pregleda sprememb s strani tretjih oseb ter neodvisnega nadzora.

Opozoriti je treba, da se predstavljena baza odprte kode hkrati uporablja pri oblikovanju lastniških gonilnikov, zlasti pa se uporablja v danes objavljeni beta veji 515.43.04. V tem primeru je primarno zaprto skladišče, predlagana baza odprte kode pa bo posodobljena za vsako izdajo lastniških gonilnikov v obliki zalivanja po določeni obdelavi in ​​čiščenju. Zgodovina posameznih sprememb ni na voljo, le splošna potrditev za vsako različico gonilnika (trenutno je objavljena koda modulov za gonilnik 515.43.04).

Vendar imajo člani skupnosti možnost, da predložijo zahteve za vleko, da potisnejo svoje popravke in spremembe kode modula, vendar te spremembe ne bodo prikazane kot ločene spremembe v javnem repozitoriju, ampak bodo najprej integrirane v glavno zasebno repozitorij in šele nato prenese z ostalimi spremembami na odprto. Za sodelovanje pri razvoju morate podpisati pogodbo o prenosu lastninskih pravic do prenesene kode na NVIDIA (Contributor License Agreement).

Koda modulov jedra je razdeljena na dva dela: splošne komponente, ki niso vezane na operacijski sistem, in plast za interakcijo z jedrom Linuxa. Za skrajšanje časa namestitve so običajne komponente še vedno dobavljene v lastniških gonilnikih NVIDIA v obliki že sestavljene binarne datoteke, plast pa je sestavljena na vsakem sistemu ob upoštevanju trenutne različice jedra in obstoječih nastavitev. Na voljo so naslednji moduli jedra: nvidia.ko, nvidia-drm.ko (Upravitelj neposrednega upodabljanja), nvidia-modeset.ko in nvidia-uvm.ko (Unified Video Memory).

Podpora za serijo GeForce in grafične procesorje za delovne postaje je navedena kot kakovost alfa, vendar so namenski grafični procesorji, ki temeljijo na arhitekturah NVIDIA Turing in NVIDIA Ampere, ki se uporabljajo v arhitekturah pospeševanja računalništva v podatkovnih centrih in vzporednega računalništva (CUDA), v celoti podprti in v celoti preizkušeni ter primerni za uporabo v proizvodnji projekti (odprtokodni je že pripravljen za zamenjavo lastniških gonilnikov). Stabilizacija podpore GeForce in GPU za delovne postaje je načrtovana za prihodnje izdaje. Končno bo raven stabilnosti baze odprtokodne kode dvignjena na raven lastniških gonilnikov.

V svoji trenutni obliki je vključitev objavljenih modulov v glavno jedro nemogoča, ker niso v skladu z zahtevami glede sloga kodiranja in arhitekturnimi konvencijami jedra, vendar namerava NVIDIA sodelovati s Canonical, Red Hat in SUSE, da bi rešili to težavo in stabilizirajte vmesnike programske opreme gonilnika. Poleg tega se lahko objavljena koda uporabi za izboljšanje odprtokodnega gonilnika Nouveau, vključenega v jedro, ki uporablja isto vdelano programsko opremo GPE kot lastniški gonilnik.

Vir: opennet.ru

Dodaj komentar