Controladores de vídeo de código aberto de NVIDIA para o núcleo de Linux

NVIDIA anunciou que todos os módulos do núcleo incluídos no seu conxunto de controladores de vídeo propietarios son de código aberto. O código está aberto baixo licenzas MIT e GPLv2. A capacidade de construír módulos ofrécese para arquitecturas x86_64 e aarch64 en sistemas con kernel Linux 3.10 e versións máis recentes. O firmware e as bibliotecas utilizadas no espazo do usuario, como as pilas CUDA, OpenGL e Vulkan, seguen sendo propietarios.

Espérase que a publicación do código supoña unha mellora significativa na usabilidade de traballar con GPU de NVIDIA en sistemas Linux, reforzar a integración co sistema operativo e simplificar a entrega de controladores e a depuración de problemas. Os desenvolvedores de Ubuntu e SUSE xa anunciaron a formación de paquetes baseados en módulos abertos. A presenza de módulos abertos tamén simplificará a integración dos controladores de NVIDIA con sistemas baseados en compilacións personalizadas non estándar do núcleo Linux. Para NVIDIA, o código aberto axudará a mellorar a calidade e a seguridade dos controladores de Linux mediante unha interacción máis estreita coa comunidade e a posibilidade de revisar os cambios por parte de terceiros e a auditoría independente.

Nótese que a base de código aberto presentada úsase simultaneamente na formación de controladores propietarios, en particular, úsase na rama beta 515.43.04 publicada hoxe. Neste caso, o principal é un repositorio pechado, e a base de código aberto proposta actualizarase para cada versión de controladores propietarios en forma de reparto despois de certo procesamento e limpeza. Non se proporciona o historial de cambios individuais, só un commit xeral para cada versión do controlador (actualmente publícase o código de módulos para o controlador 515.43.04).

Non obstante, os membros da comunidade teñen a oportunidade de enviar solicitudes de extracción para enviar as súas correccións e cambios no código do módulo, pero estes cambios non se reflectirán como cambios separados no repositorio público, senón que se integrarán primeiro no repositorio privado principal. e só entón transferido co resto de cambios para abrir. Para participar no desenvolvemento, debes asinar un acordo sobre a transferencia de dereitos de propiedade sobre o código transferido a NVIDIA (Contributor License Agreement).

O código dos módulos do núcleo divídese en dúas partes: compoñentes xerais non vinculados ao sistema operativo e unha capa para a interacción co núcleo de Linux. Para reducir o tempo de instalación, os compoñentes comúns aínda se proporcionan nos controladores propietarios de NVIDIA en forma de ficheiro binario xa montado, e a capa está montada en cada sistema, tendo en conta a versión actual do núcleo e a configuración existente. Ofrécense os seguintes módulos do núcleo: nvidia.ko, nvidia-drm.ko (Xestor de renderización directa), nvidia-modeset.ko e nvidia-uvm.ko (Memoria de vídeo unificada).

A compatibilidade con GPU da estación de traballo e da serie GeForce figura como calidade alfa, pero as GPU dedicadas baseadas nas arquitecturas NVIDIA Turing e NVIDIA Ampere utilizadas nas arquitecturas de aceleración de computación de centros de datos e computación paralela (CUDA) son totalmente compatibles e totalmente probadas. proxectos (o código aberto xa está listo para substituír os controladores propietarios). Está prevista a estabilización da compatibilidade con GeForce e GPU para estacións de traballo para futuras versións. En última instancia, o nivel de estabilidade da base de código de fonte aberta elevarase ao nivel dos controladores propietarios.

Na súa forma actual, a inclusión de módulos publicados no núcleo principal é imposible, xa que non cumpren os requisitos de estilo de codificación do núcleo e as convencións arquitectónicas, pero NVIDIA pretende traballar xunto con Canonical, Red Hat e SUSE para resolver este problema e estabilizar as interfaces do software do controlador. Ademais, o código publicado pódese usar para mellorar o controlador Nouveau de código aberto incluído no núcleo, que usa o mesmo firmware da GPU que o controlador propietario.

Fonte: opennet.ru

Engadir un comentario