Corrigindo a placa RaLink RT2561/RT61 (Wireless DLink) no Linux
Esta semana resolvi testar três distribuições linux no meu desktop: Ubuntu 9.04, openSuSE 11.1 e CentOS 5.3, todos 32bits. Lembrando que antes de testa-las, eu tinha o Slackware 12.2 instalado e devidamente configurado, todo o hardware foi detectado no boot, não havendo necessidade alguma de corrigir problemas de hardware, apenas tive que configurar manualmente a minha NVidia.
Meu desktop é um singelo AMD Athlon XP 2000+ com 768Mb, 100% off-board. O Ubuntu cumpriu o prometido: 23s do boot ao login. O openSuSE já tinha um boot mais lento (muito mais lento que o do Ubuntu) e também na sua inicialização padrão (do openSuSE) carregou muita coisa desnecessária deixando a máquina lenta. O CentOS, também funcinou tudo redondo, boot ficou rápido, mas não tanto quanto o do Ubuntu.
Mas todas 3 pecaram em um único ponto: Minha placa de Rede Wireless PCI. No Slackware ela funcionava redondamente, sem a necessidade de configurações extras, nos Linux “PnP” tive uma supresa. A placa é uma DLink com chipset RaLink RT2561/RT61. Nas três distribuições a mesma falha, dizia que o driver havia sido compilado com uma versão antiga do firmware. Decidi então ir em busca da solução e acredito que será a mesma para qualquer outra distribuição Linux que acuse o problema.
Pesquisando pela saída do “lspci” encontrei um link para http://www.ralinktech.com/ralink/Home/Support/Linux.html onde contém os drivers para Linux. Baixei o arquivo 2009_0123_RT61_Linux_STA_v1.1.2.3.tar.bz2.
Vamos decompactar e compilar:
[ root@centos Downloads ]# tar xvjf 2009_0123_RT61_Linux_STA_v1.1.2.3.tar.bz2 -C /usr/src/.
[ root@centos Downloads ]# cd /usr/src/2009_0123_RT61_Linux_STA_v1.1.2.3/Module
[ root@centos Module ]# cp -f Makefile.6 Makefile
[ root@centos Module ]# make all
[ root@centos Module ]# make install
[ root@centos Module ]# mkdir -p /etc/Wireless/RT61STA
[ root@centos Module ]# cp *.bin /etc/Wireless/RT61STA/
[ root@centos Module ]# dos2unix rt61sta.dat
[ root@centos Module ]# cp rt61sta.dat /etc/Wireless/RT61STA/
[ root@centos Module ]# rmmod rt61pci
[ root@centos Module ]# modprobe rt61
Pronto! Foi criada uma interface de rede, nomeada de ra0. Portanto wlan0 não funciona mais.
Vamos testar agora:
[ root@centos Module ]# cd ~
[ root@centos root ]# iwlist ra0 scan
Aqui deverão aparecer informações sobre sua rede wireless. Agora é só utilizar a placa de rede, sem dor de cabeça.
Wireless Broadcom no Linux Slackware 12.2
Acredito que esta dica sirva não apenas para o Slackware, mas como para qualquer outro Linux que não configure esta placa de rede automáticamente. Para tal, faz-se necessário que você efetue login no sistema com o usuário “root”.
Parte 1: Compilando o b43-fwcutter
Este utilitário será usado para extrair os firmwares da placa de rede broadcom para que a mesma funcione corretamente no Linux.
Faça o download dele em: http://bu3sch.de/b43/fwcutter/b43-fwcutter-011.tar.bz2
Agora vamos descompactar e compilar
root@slackware: ~# tar xvjf b43-fwcutter-011.tar.bz2 -C /usr/src/
root@slackware: ~# cd /usr/src/b43-fwcutter-011
root@slackware: /usr/src/b43-fwcutter-011# make
root@slackware: /usr/src/b43-fwcutter-011# cd ~
Parte 2: Extraindo os Firmwares da placa de rede
Efetue o download do driver em: http://mirror2.openwrt.org/sources/broadcom-wl-4.150.10.5.tar.bz2
Agora vamos “Extrair e Instalar” os firmwares.
root@slackware: ~# tar xvjf broadcom-wl-4.150.10.5.tar.bz2 -C /usr/src/
root@slackware: ~# export FIRMWARE_INSTALL_DIR=”/lib/firmware”
root@slackware: ~# cd /usr/src/broadcom-wl-4.150.10.5/driver
root@slackware: /usr/src/broadcom-wl-4.150.10.5/driver# ../../b43-fwcutter-011/b43-fwcutter -w “$FIRMWARE_INSTALL_DIR” wl_apsta_mimo.o
Várias linhas serão exibidas neste passo. Agora vamos ativar o módulo da placa de rede:
root@slackware: /usr/src/broadcom-wl-4.150.10.5/driver# rmmod b43
root@slackware: /usr/src/broadcom-wl-4.150.10.5/driver# modprobe b43
Protinho. Neste ponto sua Wireless já deverá estar funcionando. Para efetuar um teste execute o comando abaixo:
root@slackware: /usr/src/broadcom-wl-4.150.10.5/driver# iwlist wlan0 scan
Deverão ser exibidas informações de sua rede Wireless.
Parte 3: Alguns problemas que eventualmente poderão ocorrer
1) Em outras versões do Slackware com kernel 2.6.24 ou mais antigas, talvez os firmwares precisem da versão mais antiga, então faça o download destes firmwares: http://downloads.openwrt.org/sources/broadcom-wl-4.80.53.0.tar.bz2, o processo é o mesmo para a extração do firmware.
2) Em versões mais antigas do kernel, o driver da Broadcom era o “bcm43xx”, logo pode ser que o Kernel insista em inicializar ele no lugar do “b43″. Logo recomendo que remova este módulo ou então coloque-o numa blacklist ou ainda se preferir no seu rc.local, coloque os comandos:
rmmod bcm43xx
modprobe b43
Espero ter ajudado. Até a próxima.
Bibliografia: