NVIDIA-videodrivrutiner med öppen källkod för Linux-kärnan

NVIDIA har meddelat att alla kärnmoduler som ingår i dess uppsättning av proprietära videodrivrutiner är öppen källkod. Koden är öppen under MIT- och GPLv2-licenser. Möjligheten att bygga moduler finns för x86_64- och aarch64-arkitekturer på system med Linux-kärna 3.10 och nyare versioner. Den fasta programvaran och biblioteken som används i användarutrymmet, såsom CUDA, OpenGL och Vulkan stackar, förblir proprietära.

Det förväntas att publiceringen av koden kommer att leda till en betydande förbättring av användbarheten av att arbeta med NVIDIA GPU:er på Linux-system, stärka integrationen med operativsystemet och förenkla leveransen av drivrutiner och felsökning av problem. Utvecklarna av Ubuntu och SUSE har redan meddelat bildandet av paket baserade på öppna moduler. Närvaron av öppna moduler kommer också att förenkla integrationen av NVIDIA-drivrutiner med system baserade på icke-standardiserade anpassade versioner av Linux-kärnan. För NVIDIA kommer öppen källkod att bidra till att förbättra kvaliteten och säkerheten för Linux-drivrutiner genom närmare interaktion med samhället och möjligheten till tredjepartsgranskning av ändringar och oberoende granskning.

Det noteras att den presenterade öppna kodbasen används samtidigt i bildandet av proprietära drivrutiner, i synnerhet används den i betagrenen 515.43.04 som publiceras idag. I det här fallet är den primära ett stängt arkiv, och den föreslagna öppna kodbasen kommer att uppdateras för varje utgåva av proprietära drivrutiner i form av en cast efter viss bearbetning och rengöring. Historiken för individuella ändringar tillhandahålls inte, bara en allmän commit för varje version av drivrutinen (för närvarande publiceras modulerna för drivrutinen 515.43.04).

Medlemmar av communityn ges dock möjlighet att skicka in pull-förfrågningar för att pusha sina korrigeringar och ändringar av modulkoden, men dessa ändringar kommer inte att återspeglas som separata ändringar i det offentliga arkivet, utan kommer först att integreras i det privata huvudarkivet och först då överförs med resten ändringar för att öppna. För att delta i utvecklingen måste du underteckna ett avtal om överföring av äganderätten till den överförda koden till NVIDIA (Contributor License Agreement).

Koden för kärnmodulerna är uppdelad i två delar: allmänna komponenter som inte är bundna till operativsystemet och ett lager för interaktion med Linux-kärnan. För att minska installationstiden levereras fortfarande vanliga komponenter i proprietära NVIDIA-drivrutiner i form av en redan sammansatt binär fil, och lagret sätts ihop på varje system, med hänsyn till den aktuella kärnversionen och befintliga inställningar. Följande kärnmoduler erbjuds: nvidia.ko, nvidia-drm.ko (Direct Rendering Manager), nvidia-modeset.ko och nvidia-uvm.ko (Unified Video Memory).

GeForce-serien och GPU-stöd för arbetsstationer listas som alfakvalitet, men dedikerade GPU:er baserade på NVIDIA Turing- och NVIDIA Ampere-arkitekturerna som används i arkitekturer för datacenterdatoracceleration och parallellberäkning (CUDA) stöds fullt ut och är helt testade. och lämpliga för användning i produktionen projekt (öppen källkod är redan redo att ersätta proprietära drivrutiner). Stabilisering av GeForce- och GPU-stöd för arbetsstationer planeras för framtida releaser. I slutändan kommer stabilitetsnivån för basen med öppen källkod att bringas till nivån för proprietära drivrutiner.

I sin nuvarande form är inkluderingen av publicerade moduler i huvudkärnan omöjlig, eftersom de inte överensstämmer med kärnans kodningsstilskrav och arkitektoniska konventioner, men NVIDIA avser att arbeta tillsammans med Canonical, Red Hat och SUSE för att lösa detta problem och stabilisera drivrutinens gränssnitt. Dessutom kan den publicerade koden användas för att förbättra Nouveau-drivrutinen med öppen källkod som ingår i kärnan, som använder samma GPU-firmware som den proprietära drivrutinen.

Källa: opennet.ru

Lägg en kommentar