Para quem está pensando em migrar para o Linux, uma das dúvidas mais comuns é saber se impressoras, controles, mesas digitalizadoras, mouses e outros periféricos continuarão funcionando. Embora o suporte a hardware tenha melhorado bastante nos últimos anos, ainda existem situações em que um dispositivo funciona perfeitamente no Windows, mas exige trabalho adicional no Linux.
O motivo nem sempre é simplesmente “falta de driver”. Existem diferentes formas de suporte a hardware no Linux, e as decisões tomadas pelos fabricantes, pelas distribuições e pela própria comunidade podem fazer bastante diferença.
O fabricante simplesmente não oferece suporte
A explicação mais direta para um periférico não funcionar no Linux é também uma das mais comuns: a fabricante decidiu não desenvolver um driver para o sistema.
Do ponto de vista comercial, isso é compreensível. O Windows continua dominante no mercado de desktops, então uma empresa que precisa escolher onde investir recursos tende a priorizar a plataforma com maior número de usuários.
Isso não significa, porém, que o dispositivo esteja condenado a não funcionar no Linux. Uma das características mais interessantes do ecossistema é a possibilidade de a comunidade desenvolver drivers por conta própria.
O kernel Linux possui uma estrutura bastante padronizada para lidar com dispositivos. Isso permite que desenvolvedores independentes estudem o funcionamento de um hardware, muitas vezes por engenharia reversa, e criem implementações abertas capazes de conversar com ele.
Quando a própria fabricante participa do processo, naturalmente o cenário tende a ser ainda melhor. Os controles DualShock 4 e DualSense, por exemplo, contam com suporte direto no Linux, enquanto empresas como a 8BitDo também vêm contribuindo com suporte para seus dispositivos.

Nem todo driver precisa estar dentro do kernel
Outra particularidade do Linux é que um driver não precisa necessariamente fazer tudo dentro do kernel. Há uma tendência crescente de colocar determinadas partes do suporte a dispositivos no espaço de usuário.
Simplificando bastante, o kernel pode fornecer a infraestrutura necessária para que determinado hardware seja acessado, enquanto um programa executado no sistema fica responsável por controlar suas funções.
Essa abordagem pode facilitar o desenvolvimento e a manutenção. Um erro em um programa no espaço de usuário, em geral, não tem o mesmo potencial de comprometer todo o sistema que um problema em código executado diretamente no kernel.
Também existe a possibilidade de utilizar módulos externos, como acontece tradicionalmente com determinados drivers de hardware. O DKMS, por exemplo, permite compilar e instalar módulos de kernel de acordo com a versão utilizada pelo sistema.
No fim, o Linux oferece várias maneiras de fazer a mesma coisa. Isso é poderoso, mas também explica por que a experiência pode variar bastante entre dispositivos e distribuições.
A distribuição também influencia
Mesmo quando existe um driver funcional, ele pode não estar disponível da mesma maneira em todas as distribuições.
Ubuntu e Linux Mint, por exemplo, oferecem ferramentas gráficas que podem facilitar a instalação de determinados drivers. Em outros sistemas, o usuário pode precisar habilitar repositórios adicionais ou recorrer a ferramentas específicas.
Distribuições mais conservadoras também podem disponibilizar versões mais antigas de determinados componentes. Isso pode ser positivo em termos de estabilidade, mas problemático quando um hardware exige uma versão mais recente.
Existe ainda a questão das arquiteturas. Um caso curioso envolve impressoras da Brother que possuem drivers oficiais para Linux distribuídos em pacotes DEB e RPM. O problema é que alguns desses drivers são de 32 bits.
Isso significa que uma distribuição que não disponibiliza mais determinadas bibliotecas de 32 bits pode simplesmente não conseguir executar o driver, mesmo que ele esteja oficialmente disponível para Linux.
Hardware antigo nem sempre é hardware abandonado
Compatibilidade também pode ser afetada pela maneira como uma distribuição decide lidar com tecnologias consideradas antigas.
Um dispositivo pode continuar funcionando perfeitamente, mas depender de bibliotecas, componentes ou formatos que algumas distribuições deixaram de oferecer. Nesse caso, não existe necessariamente um problema no hardware ou no driver. O conflito está entre o software necessário e as escolhas feitas pela distribuição.
Por isso, dizer simplesmente que “esse periférico não funciona no Linux” pode ser precipitado. Talvez ele não funcione em determinada distribuição, mas funcione em outra. O contrário também pode acontecer: uma distribuição pode oferecer ferramentas próprias para instalar componentes que outra deixa inteiramente nas mãos do usuário.
O suporte da comunidade faz diferença
Mesas digitalizadoras são um bom exemplo de como a comunidade pode preencher lacunas deixadas pelos fabricantes.
A Wacom possui uma longa história de suporte ao Linux, inclusive com integração ao próprio ecossistema do sistema. No KDE Plasma, o suporte a tablets gráficos também recebeu bastante atenção, com ferramentas capazes de reconhecer e configurar diversos modelos sem depender necessariamente do software proprietário fornecido pelo fabricante.
Isso permite que determinados dispositivos funcionem de maneira praticamente plug and play, mesmo quando a fabricante não oferece um aplicativo oficial equivalente ao disponível no Windows.
Por outro lado, periféricos de marcas menores, especialmente produtos white label, podem apresentar uma situação completamente diferente. Às vezes, o próprio fabricante informa que determinado modelo não possui suporte para Linux.
Pesquise antes de comprar
Para quem pretende migrar para o Linux, uma das melhores maneiras de evitar problemas é verificar a compatibilidade antes da compra. Consultar o site do fabricante é um primeiro passo importante. Também vale pesquisar pelo modelo exato do dispositivo em fóruns, comunidades Linux e bases de compatibilidade.
No caso de notebooks, uma alternativa particularmente útil é iniciar uma distribuição em modo live por um pendrive. Assim, é possível testar itens como Wi-Fi, Bluetooth, áudio e outros componentes antes de instalar o sistema definitivamente.
Não é uma garantia absoluta, já que determinados recursos podem depender de componentes instalados posteriormente, mas o teste oferece uma boa indicação do que esperar.
No fim, o suporte a hardware no Linux está longe de ser perfeito, mas também está muito melhor do que já foi. A diferença em relação ao Windows muitas vezes não está na capacidade do Linux de utilizar determinado dispositivo, mas em quem fornece o suporte, onde o driver está disponível e quais decisões a distribuição tomou para disponibilizá-lo.
Este conteúdo é um corte do Diocast. Assista na íntegra ao episódio em que conversamos sobre por que determinados componentes podem ser mais temperamentais no Linux, com atenção especial para Wi-Fi e Bluetooth, dois exemplos capazes de transformar uma instalação aparentemente tranquila em uma verdadeira caça ao problema. E se você já passou por isso, provavelmente reconhece a sensação: você sabe que a placa está ali, sabe que ela funcionava, mas o sistema parece simplesmente não saber disso.



