Sterowniki wideo NVIDIA typu open source dla jądra systemu Linux

NVIDIA ogłosiła, że ​​wszystkie moduły jądra zawarte w zestawie zastrzeżonych sterowników wideo mają charakter open source. Kod jest otwarty na licencjach MIT i GPLv2. Możliwość budowania modułów jest dostępna dla architektur x86_64 i aarch64 na systemach z jądrem Linux 3.10 i nowszymi wydaniami. Oprogramowanie sprzętowe i biblioteki używane w przestrzeni użytkownika, takie jak stosy CUDA, OpenGL i Vulkan, pozostają zastrzeżone.

Oczekuje się, że publikacja kodu doprowadzi do znacznej poprawy użyteczności pracy z procesorami graficznymi NVIDIA w systemach Linux, wzmocni integrację z systemem operacyjnym oraz uprości dostarczanie sterowników i debugowanie problemów. Twórcy Ubuntu i SUSE zapowiedzieli już tworzenie pakietów opartych na otwartych modułach. Obecność otwartych modułów uprości także integrację sterowników NVIDIA z systemami opartymi na niestandardowych, niestandardowych kompilacjach jądra Linuksa. Dla firmy NVIDIA oprogramowanie typu open source pomoże poprawić jakość i bezpieczeństwo sterowników dla systemu Linux poprzez bliższą interakcję ze społecznością oraz możliwość przeglądu zmian przez osoby trzecie i niezależnego audytu.

Należy zauważyć, że prezentowana baza otwartego kodu jest jednocześnie wykorzystywana do tworzenia zastrzeżonych sterowników, w szczególności jest wykorzystywana w opublikowanej dzisiaj wersji beta 515.43.04. W tym przypadku podstawowym jest repozytorium zamknięte, a proponowana baza otwartego kodu będzie aktualizowana dla każdego wydania zastrzeżonych sterowników w formie obsady po pewnym przetworzeniu i oczyszczeniu. Nie jest podana historia poszczególnych zmian, jedynie ogólne zatwierdzenie dla każdej wersji sterownika (obecnie publikowany jest kod modułów dla sterownika 515.43.04).

Jednakże członkowie społeczności mają możliwość przesyłania żądań ściągnięcia w celu wypchnięcia poprawek i zmian w kodzie modułu, ale zmiany te nie zostaną odzwierciedlone jako osobne zmiany w repozytorium publicznym, ale najpierw zostaną zintegrowane z głównym repozytorium prywatnym i dopiero wtedy przeniesiony z resztą zmian, aby otworzyć. Aby wziąć udział w rozwoju, musisz podpisać umowę o przeniesienie praw własności do przekazanego kodu na firmę NVIDIA (Umowa licencyjna współautora).

Kod modułów jądra jest podzielony na dwie części: ogólne komponenty niezwiązane z systemem operacyjnym oraz warstwę interakcji z jądrem Linuksa. Aby skrócić czas instalacji, wspólne komponenty nadal dostarczane są w zastrzeżonych sterownikach NVIDIA w postaci już zmontowanego pliku binarnego, a warstwa jest montowana na każdym systemie z uwzględnieniem aktualnej wersji jądra i istniejących ustawień. Oferowane są następujące moduły jądra: nvidia.ko, nvidia-drm.ko (Direct Rendering Manager), nvidia-modeset.ko i nvidia-uvm.ko (Unified Video Memory).

Obsługa procesorów graficznych dla serii GeForce i stacji roboczych jest wymieniona w jakości alfa, ale dedykowane procesory graficzne oparte na architekturach NVIDIA Turing i NVIDIA Ampere używane w architekturze akceleracji obliczeń w centrach danych i architekturach obliczeń równoległych (CUDA) są w pełni obsługiwane i w pełni przetestowane oraz nadają się do użytku w środowisku produkcyjnym projektów (open source jest już gotowy do zastąpienia zastrzeżonych sterowników). W przyszłych wersjach planowana jest stabilizacja obsługi GeForce i GPU dla stacji roboczych. Docelowo poziom stabilności bazy kodu open source zostanie sprowadzony do poziomu autorskich sterowników.

W obecnej formie włączenie opublikowanych modułów do głównego jądra jest niemożliwe, ponieważ nie spełniają one wymagań dotyczących stylu kodowania jądra i konwencji architektonicznych, ale NVIDIA zamierza współpracować z firmami Canonical, Red Hat i SUSE, aby rozwiązać ten problem i stabilizować interfejsy oprogramowania sterownika. Ponadto opublikowany kod można wykorzystać do ulepszenia sterownika Nouveau o otwartym kodzie źródłowym zawartego w jądrze, który wykorzystuje to samo oprogramowanie układowe GPU, co zastrzeżony sterownik.

Źródło: opennet.ru

Dodaj komentarz