Recentemente me deparei com um
netbook HP que não conseguia conectar em redes
Wi-Fi utilizando a distribuição
Fedora 17, com kernel atualizado (3.3.x).
Configuração do equipamento e software:
- HP Mini
- CPU Intel Atom n450 @ 1.66Ghz
- Ethernet controller Broadcom BCM4312 802.11b/g LP-PHY (rev. 01)
- Linux Fedora 17 com kernel 3.3.4-5.fc17.i686.PAE
Logo, fui olhar o log em
/var/log/messages para tentar encontrar alguma mensagem que me guiasse na resolução do problema:
# tailf /var/log/messages
Esse modelo habilita e desabilita todas as conexões Wi-Fi pressionando a tecla
F12 e, fazendo isso, uma enxurrada de mensagens inundava a tela.
Mas com um pouco de paciência pude encontrar as seguintes linhas:
Feb 19 20:22:12 (none) NetworkManager[504]: <info> WiFi now enabled by radio killswitch
Feb 19 20:22:12 (none) NetworkManager[504]: <info> (wlan0): bringing up device.
Feb 19 20:22:12 (none) kernel: [ 609.159692] b43-phy0 ERROR: Firmware file "b43/ucode15.fw" not found
Feb 19 20:22:12 (none) kernel: [ 609.159704] b43-phy0 ERROR: Firmware file "b43-open/ucode15.fw" not found
Feb 19 20:22:12 (none) kernel: [ 609.159714] b43-phy0 ERROR: You must go to http://wireless.kernel.org/en/users/Drivers/b43#devicefirmware and download the correct firmware for this driver version. Please carefully read all instructions on this website.
A mensagem de erro dizia que eu deveria baixar um firmware específico para esta versão de driver. Então entrei no site indicado e li todo o FAQ.
Logo abaixo, vou resumir como resolvi o problema:
Resolução
1. Listei as interfaces da
Broadcom, com o seguinte comando:
# lspci -vnn -d 14e4
Obs.: O parâmetro "-d 14e4", mostra somente as interfaces que possuem o
vendor_id da Broadcom.
O site possui uma tabela para que você procure pelo device encontrado. No meu caso a seguinte linha mostrava que haveria suporte:
14e4:4315 yes (2.6.33+) BCM4312 b/g LP (r1) wl
2. Instalei o
b43-fwcutter e o
Wget. O b43-fwcutter é uma ferramenta que faz a extração do firmware correto para o dispositivo Broadcom 43xx de um arquivo de driver proprietário da Broadcom. Já o Wget é uma ferramenta para download de arquivos e páginas utilizando o protocolo HTTP.
# yum install b43-fwcutter wget
3. Após a instalação do b43-fwcutter, baixei a versão do driver proprietário da Broadcom, versão 5.100.138 e, então, fiz a extração do firmware diretamente dele.
Obs.: procurar pelo caminho onde vão ficar os firmwares e ajustar a variável FIRMWARE_INSTALL_DIR no export. No meu caso (Fedora 17), é a pasta
/usr/lib/firmware, mas poderia ser
/lib/firmware em outros S.Os.:
# export FIRMWARE_INSTALL_DIR="/usr/lib/firmware"
# wget http://www.lwfinger.com/b43-firmware/broadcom-wl-5.100.138.tar.bz2
# tar xjf broadcom-wl-5.100.138.tar.bz2
# b43-fwcutter -w "$FIRMWARE_INSTALL_DIR" broadcom-wl-5.100.138/linux/wl_apsta.o
4. Tirei da memória todos os módulos de kernel:
# modprobe -r b43 bcma
# modprobe -r brcmsmac bcma
# modprobe -r wl
5. Então carreguei somente o que me servia:
# modprobe b43
Obs.: Em outros S.Os., poderiam funcionar os módulos
brcmsmac ou
wl.
6. Listei na blacklist os drivers que não me servem, para que não corra o risco de subirem inadvertidamente durante o boot:
# echo "blacklist brcmsmac" >> /etc/modprobe.d/blacklist
# echo "blacklist wl" >> /etc/modprobe.d/blacklist
7. Após o ajuste dos drivers, configurei a interface Wi-Fi para conectar automaticamente no
access point, que eu já havia definido por padrão:
# yum install wireless-tools wpasupplicant
# ifconfig wlan0 up
# wpa_passphrase YOURSSID YOURWIFIPASSWORD >> /etc/wpa_supplicant/wpa_supplicant.conf
# wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan0
Agora é só subir a interface wlan0 que ela já conecta no acces point definido.
Link de apoio:
Device firmware installation « wireless.kernel.org
Nenhum comentário foi encontrado.