Drivers de vídeo de código aberto NVIDIA para o kernel Linux

A NVIDIA anunciou que todos os módulos do kernel incluídos em seu conjunto de drivers de vídeo proprietários são de código aberto. O código está aberto sob licenças MIT e GPLv2. A capacidade de construir módulos é fornecida para arquiteturas x86_64 e aarch64 em sistemas com kernel Linux 3.10 e versões mais recentes. O firmware e as bibliotecas usadas no espaço do usuário, como pilhas CUDA, OpenGL e Vulkan, permanecem proprietárias.

Espera-se que a publicação do código leve a uma melhoria significativa na usabilidade de trabalho com GPUs NVIDIA em sistemas Linux, fortaleça a integração com o sistema operacional e simplifique a entrega de drivers e a depuração de problemas. Os desenvolvedores do Ubuntu e SUSE já anunciaram a formação de pacotes baseados em módulos abertos. A presença de módulos abertos também simplificará a integração de drivers NVIDIA com sistemas baseados em compilações personalizadas não padrão do kernel Linux. Para a NVIDIA, o código aberto ajudará a melhorar a qualidade e a segurança dos drivers Linux por meio de uma interação mais próxima com a comunidade e da possibilidade de revisão de alterações por terceiros e auditoria independente.

Note-se que a base de código aberto apresentada é utilizada simultaneamente na formação de drivers proprietários, em particular, é utilizada no branch beta 515.43.04 publicado hoje. Nesse caso, o principal é um repositório fechado, e a base de código aberto proposta será atualizada para cada lançamento de drivers proprietários na forma de conversão após determinado processamento e limpeza. O histórico de alterações individuais não é fornecido, apenas um commit geral para cada versão do driver (atualmente está publicado o código dos módulos do driver 515.43.04).

No entanto, a comunidade tem a oportunidade de enviar solicitações pull para enviar suas correções e alterações no código do módulo, mas essas alterações não serão refletidas como alterações separadas no repositório público, mas serão primeiro integradas no repositório privado principal e apenas em seguida, transferido com o restante das alterações para abrir. Para participar do desenvolvimento, você deve assinar um contrato de transferência de direitos de propriedade do código transferido para a NVIDIA (Contrato de Licença de Contribuinte).

O código dos módulos do kernel é dividido em duas partes: componentes gerais não vinculados ao sistema operacional e uma camada para interação com o kernel Linux. Para reduzir o tempo de instalação, os componentes comuns ainda são fornecidos em drivers proprietários da NVIDIA na forma de um arquivo binário já montado, e a camada é montada em cada sistema, levando em consideração a versão atual do kernel e as configurações existentes. Os seguintes módulos de kernel são oferecidos: nvidia.ko, nvidia-drm.ko (Direct Rendering Manager), nvidia-modeset.ko e nvidia-uvm.ko (Unified Video Memory).

O suporte a GPUs da série GeForce e de estação de trabalho está listado como qualidade alfa, mas GPUs dedicadas baseadas nas arquiteturas NVIDIA Turing e NVIDIA Ampere usadas em arquiteturas de aceleração de computação de data center e computação paralela (CUDA) são totalmente suportadas e totalmente testadas e adequadas para uso em produção. projetos (o código aberto já está pronto para substituir drivers proprietários). A estabilização do suporte GeForce e GPU para estações de trabalho está planejada para lançamentos futuros. Em última análise, o nível de estabilidade da base de código-fonte aberto será elevado ao nível dos drivers proprietários.

Na sua forma atual a inclusão de módulos publicados no kernel principal é impossível uma vez que eles não atendem aos requisitos de estilo de codificação e convenções de arquitetura do kernel mas a NVIDIA pretende trabalhar em conjunto com a Canonical Red Hat e SUSE para resolver este problema e estabilizar as interfaces de software do driver. Além disso, o código publicado pode ser usado para melhorar o driver Nouveau de código aberto incluído no kernel, que usa o mesmo firmware de GPU do driver proprietário.

Fonte: opennet.ru

Adicionar um comentário