0. Introdução e Antecedentes
Esta resposta é baseada em uma extensa pesquisa feita por vários usuários do Ubuntu que trabalharam juntos em quase todos os problemas relacionados à Broadcom. Agradecimentos especiais a chili555, que ajudou nos fóruns do Ubuntu e neste site com muitas perguntas relacionadas a dispositivos sem fio e a outras pessoas que contribuíram por e-mail, bate-papos, IRC e muito mais no teste de vários drivers com várias das placas Broadcom Wireless mais populares (Muito obrigado a Chili555, sério. Esse cara sabe o que faz).
No total, queríamos oferecer uma resposta que fosse fácil de seguir e abrangesse a maioria dos cartões / drivers Broadcom. Depois de seguir este guia, você PRECISA testar sua conexão sem fio por pelo menos 2 horas (na verdade, recomendo 8 horas) com outro dispositivo no modo Ad-Hoc, no modo de infraestrutura ou em ambos. Os problemas comuns que serão resolvidos (além dos drivers não instalados) são:
- Tempo limite das conexões após vários minutos ou horas
- Pára de procurar outros dispositivos (não encontra nenhum outro dispositivo)
- Mantém a solicitação de senha mesmo nos casos em que o AP não possui
- Interrompe qualquer tráfego de recebimento / transmissão (é necessário reiniciar para corrigir temporariamente)
- Falha no sistema com erros dmesg no log (link 1 abaixo)
- O sistema congela completamente (você só pode pressionar o botão Reiniciar / Ligar / Desligar) (Link 1 abaixo)
- Cria enormes relatórios de log tentando configurar ou conectar corretamente
- Falha quando instalado por meio de drivers adicionais / hardware adicional (link 3 abaixo)
- Conecta e desconecta continuamente a cada X segundos
- Aparece conectado no Network Manager, mas não recebe Internet
- Tenta se conectar várias vezes sem concluir a conexão corretamente
- Demora muito para conectar
- Após a atualização de uma versão anterior (por exemplo: 12.04 a 12.10), ele pára de funcionar
- A placa sem fio não liga, ativa ou desativa (Link 2 abaixo)
- Placa sem fio bloqueada por hardware
- Mais problemas encontrados no Launchpad, Ubuntu Forum e Askubuntu
Link 1 - https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1060268
Link 2 - https://bugs.launchpad.net/ubuntu/+source/bcmwl/+bug/732677
Link 3 - Dá um erro semelhante a "Desculpe, a instalação deste driver falhou."
Portanto, com isso em mente, é o que temos agora, simplificado em apenas três etapas:
1. Saber qual placa sem fio Broadcom você possui
Existem dezenas de cartões sem fio Broadcom e mais parecem aparecer todos os dias. A chave para encontrar o driver correto para qualquer placa de rede é o conhecido como PCI ID (PCI.ID). Para descobrir qual PCI.ID você possui, procedemos à abertura do terminal pressionando CTRL+ ALT+ T(deve abrir uma janela com um fundo em branco) e, dentro deste terminal, executamos o seguinte comando:
lspci -nn -d 14e4:
Você obterá algo como o seguinte se tiver um adaptador Broadcom Wireless (o ID 14e4 usado no exemplo acima na maioria dos casos é um cartão Broadcom Wireless):
Broadcom Corporation BCM4306 802.11bgn Wireless Network Adapter [14e4:4320] (rev 03)
O PCI.ID neste exemplo é 14e4: 4320 como visto dentro dos colchetes [...]. Em alguns casos, você também precisará da versão de revisão (se aparecer) para alguns casos especiais. Nesse caso, a versão de revisão é rev 03, como mostrado dentro dos parênteses (...) no final. Então, o que você precisará após esta pesquisa é:
[14e4:4320] (rev 03)
Com essas novas informações, você pode procurar na tabela abaixo e selecionar o método apropriado para instalar o driver. Por exemplo, neste caso, como você possui a 14e4: 4320 rev 03 , se descermos a lista para a que mostra exatamente o mesmo PCI.ID, você verá que nas colunas do Ubuntu 12.04, 13.10 ou 14.04, será mostrado o firmware-b43-installer
driver do pacote. Isso significa que você só precisará instalar este pacote específico, pois ele aparece em todas as colunas da versão Ubuntu.
NOTA - Antes de continuar, se você já instalou algum driver, colocou na lista negra ou descomentou os arquivos ou arquivos de configuração ou fez alterações no sistema para fazer com que os drivers funcionem nas tentativas anteriores, será necessário desfazê-los para poder siga este guia. Assumimos que você está fazendo isso do zero e não alterou nenhum arquivo de configuração, módulo ou driver do sistema de nenhuma maneira (além de atualizar o sistema). Isso inclui qualquer instalação usando o apt-get, aptitude, synaptic, dpkg, centro de software ou compilação e instalação manual dos pacotes. O sistema deve começar do zero para que isso funcione e evitar conflitos que possam aparecer se o trabalho anterior tiver sido feito.
Por exemplo, se você instalou o bcmwl-kernel-source
pacote anteriormente , será necessário removê-lo usando o método de limpeza:
sudo apt-get purge bcmwl-kernel-source
2. Preparando o sistema
Se você acabou de instalar o Ubuntu, precisará criar um índice de pacotes disponíveis antes de podermos instalar o driver, caso ainda não o tenha feito:
sudo apt update
Eu iria ainda mais longe para atualizar a lista de PCI.IDs do Ubuntu:
sudo update-pciids
Apenas no caso de aparecer o ID de um novo dispositivo Broadcom em particular.
Agora, usando o PCI.ID encontrado nas etapas acima, procuramos na lista abaixo para encontrar o PCI.ID correspondente e o método para instalar o driver associado a ele de uma maneira simples e correta. O terminal será usado para evitar problemas relacionados à GUI. Isso se aplica a todos os casos, exceto conforme indicado. O procedimento de instalação é realizado apenas via terminal e também enquanto estiver conectado à Internet com uma conexão Ethernet com fio temporária ou modem USB ou qualquer outro meio possível que possa fornecer ao seu PC, por enquanto, acesso à Internet. Depois de encontrar na lista abaixo o pacote correto, prosseguimos com a instalação.
3. Instalando o pacote (online)
Supondo que você tenha usado o PCI.ID 14e4: 4320 rev 03, conforme encontrado na sua pesquisa acima, e depois olhado na tabela abaixo e constatado que o pacote correto a ser instalado é o seguinte firmware-b43-installer
, continuamos a instalar este pacote no terminal:
sudo apt install firmware-b43-installer
e depois reiniciar
sudo reboot
O formato para instalar é bastante simples, é apenas:
sudo apt install <PACKAGE_NAME>
No exemplo acima, o PACKAGE_NAME é firmware-b43-installer
.
TABELA SEM FIO DA BROADCOM (Atualizado em 18 de agosto de 2017)
PCI.ID 16.04 LTS 17.10+
------------------------------------------------------------------------------------
14e4:0576 Special Case #1 UNKNOWN
14e4:1713 firmware-b43-installer firmware-b43-installer
14e4:4301 firmware-b43-installer firmware-b43-installer
14e4:4306 firmware-b43-installer firmware-b43-installer
14e4:4306 rev 02 firmware-b43-installer firmware-b43-installer
14e4:4306 rev 03 firmware-b43-installer firmware-b43-installer
14e4:4307 firmware-b43-installer firmware-b43-installer
14e4:4311 firmware-b43-installer firmware-b43-installer
14e4:4311 rev 01 firmware-b43-installer firmware-b43-installer
14e4:4312 firmware-b43-installer firmware-b43-installer
14e4:4313 firmware-b43-installer firmware-b43-installer
14e4:4315 firmware-b43-installer firmware-b43-installer
14e4:4315 rev 01 firmware-b43-installer firmware-b43-installer
14e4:4318 firmware-b43-installer firmware-b43-installer
14e4:4318 rev 02 firmware-b43-installer firmware-b43-installer
14e4:4319 firmware-b43-installer firmware-b43-installer
14e4:4320 rev 02 firmware-b43-installer firmware-b43-installer
14e4:4320 rev 03 firmware-b43-installer firmware-b43-installer
14e4:4321 firmware-b43-installer firmware-b43-installer
14e4:4324 firmware-b43-installer firmware-b43-installer
14e4:4325 firmware-b43-installer firmware-b43-installer
14e4:4328 firmware-b43-installer firmware-b43-installer
14e4:4328 rev 03 bcmwl-kernel-source bcmwl-kernel-source
14e4:4329 bcmwl-kernel-source bcmwl-kernel-source
14e4:432a bcmwl-kernel-source bcmwl-kernel-source
14e4:432b bcmwl-kernel-source bcmwl-kernel-source
14e4:432c bcmwl-kernel-source bcmwl-kernel-source
14e4:432d bcmwl-kernel-source bcmwl-kernel-source
14e4:4331 firmware-b43-installer firmware-b43-installer
14e4:4335 firmware-b43-installer firmware-b43-installer
14e4:4350 firmware-b43-installer firmware-b43-installer
14e4:4353 Special Case #1 UNKNOWN
14e4:4353 rev 01 Special Case #1 UNKNOWN
14e4:4357 Special Case #1 UNKNOWN
14e4:4358 bcmwl-kernel-source bcmwl-kernel-source
14e4:4359 bcmwl-kernel-source bcmwl-kernel-source
14e4:4360 bcmwl-kernel-source bcmwl-kernel-source
14e4:4365 bcmwl-kernel-source bcmwl-kernel-source
14e4:4365 rev 01 bcmwl-kernel-source bcmwl-kernel-source
14e4:43a0 bcmwl-kernel-source bcmwl-kernel-source
14e4:43ae rev 02 UNKNOWN UNKNOWN
14e4:43b1 bcmwl-kernel-source bcmwl-kernel-source
14e4:43b1 rev 03 bcmwl-kernel-source bcmwl-kernel-source
14e4:43c3 rev 04 UNKNOWN Special Case #2
14e4:4727 bcmwl-kernel-source bcmwl-kernel-source
14e4:4727 rev 01 Special Case #1 Special Case #1
14e4:a962 firmware-b43-installer firmware-b43-installer
------------------------------------------------------------------------------------
Caso Especial # 1 - Usos bcma
e brcmsmac
combinação de drivers. O firmware necessário é instalado por padrão no pacote linux-firmware
.
Caso Especial # 2 - Para o ASUS PCE-AC88 AC3100, as etapas são:
- Faça o download deste arquivo e, após extraí-lo, coloque-o em / lib / firmware / brcm
sudo cp brcmfmac4366c-pcie.bin /lib/firmware/brcm/brcmfmac4366c-pcie.bin
- Em seguida,
sudo nano /etc/rc.local
adicione modprobe brcmfmac e salve
sudo reboot
Em hardware como o Lenovo S10-2, se a sua placa sem fio ficar presa ao tentar se conectar a um SSID (continua tentando se conectar), a alternativa para fazê-lo funcionar seria instalar o bcmwl-kernel-source
pacote (Remova quaisquer outros pacotes instalados relacionados a ela ) Leia a seção Depuração abaixo para obter mais informações sobre este dispositivo sem fio.
NOTA IMPORTANTE - Após setembro de 2014, se você seguir esta resposta e ainda tiver problemas para instalar o driver correto, tente o firmware-b43-installer
pacote e nos notifique por meio de comentários. Houve algumas alterações e alguns drivers funcionarão apenas com este pacote. Lembre-se de ter um sistema limpo antes de instalá-lo:
sudo apt install firmware-b43-installer
Em alguns casos particulares, após a instalação, firmware-b43-installer
você precisa remover o módulo b43, habilitá-lo novamente e até mesmo desbloquear com o rfkill:
sudo modprobe -r b43
sudo modprobe b43
sudo rfkill unblock all
Se você tiver um cartão Broadcom com um pci.id diferente, faça uma nova pergunta. Uma vez resolvida, a solução será adicionada a este howto.
4. Instalando o pacote (offline)
4.1 Instalando firmware-b43-installer
Para instalar firmware-b43-installer
offline, veja esta resposta .
4.2 Instalando bcmwl-kernel-source
Para os casos em que você precisa instalar, bcmwl-kernel-source
mas está offline, aqui está uma excelente resposta. Mas, basicamente, siga estas etapas:
- Procure o pacote nos repositórios de pacotes do Ubuntu
- Certifique-se de selecionar a arquitetura correta (32 bits, 64 bits, etc.)
- Baixe pacotes de pacotes e dependências relacionados a ele na mesma pasta.
- Quando você tiver todos os pacotes necessários (e suas dependências), vá para a pasta que possui todos os pacotes e execute
sudo dpkg -i *.deb
. Isso instalará todos os pacotes nessa pasta. Se houver algum erro, leia o erro e siga as etapas mencionadas.
Para dar um exemplo, depois de ir ao ponto 1 mencionado acima, se você tivesse o Broadcom 14e4:43a0
, procuraria pelo bcmwl-kernel-source
pacote e depois de selecionar a versão correspondente do Ubuntu (no meu caso, 16.04 ou Xenial), chegaria à página a seguir:
http://packages.ubuntu.com/xenial/bcmwl-kernel-source
Nesta página, eu selecionaria a arquitetura correspondente (32 ou 64), mas também precisaria fazer o download das 3 dependências do pacote mencionadas nessa página, como visto na imagem a seguir:
Após o download de todos os pacotes e dependências, você pode continuar copiando todos os pacotes para uma única pasta e executando o dpkg
comando conforme mencionado na etapa 4 acima.
NOTA
Em alguns computadores, antes de executar os comandos, você precisará desativar as Opções de inicialização segura no BIOS. Isso se aplica a casos, por exemplo, em que o bcmwl-kernel-source já está instalado, mas o driver ainda não funciona. Você pode reinstalar dessa maneira ou desabilitar a Inicialização segura, acessando a configuração do BIOS:
sudo apt-get install --reinstall bcmwl-kernel-source
DEBUGGING
As informações a seguir são material adicional para ler sobre a solução de vários problemas relacionados ao gerenciamento sem fio e conflitos com outros dispositivos de rede. Saiba que em alguns casos você precisa ter uma versão atualizada do Kernel, pois cada nova versão do Kernel apresenta novos drivers de rede, aprimoramentos em relação aos drivers existentes ou soluciona bugs relacionados a eles.
Antes de ler os pontos mencionados abaixo, certifique-se de ter todos os repositórios ativados no seu sistema Ubuntu. Para verificar, execute no terminal software-properties-gtk
e verifique se todas as opções na guia Software Ubuntu estão ativadas.
Para configurar seus dispositivos sem fio através do terminal, eu recomendo Como conectar e desconectar manualmente uma rede no terminal?
Se sua conexão cair de vez em quando, alguns usuários sugerem que o IPv6 seja ignorado . Basta ir ao Network Manager (o ícone de rede no painel superior). Clique nele e selecione Editar configurações . Em seguida, vá para a conexão sem fio que você está usando, selecione-a. Agora vá para a última guia que menciona as configurações de IPv6 . No campo Método, selecione Ignorar .
Se o seu laptop não detectar sua placa de rede sem fio, alguns usuários mencionaram que o uso rfkill unblock all
resolverá o problema. Outros simplesmente desligaram e ligaram novamente o laptop nos seus laptops (interruptor físico disponível nesses laptops). Para mais informações sobre rfkill
por favor leia rf kill unblock all NÃO FUNCIONA!
Se você estiver recebendo erro b43-phy0: Erro fatal no DMA / aviso b43-phy0: PIO forçado, faça o seguinte:
sudo rmmod b43
sudo modprobe b43 pio=0 qos=0
Se funcionar, adicione-o aos arquivos RC para que ele seja executado toda vez que você inicializar. Você pode alterar o PIO para 1, se necessário.
Se você estiver tendo uma chave necessária não disponível ao instalar um módulo DKMS (como Nvidia, Broadcom ou outros), acesse a resposta do piloto aqui
Se sua placa sem fio vê / não vê o roteador e fica presa em um loop interminável de "Tentativa de conexão (tentativa 1/3)", a solução pode ser a configuração adequada do seu roteador ou dispositivo SSID sem fio.
Para todas as placas sem fio em geral, é muito importante levar em consideração os dispositivos de rede que você está usando (roteadores, comutadores, canais sem fio e bandas sem fio, etc.). Com essas informações, você poderá avaliar melhor qual seria a origem do problema quando chegar a um beco sem saída. Um exemplo seria o Lenovo S10-2, que usa o PCIID 14e4: 4315 rev 01 . Mesmo após a instalação do driver correto, o usuário terminava em um loop "tentando conectar". Ele veria o SSID sem fio, mas ao tentar se conectar a ele, entraria em um loop de reconexão.
A solução foi que esse dispositivo sem fio específico não suporta canais de 40 Mhz nem suporta 802.11N. Nesse caso, o roteador estava transmitindo com 40 Mhz forçado e apenas no WiFi-N. Quando o roteador foi definido no modo Automático e no canal 20/40 Mhz, a placa sem fio funcionou corretamente. Este é um cenário de caso que também se repete em outros casos, portanto, uma avaliação adequada do equipamento de rede ajudaria muito.
Para casos em que você se repete:
ERRO @ wl_cfg80211_get_station: Endereço incorreto do Mac ...
ao fazer uma dmesg
e sua conexão sem fio cai frequentemente (várias vezes por hora ou por dia), o problema aqui pode ser que você esteja dentro de um sinal sem fio usado como uma ponte sem fio (2 roteadores que compartilham o mesmo SSID e conexão). Isso pode acontecer com roteadores modernos que têm a capacidade de estender a conexão sem fio oferecendo o mesmo SSID. sua conexão sem fio pode cair porque você pode estar entre os roteadores e a intensidade do sinal entre os dois é quase a mesma.
Se sua conexão cair com muita frequência, significa que você está quase no meio dos dois dispositivos roteadores. Para diminuir ou eliminar a taxa de queda do seu dispositivo sem fio, tente se posicionar onde sua placa sem fio pode ver apenas um roteador ou pelo menos um deles ter uma força de sinal mais alta que o outro.
Existem também algumas técnicas para forçar o dispositivo sem fio a se conectar apenas a um roteador específico, configurando o BSSID como o endereço MAC do roteador ao qual você deseja se conectar. Isso forçará o seu dispositivo sem fio a se conectar SOMENTE a ele.
Problemas de inicialização segura
Em alguns cenários específicos, a instalação dos drivers, seja no modo offline através de vários pacotes DEB ou através do apt-get com acesso à Internet, não funcionará se o Secure Boot não estiver desativado.
Isso ocorre porque o acesso necessário é negado pelo Secure Boot, para que os drivers pareçam estar instalados corretamente quando, na verdade, não foram. Portanto, em casos MUITO específicos, você precisará desativar temporariamente a Inicialização segura para que os drivers funcionem.
Atualização de firmware do Linux
Em outros casos, procurar e instalar o firmware mais recente do Linux resolveria o problema. Resolver pequenos problemas que estavam acontecendo com um cartão de trabalho ou fazê-lo funcionar pela primeira vez.