A NVIDIA divulgou que está tornando livre o código-fonte dos módulos para o Kernel Linux referentes às suas GPUs mais recentes. Uma iniciativa que, a longo prazo, poderá culminar no lançamento de drivers de código livre para todas as linhas de GPUs da marca.

Como consequência disso, as distribuições Linux poderão oferecer no futuro, uma experiência padrão muito melhor para pessoas que utilizam hardwares da NVIDIA.

Um trabalho em conjunto

A iniciativa está sendo realizada como um trabalho conjunto entre a NVIDIA, a Canonical (Ubuntu), a SUSE e a Red Hat (Fedora e Red Hat Enterprise Linux). 

Dessa forma, será mais fácil para que estas empresas, que estão por trás das principais distribuições Linux, possam oferecer o melhor suporte possível para os hardwares da NVIDIA.

O que as maiores empresas do mundo Linux falaram sobre o assunto

Canonical:

A Canonical divulgou que os novos módulos de código livre irão simplificar as instalações dos drivers da NVIDIA, que funcionarão melhor integrados ao sistema operacional. Isso resultará no aumento da segurança e da performance para usuários “gamers” e desenvolvedores. A empresa ainda afirmou que a novidade estará presente no Ubuntu 22.04 LTS, nos próximos meses.

SUSE:

A equipe da SUSE revelou que esse é um verdadeiro marco histórico para a comunidade de código livre e que se orgulha em ser a primeira, das grandes distribuições Linux, a disponibilizar os novos módulos através da atualização SP4 do OpenSUSE Leap 15.

Red Hat:

A Red Hat trabalha em conjunto com a NVIDIA por vários anos e afirma estar empolgada em vê-los dar este passo em direção ao código livre. A empresa também afirma que não vê a hora de trazer essas vantagens para os seus clientes e aprimorar a interoperabilidade com os hardwares da NVIDIA.

Além disso, segundo um dos seus desenvolvedores, a Red Hat é a única empresa, desenvolvedora de sistemas operacionais Linux, que tem uma forte presença no espaço de computação e engenharia gráfica.

O driver da NVIDIA para Linux é open source?

Embora esta iniciativa seja um grande passo nessa direção, ainda não podemos dizer que os drivers de vídeo para Linux da NVIDIA são de código aberto. Apenas uma parte do que compõem um driver de vídeo teve o seu código liberado.

As partes que compõem um driver de vídeo

Em termos leigos, podemos dizer que um driver de vídeo é composto por duas grandes partes: os módulos do kernel e o driver do “userspace”. Traçando um paralelo com os drivers da AMD: o AMDGPU contém os módulos do Kernel, enquanto o Mesa é o responsável pelo “userspace”.

Desta forma, podemos ver que apenas uma pequena, porém importante, parte do código-fonte dos drivers da NVIDIA foram divulgados.

O que falta para os drivers da NVIDIA integrarem o Kernel Linux, assim como os da AMD?

Os drivers da NVIDIA foram escritos de forma que possam compartilhar uma grande parte do seu código-fonte entre diversas plataformas e, muito desse código, não está em conformidade com as convenções de design aplicadas ao Kernel Linux. Por sua vez, o Kernel Linux só pode conter um driver para cada hardware. Desta forma, para poder inserir um novo driver, outro terá que sair. 

O driver para GPUs da NVIDIA atualmente integrado ao Kernel Linux é o Nouveau e esse possui uma excelente compatibilidade. Por isso, não faria sentido substituí-lo por outro driver que ainda não se encontra bem integrado ao Kernel.

Porém, existem planos para que, no futuro, os drivers da NVIDIA possam ser 100% de código aberto e integrados ao Kernel Linux, assim como os da AMD.

Como o driver Nouveau pode se beneficiar dos novos módulos

O Nouveau é um driver de código aberto para GPUs da NVIDIA no Linux desenvolvido pela comunidade a partir de engenharia reversa dos drivers proprietários da empresa.

Embora seja compatível com um grande número de modelos de GPUs, atualmente, o Nouveau não consegue entregar um bom desempenho quando comparado ao driver oficial da NVIDIA. 

Todavia, a liberação do código-fonte dos módulos do driver proprietário irá contribuir bastante para o avanço da compatibilidade e do desempenho do driver de código livre. 

Um grande salto de desempenho?

A partir de agora, o Nouveau poderá utilizar os mesmos firmwares do driver proprietário, o que o tornará compatível com diversas funcionalidades das placas de vídeo, como gerenciamento de clock e temperatura.

Isso não significa que o Nouveau, imediatamente, dará um grande salto no seu desempenho. Como essas mudanças são extremamente trabalhosas, os resultados são esperados a médio e longo prazo.

O destino do driver Nouveau

Como a NVIDIA apresentou a intenção de futuramente disponibilizar, na íntegra, o código-fonte dos seus drivers, muitas pessoas estão se perguntando se o Nouveau está com os dias contados. Certamente, é cedo demais para afirmar isso.

Primeiramente, não sabemos quando e se a NVIDIA, realmente, vai abrir todo o código dos seus drivers. Além disso, os módulos que tiveram o seu código liberado são compatíveis, apenas, com modelos mais recentes de placas de vídeo. Com isso, mesmo com um potencial novo driver da NVIDIA, o Nouveau ainda seria necessário para as GPUs mais antigas.

Além disso, segundo um desenvolvedor da Red Hat, a meta da empresa é criar um driver unificado para o Kernel, que possa trabalhar tanto como Mesa quanto com o binário proprietário da NVIDIA. Esse novo driver, certamente, irá se beneficiar de todos os avanços do Nouveau, embora talvez não mantenha o nome.

Quais GPUs são suportadas pelos módulos de código aberto

No momento, apenas os modelos da microarquitetura Turing em diante podem ser testados com os novos módulos, enquanto modelos mais antigos continuarão utilizando a versão proprietária. A NVIDIA não mencionou se, no futuro, irá adicionar suporte aos modelos mais antigos.

Suporte limitado às linha GeForce e Workstation

Os novos módulos de código livre da NVIDIA já estão prontos para serem utilizados em produção com modelos de GPUs para datacenters. Porém, o suporte para as linhas GeForce e Workstation ainda se encontra em fase “alpha”.

Felizmente, o suporte limitado a essas linhas não deverá durar muito tempo, já que a empresa revelou que melhorias já estão sendo desenvolvidas para ambas as linhas.

Outro ponto positivo é que alguns dos recursos mais avançados, presentes nos chips suportados pelos módulos de código aberto, como o Ray Tracing (com Vulkan), o G-SYNC e o OptiX já podem ser testados com os novos módulos, inclusive nas GPUs das linhas GeForce e Workstation.

Como testar os novos módulos da NVIDIA para o Kernel Linux

O primeiro requisito é que você esteja utilizando a versão R515, ou mais recente, dos drivers da NVIDIA. Após isso, basta inserir o parâmetro abaixo nas configurações de inicialização do Kernel Linux.

NVreg_OpenRmEnableUnsupportedGpus=1

Parâmetros de inicialização podem ser adicionados ao Kernel Linux editando o arquivo de configurações do GRUB, localizado em “/etc/default/grub” ou utilizando uma aplicação gráfica como o GRUB Customizer.

Instale o driver com os módulos open source já ativados

Caso você não queira utilizar parâmetros de inicialização para o Kernel, também será possível instalar a versão “Opt-in” dos drivers da NVIDIA. Ao executar o instalador da versão R515 ou superior, baixado do site oficial da empresa, será possível escolher entre os módulos de código aberto ou fechado.

open source nvidia driver linux

Na pasta que contém os arquivos de instalação do driver, haverão dois executáveis. Um deles é a instalação padrão, que utiliza os módulos de código fechado e o outro será o instalador “Opt-in”, que irá instalar a versão de código livre dos módulos.

Os novos módulos não poderão ser testados no Fedora?

Há comentários, internet afora, de que o Fedora não poderá utilizar os novos módulos, devido a uma regra presente na sua documentação, que diz:

fedora external modules

“O Fedora não permite que módulos do Kernel sejam empacotados separadamente do pacote principal do Kernel. Comunique-se com a equipe do Kernel sobre a ativação de módulos do Kernel adicionais.”

Embora a regra exista, o Fedora possui um histórico de facilitar o uso de softwares e ferramentas que não pode distribuir por padrão. Um exemplo, é o codec “ffmpeg” ou o Google Chrome que, por razões legais, não podem estar nos repositórios oficiais da distro.

Mesmo assim, esses softwares podem ser, facilmente, instalados na distro com a habilitação de alguns repositórios de terceiros. Desta forma, é provável que os desenvolvedores do Fedora irão encontrar alguma solução para permitir que as pessoas que o utilizam possam tirar proveito dessa novidade.

Contribua com o desenvolvimento dos módulos open source da NVIDIA

O código-fonte dos módulos presentes em cada novo lançamento do driver da NVIDIA, a partir da versão R515, será publicado na página da empresa no Github, onde qualquer membro da comunidade poderá analisá-lo e enviar contribuições.

Todas as contribuições recebidas entrarão em uma fila para serem analisadas e, possivelmente, aprovadas. Após isso, as mesmas serão aplicadas ao código-fonte dos módulos.

Como reportar bugs

As contribuições não se limitam a quem é desenvolvedor, qualquer pessoa que estiver testando os novos módulos pode reportar os bugs que encontrar através da sessão de “issues” da mesma página do projeto no Github.

Por que a NVIDIA tomou essa decisão

Muitas pessoas, com boa razão, não acreditam que grandes corporações possam tomar qualquer decisão, apenas, pela bondade dos seus corações. Com isso, o que a empresa tem a ganhar com a liberação do código-fonte de parte dos seus drivers?

Acredita-se que um dos principais objetivos da NVIDIA seja aprimorar o seu suporte aos supercomputadores e grandes instalações de datacenters. Isso porque a maioria desses supercomputadores roda alguma distribuição Linux e ter drivers de código fechado pode não “pegar bem” com os responsáveis por essas instalações.

Além disso, muitos usuários de Linux no desktop preferem comprar GPUs da AMD, seja pela experiência “plug and play” ou pela filosofia de utilizar softwares livres o máximo possível. Mesmo que essas pessoas correspondam a uma minoria, ainda é um número considerável de placas de vídeo, a mais, que a empresa poderá vender ao tornar livre o código-fonte dos seus drivers.

Um futuro promissor

As presentes novidades e os planos de um futuro mais livre para a NVIDIA, ao longo prazo, deverão trazer um grande número de benefícios, tanto para as empresas envolvidas quanto para a comunidade. Contanto que todos continuem trabalhando com os mesmos objetivos, todos nós teremos algo a ganhar.

Se os fatos continuarem acontecendo conforme os planos atuais, é possível que as pessoas que utilizam uma GPU da NVIDIA possam ter uma experiência “plug and play” tão boa quanto a da AMD, podendo extrair o máximo desempenho do hardware enquanto rodam um driver de código livre.

Isso é tudo pessoal! 😉


Newsletter Diolinux
Talvez Você Também Goste