ct

    Guia: Configurando modems e placas wireless no Linux


     Carlos E. Morimoto
     08/01/2006


    ACX100 e ACX111


    Os chipsets ACX100 e ACX111, fabricados pela Texas Instruments, são usados em placas de vários fabricantes, incluindo modelos da DLink, LG, Siemens, Sitecom e 3Com. Eles estão entre os chipsets wireless mais baratos atualmente, por isso são encontrados sobretudo nas placas de baixo custo.

    Uma coisa importante a notar é que não existe uma nomenclatura rígida entre os modelos das placas e os chipsets usados. Por exemplo, as placas Dlink DWL-650 inicialmente vinham com chipsets PRISM (que possuem um excelente driver nativo a partir do Kernel 2.6), depois passaram a vir com o chipset Atheros (que funciona usando o Driver MadWiFi ou o Ndiswrapper) e, finalmente, passaram a vir com o chipset ACX100. Depois sugiram as placas DWL650+, que usam o chipset ACX111. Ou seja, dentro de um mesmo modelo foram fabricadas placas com 4 chipsets diferentes!

    A única forma confiável de verificar qual é o chipset usado na placa é checando a identificação do chipset, o que pode ser feito usando o comando lspci .

    Exemplos de IDs de placas com o chipset ACX são:

    02:00.0 Network controller: Texas Instruments ACX 111 54Mbps Wireless Interface 00:08.0 Network controller: Texas Instruments ACX 100 22Mbps Wireless Interface

    Estas placas funcionam também usando o Ndiswrapper, mas usando o driver nativo a utilização do processador é mais baixa e existem menos relatos de problemas de estabilidade. Recomendo que você experimente primeiro o driver nativo e deixe o Ndiswrapper como segunda alternativa.

    A página oficial do driver é: http://acx100.sourceforge.net/ .

    A página de download dos pacotes com código fonte é a:
    http://rhlx01.fht-esslingen.de/~andi/acx100/ .

    Para instalar, descompacte o arquivo tar.gz, acesse a pasta que será criada e rode os tradicionais:

    # make
    # make install

    Isto copiará o módulo " acx_pci.ko" para a pasta "/lib/modules/2.6.x/net/". Para garantir que o módulo foi instalado corretamente, rode também o comando "depmod -a".

    Para que a placa funcione, além do módulo é necessário ter o arquivo com o firmware da placa. O firmware é o software com as funções que controlam o hardware. Sem o firmware, a placa é um pedaço inútil de metal e silício.

    O driver acx_pci é open-source, mas o firmware não. Embora o arquivo (o firmware) possa ser redistribuído, assim como um freeware qualquer, muitas distribuições não o incluem por não concordarem com os termos da licença.

    Para baixar o firmware da placa, rode o script "fetch_firmware" que está dentro da pasta scripts/, na pasta onde foi descompactado o arquivo com o driver:

    # ./fetch_firmware

    Ele perguntará:

    Locating a suitable download tool...

    Searching for ACX1xx cards on this system...
    Which firmware files package would you like to download?

    a) for ACX100 (TNETW1100) chipset based cards
    b) for ACX111 (TNETW1130/1230) chipset based cards
    c) for both chipsets
    d) none

    Use a opção "C", assim ele já baixa de uma vez os arquivos para os dois chipsets. Isto é feito baixando o driver do Windows e extraindo os arquivos que compõe o firmware para a pasta firmware/, novamente dentro da pasta do driver. Você deve copiá-los para pasta "/usr/share/acx/" , que é a localização padrão, onde o módulo procurará por eles ao ser carregado. Crie a pasta caso necessário:

    # mkdir /usr/share/acx/
    # cp -a /home/kurumin/tmp/acx100-0.2.0pre8_plus_fixes_37/firmware/* /usr/share/acx/

    Feito isso, você já pode experimentar carregar o módulo para ativar a placa. Antes de carregar qualquer módulo de placa wireless, você deve carregar o módulo "wlan", que contém os componentes genéricos:

    # modprobe wlan
    # modprobe acx_pci

    A partir daí o led da placa acenderá indicando que a placa está funcionando e está faltando apenas configurar a rede (que veremos como fazer mais adiante).

    Para que o módulo seja carregado automaticamente durante o boot, adicione as linhas "wlan " e "acx_pci " no final do arquivo "/etc/modules ".


    Em algumas placas em que testei, o led simplesmente não acende ao ativar o driver, embora a placa funcione normalmente.

    As placas D-Link DWL-650+, que utilizam o chipset ACX111 usam um firmware específico. No caso delas você deve usar o firmware incluído no CD de drivers da placa. Copie o arquivo "Driver/Drivers/WinXP/GPLUS.bin" do CD para a pasta "/usr/share/acx/" e o renomeie para FW1130.BIN, substituindo o antigo.

    Eventualmente, você pode encontrar outras placas ACX111 que não funcionam com o firmware padrão. Neste caso experimente a receita de pegar o arquivo .BIN dentro da pasta de drivers para Windows XP, copiar para a pasta "/usr/share/acx/" e renomear.

    Caso você tenha copiado os arquivos do firmware para outra pasta, pode especificar isso na hora de carregar o driver, com o parâmetro "firmware_dir=", como em:

    # modprobe acx_pci firmware_dir=/home/carlos/firmware/


    MadWiFi


    O MadWiFi dá suporte a placas com chipset Atheros, usado em placas da D-link (como a DWL-G520), AirLink, 3Com, Linksys, Netgear, AT&T e outros. Este chipset também é muito usado em placas mini-PCI, para notebooks. Ele pode ser encontrado, por exemplo, nos Toshiba A70 e A75.

    Assim como no caso das placas com chipset ACX, muitos dos modelos com o chip Atheros possuem variantes com outros chipsets. Por exemplo, a D-Link DWL-G520 usa o chip Atheros, enquanto a DWL-G520+ usa o chip ACX100.

    A melhor forma de checar se você tem em mãos uma placa com o chip Atheros é rodar o lspci. Você verá uma linha como:

    02:00.0 Ethernet controller: Atheros Communications, Inc. AR5212 802.11abg NIC (rev 01)

    A página do projeto é a: http://madwifi.sourceforge.net/ .

    O driver pode ser baixado no: http://snapshots.madwifi.org/ .

    Assim como o driver para placas ACX100, o Madwifi é dividido em dois componentes: o driver propriamente dito e o firmware. A diferença é que o firmware já vem incluído no pacote, não é necessário baixá-lo separadamente.

    Recentemente, o driver recebeu uma grande quantidade de novos recursos, incluindo suporte a virtual APs (onde um PC é configurado para atuar como um ponto de acesso), HAL, WDS e outros recursos. Como as modificações são profundas e radicais, os desenvolvedores decidiram dividir o projeto em dois drivers, atualizados separadamente.

    O novo driver é chamado de "madwifi-ng" (ng de "new generation"), enquanto o driver antigo passou a ser chamado "madwifi-old". Geralmente, ninguém gosta de usar coisas "velhas", mas atualmente (Fevereiro de 2006) o driver antigo é ainda muito mais estável, por isso é a opção recomendada. Caso no futuro você tenha problemas com ele, ou caso realmente precise de algum dos novos recursos, experimente o madwifi-ng.

    Para instalar, descompacte o arquivo "madwifi-old-r****-2006****.tar.gz" e acesse a pasta que será criada. Rode os comandos de sempre:

    # make
    # make install

    Depois de instalado, você pode carregar os módulos com os comandos:

    # modprobe wlan
    # modprobe ath_hal
    # modprobe ath_pci

    O módulo wlan contém os componentes genéricos que dão suporte a placas wireless no Linux. O ath_hal contém o firmware da placa e o ath_pci contém o driver propriamente dito, que deve ser sempre carregado depois dos dois.

    Ao carregar os módulos, o led da placa já irá acender, indicando que ela está ativa. Para que eles sejam carregados automaticamente durante o boot, adicione as linhas "wlan", "ath_hal" e "ath_pci" no final do arquivo "/etc/modules".

    Este outro link ensina a compilar pacotes .deb com os drivers, procedimento ideal para quem usa distribuições derivadas do Debian, como o Kurumin. Lembre-se de que os pacotes gerados conterão os módulos compilados para o Kernel usado na sua instalação, e não funcionarão em instalações com versões diferentes do Kernel. http://www.marlow.dk/site.php/tech/madwifi .


    ADMteck ADM8211


    Este é mais um chipset wireless de baixo custo, encontrado tanto em placas PC-Card quanto PCI, incluindo alguns modelos da 3Com e D-link e algumas placas PCI baratas, sem pedigree.

    É fácil reconhecer estas placas pelo chipset, que trás decalcado o modelo. Rodando o comando lspci você verá algo como:

    00:08.0 Network controller: Linksys ADMtek ADM8211 802.11b Wireless Interface (rev 11)

    O driver para elas pode ser baixado no: http://aluminum.sourmilk.net/adm8211/ .

    Enquanto escrevo a versão mais recente é a "adm8211-20051031.tar.bz2". Durante um certo tempo este driver foi desenvolvido de forma bastante ativa, com novas versões sendo lançadas praticamente a cada semana, depois entrou num período de manutenção, com atualizações mais esparsas, destinadas basicamente a acompanhar mudanças no Kernel.

    Para instalar, basta descompactar o arquivo, acessar a pasta e rodar o comando:

    # make install

    A instalação consiste em gerar o módulo "adm8211.ko" e copiá-lo para a pasta "/lib/modules/2.6.x/kernel/drivers/net/wireless/". O script de instalação cuida de tudo automaticamente.

    Para ativar a placa, carregue o módulo com os comandos:

    # modprobe wlan
    # modprobe adm8211

    Para que o módulo seja carregado automaticamente durante o boot, adicione as linhas "wlan" e "adm8211" no final do arquivo "/etc/modules". Depois falta só configurar os parâmetros da rede.

    Embora o driver seja de boa qualidade, as placas em si possuem problemas freqüentes relacionados ao rádio, algumas captam muita interferência, outras simplesmente usam transmissores ou antenas baratos, de baixa potência, o que faz com que a qualidade do sinal fique muitas vezes comprometida. De uma forma geral, não são muito recomendáveis.


    Realtek 8180


    Este chipset é encontrado em alguns modelos de placas PCI, principalmente um modelo vendido pela LG. Embora seja mais raro, você também encontrará algumas placas PCMCIA e até algumas placas-mãe com ela onboard.

    A Realtek chegou a disponibilizar um driver for Linux, mas ele funciona apenas em distribuições com Kernel 2.4.18 ou 2.4.20: http://www.realtek.com.tw/downloads/ .

    Existe um driver open-source, o "rtl8180-sa2400" (desenvolvido de forma independente) este sim atualizado. O nome surgiu por que originalmente este driver dava suporte apenas a um pequeno conjunto de placas, que utilizavam o transmissor de rádio Philips sa2400. Com o tempo, o conjunto de placas suportadas cresceu bastante e atualmente ele já suporta quase todas as placas baseadas no chipset Realtek 8180, produzidas por vários fabricantes.

    Ele funciona tanto em distribuições com o Kernel 2.4 quanto com o 2.6 e está disponível no:
    http://rtl8180-sa2400.sourceforge.net/

    Para instalar, descompacte o arquivo e rode o comando "make" dentro da pasta. Ele vai gerar 4 módulos: ieee80211_crypt-r8180.ko, ieee80211_crypt_wep-r8180.ko, ieee80211-r8180.ko e r8180.ko, que precisam ser carregados usando o comando insmod, nesta ordem:

    # insmod ieee80211_crypt-r8180.ko
    # insmod ieee80211_crypt_wep-r8180.ko
    # insmod ieee80211-r8180.ko
    # insmod r8180.ko

    Para facilitar, você pode simplesmente rodar o script "module_load" dentro da pasta do driver, que automatiza estes quatro comandos.

    Para realmente instalar os drivers, de forma a poder carregá-los usando o comando modprobe, copie-os para dentro da pasta "/lib/modules/2.6.x/misc/" e rode o comando "depmod -a" para que o sistema atualize a base de módulos instalados.

    A partir daí você pode incluir as linhas abaixo no final do arquivo "/etc/modules" para que eles sejam carregados automaticamente durante o boot:

    ieee80211-r8180_crypt-r8180
    ieee80211_crypt_wep-r8180
    ieee80211-r8180
    r8180

    Estas placas funcionam também usando o Ndiswrapper, que pode ser usado como segunda opção em caso de problemas com o driver nativo.


    Orinoco-USB


    Este driver é destinado às placas USB com o chipset Prism, como as Compaq WL215 e W200, encontradas principalmente em notebooks Compaq Evo. Este driver foi durante um bom tempo desenvolvido como um driver separado, até ser incorporado ao driver Orinoco principal.

    Se você está usando uma distribuição recente, baseada no Kernel 2.6.8 em diante, é provável que sua placa funcione simplesmente carregando o módulo "orinoco":

    # modprobe orinoco

    Caso você esteja usando uma distribuição antiga, que ainda utilize o driver orinoco sem suporte aos modelos USB, você pode instalar manualmente o driver antigo, disponível no:
    http://orinoco-usb.alioth.debian.org

    Na página estão disponíveis pacotes para o Debian e o Red Hat, mas lembre-se de que os pacotes só funcionam nas versões do Kernel para que foram compilados. Eles só serão úteis se você estiver usando um Kernel padrão das distribuições.

    A forma mais rápida de obter o código fonte do driver para instala-lá manualmente é via CVS. É mais fácil do que parece. Em primeiro lugar você precisará instalar o pacote "cvs" encontrado na distribuição em uso, com um "apt-get install cvs" ou "urpmi cvs" por exemplo. Com o CVS instalado, rode os comandos:

    # export CVS_RSH="ssh"
    # cvs -z3 -d:ext:anoncvs@savannah.nongnu.org:/cvsroot/orinoco co orinoco

    Isso criará uma pasta "orinoco" no diretório atual. Acesse-a e rode os comandos:

    # make
    # make install

    Para que o driver funcione, você precisará tanto dos módulos instalados pelo "make; make install" quando do firmware da placa. Eu instalei os módulos através do código fonte baixado através do CVS, mas o script que baixaria o firmware não funcionou.

    Fiz uma segunda tentativa com o pacote "orinoco-usb-0.2.2.tar.bz2" disponível no:
    http://alioth.debian.org/projects/orinoco-usb/

    Este pacote não compilou, mas dentro da pasta existe um diretório chamado "firmware/" com um script (diferente) para baixar o firmware da placa. Para executá-lo, rode o comando "make".

    Isto gerará dois arquivos, o "orinoco_ezusb_fw" (que na verdade é um link simbólico) e o "orinoco_usb_fw.bin" (o firmware propriamente dito) que devem ser copiados para a pasta "/usr/lib/hotplug/firmware/" .

    Isto será suficiente para que o hotplug passe a detectar e ativar a placa no boot. Caso seja necessário ativa-la manualmente, rode o comando:

    # modprobe orinoco_usb


    Broadcom


    O chipset Broadcom pode ser encontrado em vários notebooks (como o HP nx6110 e outros modelos similares) e também em diversas placas PCMCIA. Este é um chipset de boa qualidade, que até recentemente não possuía um driver nativo, embora funcionasse bem através do Ndiswrapper, na maioria dos casos.

    Em Novembro de 2005 a Broadcom liberou as especificações do chipset, permitindo que fosse iniciado o projeto de desenvolvimento de um driver nativo, disponível no: http://bcm43xx.berlios.de/ .

    O driver ainda está em estágio inicial de desenvolvimento, mas como existe uma demanda grande para um driver para estas placas, é possível que ele evolua muito rápido.


    IPW2100 e IPW2200


    Os chipsets IPW2100 e IPW2200 são fabricados pela Intel e vendidos na forma de placas mini-PCI destinadas a notebooks. Elas são encontradas em notebooks com a tecnologia Centrino.

    Trata-se na verdade de um golpe de marketing da Intel para vender mais placas, chipsets e processadores. Para usar a marca "Centrino", um notebook precisa usar um processador Pentium M, um chipset Intel e uma placa wireless IPW2100 ou IPW2200. Os fabricantes acabam comprando então os três componentes da Intel, ao invés de usar uma placa wireless ou chipset de outro fabricante. Note que existem muitos notebooks com processadores Pentium M ou Celeron M e placas wireless de outros fabricantes, mas eles não são "Centrino".

    Embora raro, é possível comprar as placas separadamente para uso em outros modelos que possuam um slot mini-PCI livre (neste caso as placas são vendidas sem a marca "Centrino"). Embora a foto não dê uma boa noção de perspectiva, as placas mini-PCI são realmente pequenas, quase do tamanho de uma caixa de fósforos.

    Você pode verificar o modelo correto usando o lspci e em seguida baixar o driver no:

    http://ipw2100.sourceforge.net/
    ou
    http://ipw2200.sourceforge.net/

    Em ambos os casos, você precisará de dois arquivos. O driver propriamente dito e o firmware, novamente um arquivo separado. Como de praxe, os drivers são de código aberto mas o firmware não.

    O driver em si já vem pré instalado na maioria das distribuições e foi incluído oficialmente no Kernel a partir do 2.6.14, de forma que você já o encontrará pré-instalado em praticamente qualquer versão atual.

    De qualquer forma, caso por algum motivo você precisa instalá-lo ou atualiza-lo manualmente, basta baixar e descompactar o arquivo e rodar os comandos:

    # make
    # make install

    Isto gerará e copiará os módulos ipw2200.ko, ieee80211.ko, ieee80211_crypt.ko e ieee80211_crypt_wep.ko para a pasta "/lib/modules/2.6.x/kernel/drivers/net/wireless/".

    Em seguida vem o passo que é quase sempre necessário: baixar o arquivo com o firmware ("ipw2200-fw-2.0.tgz ", no meu caso), descompactar e copiar os arquivos para dentro da pasta "/usr/lib/hotplug/firmware/" , como em:

    # mkdir -p /usr/lib/hotplug/firmware/
    # cp -a ipw2200-fw-2.0.tgz /usr/lib/hotplug/firmware/
    # cd /usr/lib/hotplug/firmware/
    # tar -zxvf ipw2200-fw-2.0.tgz

    A partir daí, a placa deve ser ativada automaticamente durante o boot. Caso você queira ativar e desativar o suporte manualmente, use os comandos:

    # modprobe ipw2200
    (para carregar)

    # modprobe -r ipw2200
    (para desativar)


    Ralink 2400 e 2500


    A Ralink é um fabricante relativamente novo, que fabrica os chipsets rt2400 e rt2500, dois chips de baixo custo, que estão sendo usadas em muitas placas, muitas vezes substituindo os chips acx111 e rtl8180, que são mais caros do que eles.

    Muita gente utiliza (com sucesso) o ndiswrapper para ativar estas placas, mas também existe um driver nativo, que pode ser baixado no: http://prdownloads.sourceforge.net/rt2400/ .

    Nele você encontrará os arquivos "rt2400-1.x.x.tar.gz" (o driver antigo, que dá suporte às rt2400) e o "rt2500-1.x.x.tar.gz", que dá suporte às rt2500. Você pode verificar qual dois dois chipsets é usado na sua placa usado o comando "lspci", ou verificar uma lista de placas baseadas nos dois chipsets no: http://ralink.rapla.net/ .

    Para instalar o "rt2400-1.x.x.tar.gz", descompacte o arquivo e acesse a pasta que será criada. Dentro dela, acesse a pasta "Module" e rode os comandos "make" e "make install". Será instalado o módulo "rt2400". Ao carregá-lo usando o modprobe, a placa será vista pelo sistema como "/dev/ra0", ao invés de "/dev/wlan0" como seria mais comum.

    Para o "rt2500-1.x.x.tar.gz" o procedimento de instalação é o mesmo, rodar os comandos "make" e "make install" dentro da pasta "Module". A única diferença é que neste caso é instalado o módulo "rt2500".

    Você encontrará na página também o arquivo "rt2x00-2.0.0-xx.tar.gz", que é um driver novo e experimental, escrito do zero, com o objetivo de dar suporte às duas placas simultaneamente. Ele está disponível apenas para testes, as primeiras versões utilizáveis devem ser lançadas a apenas por voltar da metade de 2006. Mas, por estar concentrando a maior parte do desenvolvimento, este novo driver tende a se tornar a melhor opção assim que estiver concluído.


    Linux-wlan-ng

    O pacote linux-wlan-ng inclui suporte a várias variações do chipset Prism, incluindo o Prism2. Este pacote vem incluído na maior parte das distribuições, por ser completamente open-source.

    Ele é (nas distribuições) geralmente dividido em dois pacotes. O pacote "linux-wlan-ng" inclui os scripts e utilitários, enquanto o pacote "linux-wlan-ng-modules" contém os módulos de Kernel das placas suportadas. Algumas distribuições incluem apenas os scripts e utilitários, mas não os módulos do Kernel. Caso você precise instalá-los manualmente, baixe o pacote no:
    ftp://ftp.linux-wlan.org/pub/linux-wlan-ng/

    A instalação é similar aos outros drivers que vimos até aqui. Descompacte o arquivo e rode o comando:

    # make config

    O script confirma a localização do código fonte do Kernel e pergunta quais dos módulos devem ser gerados. Existem três drivers disponíveis, o "prism2_plx" (para placas Prism2 PLX9052), "prism2_pci" (para placas com chipset Prism2 em versão PCI ou PC-Card) e "prism2_usb" (a versão para placas USB).

    Em seguida rode os comandos:

    # make all
    # make install

    ... que concluirão a instalação. Os módulos são carregados automaticamente durante o boot pelo hotplug, mas, caso seja necessários carregar manualmente, use os comandos: "modprobe prism2_pci", "modprobe prim2_usb" ou "modprobe prim2_plx".


cb
HOME