0. Introduzione e contesto
Questa risposta si basa su una vasta ricerca condotta da vari utenti di Ubuntu che hanno lavorato insieme in quasi tutti i problemi relativi a Broadcom. Un ringraziamento speciale a chili555 che ha aiutato nei forum Ubuntu e su questo sito con molte domande relative ai dispositivi wireless e ad altri che hanno contribuito con e-mail, chat, IRC e altro nel testare vari driver con alcune delle più popolari schede Broadcom Wireless (Grazie davvero a Chili555. Questo ragazzo conosce le sue cose).
In totale volevamo offrire una risposta che potesse essere facile da seguire e riguardasse la maggior parte delle schede / driver Broadcom. Dopo aver seguito questa guida, è NECESSARIO testare la connessione wireless per almeno 2 ore (in realtà le consiglio 8 ore) con un altro dispositivo in modalità Ad-Hoc, Infrastruttura o Entrambi. I problemi comuni che verranno risolti (a parte i driver non installati) sono:
- Timeout delle connessioni dopo alcuni minuti o ore
- Interrompe la ricerca di altri dispositivi (non vede altri dispositivi)
- Continua a chiedere la password anche nei casi in cui AP non ne ha
- Interrompe qualsiasi traffico di ricezione / trasmissione (è necessario riavviare per risolvere temporaneamente)
- Sistema di arresto anomalo con errori dmesg nel registro (collegamento 1 di seguito)
- Il sistema si blocca completamente (puoi solo premere il pulsante Riavvia / Accensione) (Link 1 qui sotto)
- Crea enormi rapporti sui log cercando di configurare o connettersi correttamente
- Errore durante l'installazione tramite driver aggiuntivi / hardware aggiuntivo (collegamento 3 di seguito)
- Si collega e si disconnette continuamente ogni X secondi
- Appare connesso su Network Manager ma non riceve Internet
- Cerca di collegarsi molte volte senza terminare correttamente la connessione
- Ci vuole troppo tempo per connettersi
- Dopo l'aggiornamento da una versione precedente (es. 12.04 a 12.10) smette di funzionare
- La scheda wireless non si accende, abilita o disabilita (Link 2 di seguito)
- Scheda wireless bloccata dall'hardware
- Altri problemi riscontrati in 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 - Fornisce un errore simile a "Spiacenti, l'installazione di questo driver non è riuscita."
Quindi, tenuto conto di ciò, ciò che segue è ciò che abbiamo ora semplificato in soli 3 passaggi:
1. Sapere quale scheda Broadcom Wireless hai
Ci sono dozzine di schede wireless Broadcom e altre sembrano apparire ogni giorno. La chiave per trovare il driver corretto per qualsiasi scheda di rete è ciò che è noto come PCI ID (PCI.ID). Per scoprire quale PCI.ID hai, procediamo ad aprire il terminale premendo CTRL+ ALT+ T(dovrebbe aprire una finestra con uno sfondo vuoto) e all'interno di questo terminale eseguiamo il seguente comando:
lspci -nn -d 14e4:
Otterrai qualcosa di simile al seguente se hai un adattatore wireless Broadcom (l'ID 14e4 usato nell'esempio sopra nella maggior parte dei casi è una scheda wireless Broadcom):
Broadcom Corporation BCM4306 802.11bgn Wireless Network Adapter [14e4:4320] (rev 03)
Il PCI.ID in questo esempio è 14e4: 4320 come visto all'interno delle parentesi [...]. In alcuni casi è necessaria anche la versione di revisione (se appare) per alcuni casi speciali. In questo caso, la versione di revisione è rev 03 come mostrato tra parentesi (...) alla fine. Quindi ciò di cui avrai bisogno dopo questa ricerca è:
[14e4:4320] (rev 03)
Con queste nuove informazioni è possibile consultare la tabella seguente e selezionare il metodo appropriato per installare il driver. Ad esempio, in questo caso, dato che hai 14e4: 4320 rev 03 , se scendiamo l'elenco a quello che mostra esattamente lo stesso PCI.ID vedrai che nelle colonne per Ubuntu 12.04, 13.10 o 14.04 mostra il firmware-b43-installer
driver del pacchetto. Ciò significa che dovrai installare questo particolare pacchetto poiché appare in tutte le colonne della versione di Ubuntu.
NOTA - Prima di procedere, se in precedenza è stato installato alcun driver, è stato inserito nella lista nera o decommentato qualsiasi file del driver o file di configurazione o sono state apportate modifiche al sistema per far funzionare i driver nei tentativi precedenti, sarà necessario annullarli per poter segui questa guida. Partiamo dal presupposto che lo stai facendo da zero e non abbiamo modificato alcun file di configurazione, modulo o driver nel sistema (tranne l'aggiornamento del sistema). Ciò include tutte le installazioni che utilizzano apt-get, aptitude, synaptic, dpkg, software center o compilazione manuale e installazione dei pacchetti. Il sistema deve ricominciare da capo affinché ciò funzioni ed evitare eventuali conflitti che potrebbero apparire se sono stati eseguiti lavori precedenti.
Ad esempio, se il bcmwl-kernel-source
pacchetto è stato precedentemente installato , sarà necessario rimuoverlo utilizzando il metodo di eliminazione:
sudo apt-get purge bcmwl-kernel-source
2. Preparazione del sistema
Se hai appena installato Ubuntu, dovrai creare un indice dei pacchetti disponibili prima di poter installare il tuo driver se non l'hai già fatto:
sudo apt update
Vorrei anche andare oltre per aggiornare l'elenco Ubuntu di PCI.IDs:
sudo update-pciids
Nel caso in cui l'ID di un particolare nuovo dispositivo Broadcom in uso sia appena apparso.
Ora utilizzando PCI.ID che hai trovato nei passaggi precedenti, cerchiamo quindi nell'elenco seguente per trovare il PCI.ID corrispondente e il metodo per installare il driver ad esso associato in modo semplice e corretto. Il terminale verrà utilizzato per evitare problemi relativi alla GUI. Questo vale per tutti i casi, ad eccezione di quanto indicato. La procedura di installazione viene eseguita solo tramite terminale e anche durante la connessione a Internet con una connessione ethernet cablata temporanea o modem USB o qualsiasi altro mezzo che possa fornire al tuo PC, per il momento, l'accesso a Internet. Dopo aver trovato nell'elenco sotto il pacchetto corretto, procederemo con l'installazione.
3. Installazione del pacchetto (online)
Supponendo che tu abbia usato PCI.ID 14e4: 4320 rev 03 come trovato nella tua ricerca sopra, e poi hai guardato la tabella qui sotto e abbiamo scoperto che il pacchetto corretto da installare è il firmware-b43-installer
, quindi procediamo semplicemente ad installare questo pacchetto nel terminale:
sudo apt install firmware-b43-installer
e quindi riavviare
sudo reboot
Il formato da installare è piuttosto semplice, è solo:
sudo apt install <PACKAGE_NAME>
Nell'esempio sopra, PACKAGE_NAME è firmware-b43-installer
.
BROADCOM WIRELESS TABLE (aggiornato il 18 agosto 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 speciale n. 1 - Usi bcma
e brcmsmac
combinazione di driver. Il firmware richiesto è installato per impostazione predefinita nel pacchetto linux-firmware
.
Caso speciale n. 2 - Per ASUS PCE-AC88 AC3100 i passaggi sono:
- Scarica questo file e dopo averlo estratto, inseriscilo in / lib / firmware / brcm
sudo cp brcmfmac4366c-pcie.bin /lib/firmware/brcm/brcmfmac4366c-pcie.bin
- Quindi
sudo nano /etc/rc.local
aggiungere modprobe brcmfmac e salvare
sudo reboot
In hardware come il Lenovo S10-2, se la scheda wireless si blocca nel tentativo di connettersi a un SSID (continua a provare a connettersi), l'alternativa per farlo funzionare sarebbe installare il bcmwl-kernel-source
pacchetto (rimuovere eventuali altri pacchetti installati ad esso correlati ). Leggi la sezione Debug di seguito per ulteriori informazioni su questo dispositivo wireless.
NOTA IMPORTANTE - Dopo settembre 2014, se segui questa risposta e hai ancora problemi con l'installazione del driver corretto, prova il firmware-b43-installer
pacchetto e avvisaci tramite commenti. Sono state apportate alcune modifiche e alcuni driver funzioneranno solo con questo pacchetto. Ricorda di avere un sistema pulito prima di installarlo:
sudo apt install firmware-b43-installer
In alcuni casi particolari, dopo aver installato il firmware-b43-installer
modulo è necessario rimuovere il modulo b43, abilitarlo nuovamente e procedere anche allo sblocco con rfkill:
sudo modprobe -r b43
sudo modprobe b43
sudo rfkill unblock all
Se si dispone di una scheda Broadcom con un diverso pci.id, fare una nuova domanda. Una volta risolta, la soluzione verrà aggiunta a questo howto.
4. Installazione del pacchetto (offline)
4.1 Installazione firmware-b43-installer
Per l'installazione firmware-b43-installer
offline vedi questa risposta .
4.2 Installazione bcmwl-kernel-source
Per i casi in cui è necessario installare bcmwl-kernel-source
ma non si è in linea, ecco una risposta eccellente a riguardo. Ma sostanzialmente segui questi passaggi:
- Cerca il pacchetto nei repository di pacchetti Ubuntu
- Assicurati di selezionare l'architettura corretta (32-Bit, 64-Bit, ecc.)
- Scarica i pacchetti di pacchetti e dipendenze ad esso correlati nella stessa cartella.
- Quando hai tutti i pacchetti necessari (e le loro dipendenze), vai alla cartella che ha tutti i pacchetti ed esegui
sudo dpkg -i *.deb
. Ciò installerà tutti i pacchetti in quella cartella. Se genera errori, leggi l'errore e segui i passaggi che menziona.
Per fare un esempio, dopo essere andato al punto 1 sopra menzionato, se avessi il Broadcom 14e4:43a0
, avresti cercato il bcmwl-kernel-source
pacchetto e dopo aver selezionato la versione Ubuntu corrispondente (nel mio caso 16.04 o Xenial) sarei atterrato sulla seguente pagina:
http://packages.ubuntu.com/xenial/bcmwl-kernel-source
In questa pagina selezionerei l'architettura corrispondente (32 o 64) ma avrei anche bisogno di scaricare le 3 dipendenze del pacchetto menzionate su quella pagina come mostrato nella seguente immagine:
Dopo aver scaricato tutti i pacchetti e le dipendenze, è possibile continuare a copiare tutti i pacchetti in una singola cartella ed eseguire il dpkg
comando come indicato al passaggio 4 sopra.
NOTA
In alcuni computer, prima di eseguire i comandi, è necessario disattivare le Opzioni di avvio sicuro nel BIOS. Questo vale per i casi, ad esempio, in cui bcmwl-kernel-source è già installato ma il driver non funziona ancora. Puoi fare una reinstallazione in questo modo o disabilitare Secure Boot andando al tuo BIOS Setup:
sudo apt-get install --reinstall bcmwl-kernel-source
DEBUGGING
Le seguenti informazioni sono materiale aggiuntivo da leggere sulla risoluzione di vari problemi relativi alla gestione wireless e ai conflitti con altri dispositivi di rete. Sappi che in alcuni casi è necessario disporre di una versione aggiornata del kernel, poiché ogni nuova versione del kernel introduce nuovi driver di rete, miglioramenti rispetto ai driver esistenti o risolve i bug che li riguardano.
Prima di leggere i punti menzionati di seguito, assicurati di aver abilitato tutti i repository sul tuo sistema Ubuntu. Per verificare, esegui sul terminale software-properties-gtk
e assicurati che tutte le opzioni nella scheda Software Ubuntu siano abilitate.
Per configurare i dispositivi wireless tramite il terminale, consiglio Come connettersi e disconnettersi manualmente a una rete nel terminale?
Se la connessione si interrompe di tanto in tanto alcuni utenti hanno suggerito di impostare IPv6 su Ignora . Vai su Network Manager (L'icona di rete nel pannello superiore). Fare clic su di esso, quindi selezionare Modifica impostazioni . Quindi vai alla connessione wireless che stai utilizzando, selezionala. Ora vai all'ultima scheda lì che menziona le impostazioni IPv6 . Nel campo Metodo selezionare Ignora .
Se il tuo laptop non rileva la tua scheda wireless, alcuni utenti hanno affermato che l'utilizzo rfkill unblock all
risolverà il problema. Altri semplicemente hanno spento e poi riacceso l'interruttore WiFi sui loro laptop (interruttore fisico disponibile su questo laptop). Per maggiori informazioni su rfkill
leggi rf kill sblocca tutto NON FUNZIONA!
Se ricevi ERRORE b43-phy0: errore irreversibile DMA / avviso b43-phy0: PIO forzato procedi come segue:
sudo rmmod b43
sudo modprobe b43 pio=0 qos=0
Se funziona, aggiungilo ai tuoi file RC in modo che venga eseguito ad ogni avvio. È possibile modificare PIO su 1 se necessario.
Se hai una chiave richiesta non disponibile durante l'installazione di un modulo DKMS (come Nvidia, Broadcom o altri) puoi andare alla risposta del pilota qui
Se la tua scheda wireless vede / non vede il router e si blocca in un ciclo infinito "Prova di connessione (prova 1/3)", la soluzione potrebbe essere la configurazione corretta del router o del dispositivo SSID wireless.
Per tutte le schede wireless in generale, è molto importante prendere in considerazione anche i dispositivi di rete che si stanno utilizzando (router, switch, canali wireless e bande wireless, ecc.). Con queste informazioni sarai in grado di valutare meglio quale potrebbe essere la fonte del problema quando arrivi in un vicolo cieco. Un esempio potrebbe essere il Lenovo S10-2 che utilizza il PCIe 14e4: 4315 rev 01 . Anche dopo aver installato il driver corretto, l'utente sarebbe finito in un ciclo "tentando di connettersi". Vedrebbe l'SSID wireless ma quando provava a connettersi ad esso, entrava in un ciclo di riconnessione.
La soluzione era che questo particolare dispositivo wireless non supportava i canali a 40 Mhz né supporta lo standard 802.11N. Il router in quel caso stava effettivamente trasmettendo con un 40 Mhz forzato e solo su WiFi-N. Quando il router era impostato sulla modalità Auto e sul canale 20/40 Mhz, la scheda wireless funzionava correttamente. Questo è uno scenario di caso che si ripete anche in altri casi, quindi una corretta valutazione delle apparecchiature di rete sarebbe di grande aiuto.
Per i casi in cui vieni ripetuto:
ERRORE @ wl_cfg80211_get_station: indirizzo Mac errato ...
quando si esegue una dmesg
e la connessione wireless si interrompe spesso (più volte all'ora o al giorno), il problema qui potrebbe essere che si è all'interno di un segnale wireless utilizzato come Wireless Bridge (2 router che condividono lo stesso SSID e la stessa connessione). Questo può accadere con i router moderni che hanno la possibilità di estendere la connessione wireless offrendo lo stesso SSID. la tua connessione wireless potrebbe cadere perché potresti trovarti tra entrambi i router e l'intensità del segnale tra entrambi è quasi la stessa.
Se la connessione si interrompe molto spesso, significa che sei quasi nel mezzo di entrambi i dispositivi router. Per ridurre o eliminare la velocità di caduta del tuo dispositivo wireless, prova a posizionarti dove la tua scheda wireless può vedere solo un router o almeno uno dei router ha una potenza del segnale maggiore rispetto all'altro.
Esistono anche alcune tecniche per forzare il dispositivo wireless a connettersi solo a un router specifico impostando BSSID sull'indirizzo MAC del router a cui si desidera connettersi. Ciò costringerà il tuo dispositivo wireless a connettersi SOLO ad esso.
Problemi di avvio sicuro
In alcuni scenari specifici, l'installazione dei driver, sia in modalità offline attraverso vari pacchetti DEB o tramite apt-get con accesso a Internet, non funzionerà se l'avvio protetto non è disabilitato.
Questo perché l'accesso necessario è negato da Secure Boot in modo che i driver sembrino installati correttamente quando in realtà no. Quindi per casi MOLTO specifici, dovrai disabilitare temporaneamente l'avvio sicuro affinché i driver funzionino.
Aggiornamento firmware Linux
In altri casi, la ricerca e l'installazione dell'ultimo firmware Linux risolverebbe il problema. O risolvendo piccoli problemi che si stavano verificando con una carta funzionante o facendo funzionare la carta per la prima volta.