Drivers proprietários

Os drivers proprietários são uma categoria à parte. Eles não são incluídos diretamente na maior parte das distribuições, seja por restrições com relação à redistribuição do arquivo (em muitos casos a EULA não permite a redistribuição do driver, de forma que ele precisa ser baixado manualmente no site do fabricante) ou seja por dúvidas com relação à estabilidade e segurança, já que o código-fonte do driver não está disponível e por isso não pode ser auditado em busca de erros. É aqui que entram os drivers para softmodems, algumas placas wireless e também os drivers para placas 3D da nVidia e da ATI, que citei anteriormente.

Instalar um desses drivers envolve duas tarefas: baixar o pacote com o código-fonte, ou um instalador e em seguida instalá-lo, carregando o módulo criado e fazendo outras configurações necessárias.

Ao instalar o driver para modems com chipset Lucent, por exemplo, é criado um dispositivo “/dev/ttyLT0”, por onde o modem é acessado. Para facilitar esta tarefa, geralmente os drivers vêm com algum tipo de instalador, geralmente um script simples de modo texto que cuida disso para você.

Os módulos são parte integrante do Kernel, por isso os módulos compilados para uma determinada distribuição não funcionam em outra, a menos que, por uma grande coincidência, as duas utilizem exatamente a mesma versão do Kernel. Isso é bastante improvável, já que o Kernel do Linux é atualizado quase que diariamente.

Se você usar uma distribuição popular, como o Mandriva, Fedora, SuSE, etc., é possível que você encontre um driver pré-compilado para download (que pode ser encontrado com a ajuda do Google ;). Neste caso, você só vai precisar instalar um pacote RPM ou executar um arquivo de instalação. Em outras situações, você encontrará apenas um arquivo genérico ainda não compilado, contendo um instalador que se encarrega de compilar um módulo sob medida para o Kernel em uso.

Como ele não tem como adivinhar qual distribuição ou Kernel você está utilizando, é necessário ter instalados dois pacotes que acompanham qualquer distribuição: kernel-source e kernel-headers. No Mandriva, por exemplo, você pode instalá-los usando os comandos:

# urpmi kernel-source
# urpmi kernel-headers

Naturalmente, para que ele possa compilar qualquer coisa, você precisará também de um compilador, o gcc, que também acompanha as distribuições. Você pode instalá-lo marcando a categoria de pacotes de desenvolvimento (development) durante a instalação do sistema.

No caso do Ubuntu e de outras distribuições da família do Debian, instale o pacote “build-essential” (que contém os compiladores básicos) e o pacote “linux-headers-2.6.x-x” (onde o 2.6.x-x é a versão do Kernel em uso), que contém os headers, ou seja, as partes do código-fonte necessárias para compilar módulos. Você pode usar o comando “uname -a” para descobrir qual versão do Kernel está instalada, como em:

# uname -a

Linux server 2.6.18-4 #1 Tue Aug 16 12:46:35 UTC 2005 i686 GNU/Linux

Em seguida, instale os pacotes usando o apt-get, como em:

# apt-get install build-essential
# apt-get install linux-headers-2.6.18-4

No caso do Ubuntu, você pode precisar criar manualmente o link “/usr/src/linux”, apontando para a pasta referente à versão instalada. Para isso, acesse a pasta “/usr/src” e rode o comando “sudo ln -sf linux-headers-2.6.*-* linux”, como em:

# cd /usr/src
# sudo ln -sf linux-headers-2.6.18-4 linux

Com os compiladores e os headers do Kernel instalados, você vai conseguir instalar qualquer driver sem maiores problemas, basta seguir as instruções disponíveis na página de download ou no arquivo INSTALL ou README dentro do pacote. Ao baixar, procure por uma versão atualizada do driver, que seja compatível com a versão do Kernel em uso. É muito comum que drivers pouco usados sejam atualizados esporadicamente e não funcionem em versões recentes do Kernel. Nesse caso existe pouco a fazer senão esperar o lançamento de uma versão atualizada.

Vamos a um exemplo de instalação com o driver “gspca”, que adiciona suporte a um grande número de webcams, incluindo muitos dos modelos incorporados à tela dos notebooks. Ele pode ser baixado no: http://mxhaard.free.fr/download.html.

Na página de download, você encontra um aviso:

for kernel up from 2.6.11 : gspcav1-20070508.tar.gz
for kernel below 2.6.11: spca5xx version 0.60.00-1: spca5xx-v4l1goodbye.tar.gz

Como no exemplo estamos usando o Kernel versão 2.6.18-4, baixaríamos o primeiro arquivo. Para instalá-lo, você descompacta o arquivo e, dentro da pasta criada (como root), executa os comandos:

# make
# make install

Na maioria dos pacotes, você precisaria usar primeiro o comando “./configure”, mas no caso do gspca ele não é necessário. Como os comandos de instalação podem sofrer pequenas variações de um pacote para o outro, é sempre importante dar uma olhada rápida nas instruções de instalação.

Com o módulo instalado, o próximo passo é carregá-lo. Se a webcam estiver entre os modelos suportados, ela passará a ser vista pelos programas de mensagem (como o kopete) e por programas de visualização de imagem que oferecem suporte a câmeras.

# modprobe gspca

Para que ele seja carregado automaticamente durante o boot, adicione o comando no final do arquivo “/etc/rc.local” ou “/etc/rc.d/rc.local”. Existe também um arquivo específico para incluir módulos que devem ser carregados durante o boot, que é o “/etc/modules“. Ao usá-lo, você deve incluir apenas o nome do módulo (sem o “modprobe”) no final do arquivo.

Outro exemplo de driver muito comum é o driver 3D para placas nVidia, disponível no: http://www.nvidia.com/object/unix.html.

O pacote disponível para download contém um instalador, que automatiza o processo de instalação e permite que o mesmo pacote possa ser instalado em qualquer distribuição.

Existem três versões do driver. A mais recente oferece suporte às GeForce 6100 em diante, excluindo o suporte às placas antigas. Existem ainda duas versões “legacy”, destinadas às placas anteriores. A versão 96xx oferece suporte às GeForce 2, GeForce 3 e GeForce 4, incluindo as GeForce 2 MX e GeForce 4 MX e as GeForce 2 onboard, enquanto a versão 71xx oferece suporte às placas realmente antigas, a partir das TnT.

Em qualquer um dos três casos, o processo de instalação é o mesmo. Comece marcando a permissão de execução para o arquivo, o que pode ser feito através das propriedades do arquivo, ou via terminal, usando o comando “chmod +x”, como em:

$ chmod +x NVIDIA-Linux-x86-100.14.11-pkg1.run

Por precaução, o instalador exige que você o execute em modo texto puro, já que o instalador não tem como substituir os módulos antigos caso eles estejam em uso. Dependendo da distribuição usada, o comando para fechar o ambiente gráfico pode ser “/etc/init.d/kdm stop”, “/etc/init.d/gdm stop”, “service dm stop”, “telinit 3” ou “init 3”.

Depois de executar o comando apropriado (sempre como root), você cai em um terminal de texto puro. Logue-se como root (no Ubuntu você pode se logar com o seu login de usuário e usar o comando “sudo su” para virar root), acesse a pasta onde foi baixado o arquivo (usando o comando “cd”) e execute-o, usando o comando “./” seguido do nome do arquivo, como em:

# ./NVIDIA-Linux-x86-100.14.11-pkg1.run

A maior parte da instalação consiste em simplesmente copiar alguns arquivos e bibliotecas. Mas, existe um componente que precisa ser gerado sob medida para o seu sistema, que é o módulo para o Kernel, que permite que o driver tenha acesso de baixo nível ao hardware.

O instalador já traz vários módulos pré-compilados para várias distribuições, incluindo Mandriva, SuSe, Fedora e outras. Ao usar uma delas, ele simplesmente vai instalar o que já tem, sem fazer mais perguntas. Caso contrário, ele verificará se existe algum módulo disponível no FTP da nVidia e em seguida tentará compilar um módulo sob medida, o que é feito automaticamente depois de uma tela de confirmação:

No final ele pergunta se deve editar o arquivo de configuração do X automaticamente. Responda “yes” para que ele faça as alterações automaticamente e reinicie o modo gráfico. Este era um passo que precisava ser feito manualmente em versões antigas do driver.

Para as placas wireless que não possuem drivers nativos, existe a opção de carregar o driver do Windows XP através do Ndiswrapper. Infelizmente ele funciona apenas com drivers de rede, por isso não é uma solução para quem precisa de drivers para um softmodem ou outro dispositivo. Ele já vem pré-instalado na maioria das distribuições atuais. Caso não esteja, procure pelos pacotes “ndiswrapper-utils” e “ndiswrapper-modules” no gerenciador de pacotes.

Para usar o Ndiswrapper, você precisa ter em mãos o driver da placa para Windows XP, que pode ser encontrado no CD de instalação ou no site do fabricante. Comece descompactando o arquivo do driver, caso necessário. Os drivers distribuídos na forma de arquivos .exe são, na verdade, arquivos compactados no formato cab, que contém um instalador. Eles podem ser descompactados no Linux usando o comando “cabextract” (que faz parte do pacote do mesmo nome), como em:

$ cabextract sp32158.exe

Para carregar o driver, use o comando “ndiswrapper -i” (como root), seguido do caminho completo para o arquivo “.inf”, como em:

# ndiswrapper -i /mnt/hda6/Driver/WinXP/GPLUS.inf

Com o driver carregado, ative o módulo com o comando:

# modprobe ndiswrapper

Se tudo estiver ok, o led da placa acenderá, indicando que ela está ativa. A partir daí, falta apenas configurar a rede da forma normal. Caso você esteja tendo problemas para se conectar em redes com encriptação WPA, verifique se o pacote “wpa_supplicant” está instalado.

Muitas distribuições incluem wizards ou utilitários gráficos para facilitar a configuração do Ndiswrapper, como no ndisgtk, mas estes passos manuais podem ser usados quando tudo mais falhar. Aqui está uma lista de outros drivers de que você pode precisar. Eles vem pré-instalados em muitas distribuições, mas sempre existem casos em que você precisa instalá-los manualmente:

Placas 3D com chipset ATI:
http://www.ati.com (na seção “Drivers & Software > Linux Display Drivers”).

Placas wireless com chipsets ACX100 e ACX111:
http://rhlx01.fht-esslingen.de/~andi/acx100/

Placas wireless com chipset Atheros: http://madwifi.sourceforge.net/

Placas wireless com chipset ADM8122 (ADMteck):
http://aluminum.sourmilk.net/adm8211/

Notebooks com placas wireless Intel IPW2100 ou IPW2200:
http://ipw2200.sourceforge.net/ ou http://ipw2100.sourceforge.net/
(além do driver, é necessário baixar o arquivo compactado na seção “firmware”, que deve ser descompactado dentro da pasta “/lib/firmware”. Muitas distribuições incluem o driver, mas não o firmware, que também é necessário para a placa funcionar)

Placas wireless com chipset Ralink rt2400, rt2500 ou rt61:
http://prdownloads.sourceforge.net/rt2400/

Placas wireless com chipset Realtek rtl8180:
http://rtl8180-sa2400.sourceforge.net/

Modems PC-Tel onboard e AMR (incluindo os das placas M810, M812, e outros modelos da PC-Chips/ECS, além de vários notebooks) e modems PCI com chipset PC-Tel recentes, como os LG-Netodragon:
http://www.smlink.com/ (Support > Drivers Download > Linux Drivers) ou
http://linmodems.technion.ac.il/packages/smartlink/

Modems com chipset PC-Tel em versão PCI, que não são atendidos pelo driver da Smartlink:
http://linmodems.technion.ac.il/pctel-linux/welcome.html

Modems com chipset Intel 537 (Tigerjet) e Intel 537ep (Ambient):
http://linmodems.technion.ac.il/packages/Intel/537/

Modems Lucent e Agere (este driver funciona apenas com os modelos antigos):
http://linmodems.technion.ac.il/packages/ltmodem/kernel-2.6/

Modem ADSL Speedtouch USB (incluindo o Speedtouch 330):
http://sourceforge.net/projects/speedtouch/

Diversas placas de TV só funcionam caso o módulo seja carregado usando as opções adequadas, como no exemplo da PlayTV Pro, que usei há pouco. Você pode ver um resumo dos chipsets suportados no Linux e os parâmetros utilizados pelos diferentes modelos de placas no:
http://tvtime.sourceforge.net/cards.html.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X