Vídeo

Como estão os drivers no Linux em 2023?

Como anda a situação de drivers no Linux em 2023? É difícil instalar? O assunto do Diolinux Responde de hoje é inspirado pela pergunta do membro do canal Diolinux, Diego Martins, que comentou o seguinte:

“Como fugir ou contornar a dificuldade que é instalar e às vezes até mesmo encontrar os drivers corretos? Um dos motivos de eu ter voltado para o Windows é o porquê o meu áudio não funcionava e eu precisava dele para fazer reuniões

Nesse mesmo comentário, o Vandoir deu uma engrossada no caldo, dizendo:

“Boa pergunta, ausência de drivers no Linux sempre foi um pé no saco pra mim, Ainda bem q hj é mais difícil ocorrer, mas a uns 10 anos atrás vish…”

Para explicar melhor sobre os drivers no Linux, a gente vai abordar vários assuntos importantes, como o projeto fwupd, GPU Open, open firmware, gestão de drivers, Mesa, Open Printing e muito mais! As perguntas que não abordamos hoje, foram respondidas em um vídeo exclusivo para os membros do canal Diolinux.

Sendo membro, você pode ver vários conteúdos exclusivos, incluindo edições anteriores do Diolinux Responde com quase 1 hora de duração e várias perguntas respondidas, juntamente com diversos cursos que nós preparamos. A sua ajuda é muito bem-vinda e você tem acesso a vários outros benefícios, como o acesso ao nosso servidor no Discord exclusivo para os membros.

O que é um driver?

Um driver pode ser encarado como um software que permite que o seu sistema operacional se comunique com o hardware conectado a ele, quase como uma manual de instruções sobre como utilizar um determinado dispositivo.

Imagine uma placa de som ou de rede, existem diversos modelos diferentes no mercado, que apesar de terem objetivos em comum, podem ser tecnicamente construídas de formas completamente diferentes, se não fossem os drivers para criar uma interface amigável e de alguma forma, padronizada, para os desenvolvedores conseguirem criar aplicativos que consigam tirar proveito disso, cada software precisaria ser escrito para um hardware específico.

Já pensou em um programa no estilo player de música que só funciona com uma placa de som específica? Você não iria poder comprar qualquer placa mãe, ou placa de som, a não ser aquela que funciona com determinado software, ou ao contrário, não iria poder usar qualquer software com o seu equipamento.

A ideia de plug&play que temos hoje em dia, de que tudo que você conecta no seu computador funciona sem fazer configurações extras não é tão antiga quanto pode parecer, ainda na primeira década dos anos 2000, era bem comum ter que instalar um driver de qualquer coisa que você precisasse no seu computador, especialmente no Windows, enquanto no Linux, dependendo do dispositivo, o driver nem existia.

O mercado de hardware e de drivers felizmente passou por diversas alterações ao longo do tempo, a ponto de hoje em dia, nem no Windows, nem no Linux, você precisar instalar muitos drivers no seu computador, o sistema operacional reconhece os equipamentos conectados e dá um jeito de fazer o hardware funcionar.

Claro que, dependendo do hardware, ainda pode ser necessário um ajuste manual, em alguns casos placas de vídeo são assim, ou aquele componente bizarro que você importou da china, ou aquele produto que o fabricante limitou o funcionamento de forma proposital para que você instale um software que requer um login para as coisas funcionarem direito.

Drivers, assim como qualquer outro software, podem ter seu código aberto ou fechado, não existe nenhuma preferência particular em relação a isso, os dois métodos tem vantagens e desvantagens.

A principal desvantagem do código ser aberto está provavelmente relacionado ao fato do seu software ser um grande diferencial para a concorrência, nesses casos não faz muito sentido você abrir o código do driver do seu hardware.

A principal vantagem do driver ter código aberto, é que não só você, mas toda a comunidade pode ajudar a torná-lo melhor e automatizar a integração do seu dispositivo em qualquer computador.

Tanto Windows, quanto Linux, oferecem esse recurso aos usuários, usando informações de drivers de código aberto de forma integral ao kernel do sistema, e adicionando os que são de código fechado como módulos extras, que podem ser ativados ou baixados conforme os sistemas desejarem.

Como os drivers no Linux se comportam hoje em dia?

Existe todo tipo de dispositivo que podemos comentar, mas drivers de vídeo em especial, são algum dos mais famosos geradores de problemas, e aqui, também temos drivers no Linux de código aberto e fechado. Intel, AMD e NVIDIA têm drivers no Linux de código aberto em níveis diferentes.

Os drivers no Linux da Intel são completamente abertos, por isso, integrados ao kernel, dessa forma, ao instalar Linux em qualquer computador com chip Intel você não precisará instalar nenhum driver de vídeo e o sistema funcionará sem problemas.

Com a AMD ocorre algo parecido, o driver de uso não profissional é completamente aberto também, se você tem uma GPU AMD, provavelmente vai conseguir utilizá-la no Linux sem problema.

A NVIDIA atualmente também tem módulos abertos em seus drivers no Linux, mas ao contrário da AMD e da Intel, que já tem mais de uma década de drivers no Linux com código aberto, o movimento da NVIDIA ainda é recente, então, além do driver aberto somente funcionar com placas da série RTX 2000 ou superior, o user space do Driver ainda é proprietário.

Para placas da NVIDIA mais antigas do que isso, no Linux somente com driver proprietário, enquanto para as realmente antigas, da linha GTX700 para trás, existe um projeto chamado Nouveau, que oferece drivers de código aberto com uma performance aceitável.

Apesar de todas essas possibilidades, a forma com que o sistemas operacionais baseados em Linux manejam esses drivers é diferente, ainda que todas usem o Kernel Linux, a versão do Kernel, e a versão do Mesa, que é outro software importante, pode ditar como determinado hardware gráfico vai funcionar, teoricamente, quanto mais recente o Kernel e o Mesa, mais atualizados serão os drivers, exceto o driver no Linux da NVIDIA tradicional, de código fechado, que é instalado como um módulo à parte do kernel e que pode estar atualizado, mesmo com um kernel mais antigo.

O Mesa é uma implementação de código aberto do OpenGL e do Vulkan, assim como de outras APIs gráficas, que se comunicam com os drivers de código aberto. Em geral, um Mesa atualizado significa correção de bugs e eventualmente mais FPS nos jogos, por exemplo.

Vamos entender distros que lidam com drivers no Linux de forma diferente:

O Pop!_OS é baseado no Ubuntu, porém, ele lida com esses assuntos de kernel e drivers de forma bem diferente do que o Ubuntu faz. O Pop é semi-rolling release nesse sentido, o kernel Linux está sempre muito próximo da última versão.

No Pop para instalar algum driver, basta ir até a loja de aplicativos e os drivers necessários para uma boa experiência vão estar listados na aba de instalados atualmente, abaixo da seção Drivers, dessa forma, instalar um driver é uma questão de clicar ali.

Distros como o Ubuntu, especialmente a versão LTS, acabam trazendo versões mais antigas do Kernel Linux e do Mesa por questão de estabilidade, enquanto os drivers da NVIDIA costumam estar em versões mais recentes.

Isso não quer dizer que você vai ter um desempenho ruim ao usar o Ubuntu ou o Linux Mint, que usa a mesma base, para jogar, por exemplo, com a sua placa AMD ou Intel, mas pode ser que seja menos performático do que um sistema que use uma versão mais nova desses componentes.

Os vários testes de benchmarks que nós temos com várias distros diferentes mostram que a diferença não é tão absurda quanto se possa imaginar, depende de outros fatores também.

Mas é inegável que a Valve escolheu o Arch Linux como base do Steam OS para o Steam Deck, por conseguir justamente acesso a esses pacotes com maior velocidade, mesmo que no sistema em si, eles não necessariamente tragam as últimas versões de Kernel e Mesa imediatamente.

Porém, drivers de vídeo são apenas uma parte da história, existem outros dispositivos que podem necessitar de softwares assim para funcionarem de forma apropriada.

Geralmente, isso não acontece, mas pode ocorrer de, por exemplo, plugar um joystick genérico e ele não funcionar. Quanto isso acontece, geralmente quer dizer que aconteceria no Windows também, a diferença é que o fabricante tinha uma versão do seu driver para instalar no Windows, enquanto no Linux não existia essa possibilidade.

Antes de falar sobre o que a gente pode fazer nesses casos, vamos abordar outro assunto que gera problema, impressoras. Elas também existem aos montes e ao longo da história, vários modelos foram criados, ainda assim, talvez nenhuma marca se destacou tanto quanto as da HP, mas nesse caso, felizmente o mercado como um todo, incluindo a Apple, agiu para deixar esse processo melhor, inclusive, dizem por aí que é mais fácil usar uma impressora no Linux e no macOS do que no Windows.

O motivo disso são alguns projetos, o Open Printing, o CUPS, e o IPP, que já tem décadas de existência e conseguiram algo incrível, criaram protocolos para as impressoras funcionarem sem drivers no sistema, então, basicamente qualquer impressora funciona no Linux e no macOS.

Quer dizer que absolutamente todas as impressoras vão funcionar? Não, mas provavelmente se a sua impressora permite impressão via rede, as chances são grandes de você poder usar sem problemas. 

Se um dispositivo não funcionar, o que posso fazer?

Quando você plugar algo no seu computador com Linux e ele não funcionar corretamente, a primeira coisa a se fazer é verificar a compatibilidade com o desenvolvedor do produto, pode ser que de fato exista algum software que possa ser instalado para melhorar a experiência do produto, que não vem integrado a sua distro.

No mundo Linux, o fabricante não dar suporte, não quer dizer que não realmente tenha suporte, então fazer uma pesquisa na internet não faz mal para saber se alguma outra pessoa está usando o dispositivo com Linux e qual a experiência dela com o produto. O nosso fórum, o Diolinux Plus, é um ótimo lugar para você pesquisar sobre isso e fazer perguntas relacionadas a tecnologia em geral, não somente Linux, então não deixe de conhecer.

Se você já tem um setup, o negócio é testar para ver se tudo funciona, distros Linux, como o Pop OS que eu mencionei, e praticamente todas as outras são feitas para você usar e não te cobram nada por isso, então, testar não custa nada.

No próprio repositório do sistema você pode encontrar drivers para alguns hardwares que não vem instalados por padrão, como de algumas placas de rede, e o no GitHub você encontra vários projetos open source que dão suporte avançado a hardwares com funcionalidades que seriam limitadas de outra forma. Nas suas compras futuras, você pode fazer o que todo mundo que usa outros sistemas faz, compra componentes compatíveis com o sistema que você quer usar.

Nem muito novo, nem muito velho

Outra coisa que é bom ficar ligado, é quanto a hardware defasado, Linux é famoso por manter suporte para hardwares bem antigos por muito tempo, mas mesmo assim, certos componentes podem não ter mais suporte, os fabricantes já deixaram de fazer os equipamentos, não existem ninguém dando manutenção no hardware, nem criando drivers no Linux para ele e não é esperado que ninguém esteja usando um produto assim.

Hardwares muito novos, recém lançados, com especificações únicas, onde drivers no Linux genéricos não consigam dar conta, também pode ser um problema no Linux dependendo da versão do Kernel que você estiver rodando, se você ter um hardware muito novo, um sistema com um Kernel Linux mais atualizado pode ser uma boa.

O problema é que existem muitos hardwares que ainda funcionam e continuam sendo vendidos, mesmo quando os fabricantes já não dão mais o devido suporte. Tem alguns dongles e placas de wifi, para citar um exemplo, com um chip Realtek qua ainda são vendidos, com o driver para eles sendo compatível somente até o Windows  10, com último update tendo ocorrido em 2018

Se você colocar um desses no seu Windows 11 e não funcionar, você não pode dizer que é culpa do Windows, no Linux e no Mac, seria a mesma coisa. O suporte para o seu hardware não vai durar para sempre, especialmente se ele depende de um software atrelado para funcionar corretamente.

Outro ponto debatível, é quanto a qualidade dos drivers, a maior parte dos drivers feitos para Linux está incluída diretamente no Kernel, não é esperado que você tenha que instalar alguma coisa ou que você tenha que sair procurando arquivos pela internet para instalar.

Em 99% dos casos, é exatamente isso que acontece, mas sempre tem aquele 1% vagabundo para frustrar alguém que queria conectar aquele hardware específico que foi pensado para o público Windows, e nesse caso não tem muito o que fazer, a menos que a comunidade faça drivers de código aberto usando engenharia reversa, ou o fabricante resolva dar suporte, a coisa simplesmente não vai funcionar por falta de especificação, não tem milagre.

E olha que a comunidade Linux é boa de fazer o que parece impossível se tornar realidade, veja o caso do Proton da Valve, que roda quase todos os games de Windows e o projeto Asahi Linux, que vem fazendo engenharia reversa no hardware da Apple para permitir a instalação de Linux nos novos macs com ARM, que já testamos em um Macbook Air M1.

Diolinux Ofertas - Aproveite os melhores descontos em diversos produtos!
1420 postagens

Sobre o autor
Redator, além de estudante de engenharia e computação.
Artigos