#format wiki
#language it
<<BR>>
<<Indice(depth=3)>>
<<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=467849; rilasci="18.04 16.04 14.04";)>>

= Introduzione =

La seguente guida ha lo scopo di rendere funzionante la scheda wireless '''PCI Broadcom BCM 43xx''', sia attraverso il gestore driver e, in caso di problemi, attraverso metodi alternativi.

= Installazione tramite gestore driver =

I driver proprietari possono essere attivati dal [[Hardware/AbilitareDriverProprietari|gestore driver]]. È necessario avere già a disposizione una connessione Internet già funzionante.

Se l'attivazione dei driver attraverso gestore automatico dovesse risultare problematica, nei seguenti paragrafi viene mostrato come installare manualmente i driver '''proprietari''' (STA) e i driver '''Open-source''' (b43, ecc).

= Identificazione della scheda =

Le schede prodotte da Broadcom sono supportate da driver che variano a secondo del modello, è quindi necessario identificare correttamente la scheda presente nel proprio computer digitando in un [[AmministrazioneSistema/Terminale|terminale]] il seguente comando: 
{{{
lspci -vvnn | grep 14e4
}}}

Avendo applicato il filtro `14e4` al comando `lspci` la ricerca verrà limitata alle sole schede '''PCI Broadcom'''. Un tipico output del terminale potrebbe essere ad esempio questo:
{{{
03:00.0 Network controller [0280]: Broadcom Corporation BCM4322 802.11a/b/g/n Wireless LAN Controller [14e4:432b] (rev 01)
}}}

I dati che interessano sono:

 * Card/Model - '''BCM4322'''
 * PCI-ID - [14e4:'''432b]'''

Per verificare quali driver sono in uso e verificare il buon esito delle varie procedure d'installazione si può fare ricorso a questo comando:
{{{
lspci -vvnn | grep -A 9 Network
}}}
Che restituisce informazioni dettagliate della scheda di rete wifi e mostra i driver utilizzati dal sistema per gestirla.

<<Anchor(supportate)>>
= Schede supportate =

I driver sono in costante sviluppo e un dato id di chip può essere supportato da più driver:

 * '''wl''' (proprietari) per chip con id: BCM4311, BCM4312, BCM4313, BCM43142, BCM4321, BCM4322, BCM43224, BCM43225, BCM43227 e BCM43228.
Installare il driver come spiegato al paragrafo Installazione driver STA.

 * '''b43''' (open-source) per chip con id: BCM4306 (rev 03), BCM4309, BCM4311, BCM4312, BCM4318, BCM4322, BCM4331, BCM43224 e BCM43225.
 * '''b43legacy''' (open-source) per chip con id :BCM4301, BCM4306 (rev 02), e BCM4309.
Installare il driver come spiegato al paragrafo Installazione driver b43.

 * '''brcm80211''' (open-source) introdotto nel kernel Linux 2.6.37 questo driver, composto da "brcmsmac" (gestione software della scheda) e "brcmfmac" (gestione hardware della scheda).
 * '''brcmsmac''' (open-source) per chip con id : BCM4313, BCM43224 e BCM43225.
 * '''brcmfmac''' (open-source) per chip con id : BCM4329, BCM4330, BCM4334, BCM43235, BCM43236 e BCM43238.
 * '''rndis_wlan''' (open-source) per chip con id : BCM4320, driver introdotto in Linux 2.6.25.

Per conoscere quale scheda e versione della stessa è supportata dai relativi driver, consultare [[http://linuxwireless.sipsolutions.net/en/users/Drivers/b43/|questa pagina]].

{{{#!wiki important
Le scheda non supportate dai driver dovranno necessariamente far affidamento su [[Hardware/DispositiviSenzaFili/Ndiswrapper|Ndiswrapper]] per usare i driver closed source di Windows.
}}}

= Installazione driver proprietari STA con connessione Internet =

== Ubuntu 18.04, Ubuntu 16.04 e Ubuntu 14.04 ==

Aprire un [[AmministrazioneSistema/Terminale|terminale]] ed installare il pacchetto ''bcmwl-kernel-source'': {{{
sudo apt-get update
sudo apt-get --reinstall install bcmwl-kernel-source
}}}

Se viene visualizzato il messaggio: '''La compilazione del modulo per il kernel attualmente in esecuzione è stato ignorata poiché il sorgente del kernel per il kernel non sembra essere installato''' questo significa che manca l'appropriato pacchetto del linux-header.

Per testare il driver ed evitare un riavvio del computer, digitare il comando: {{{
sudo modprobe -r b43 ssb wl brcmfmac brcmsmac bcma
sudo modprobe wl}}}
Aspettare alcuni secondi affinché '''Networkmanager''' scansioni le reti wifi disponibili prima di tentare una connessione.
Il pacchetto ''bcmwl-kernel-source'' dovrebbe mettere in blacklist automaticamente i driver open source in modo che il driver '''STA''' sia l'unico in uso. 

= Installazione driver proprietari STA senza connessione Internet =

 0. [[#supportate|Verificare]] che la propria scheda sia supportata dai driver STA.
 0. Da un computer con accesso a Internet recarsi alla pagina http://packages.ubuntu.com dove potranno essere scaricati i pacchetti:
  * ''dkms''
  * ''patch''
  * ''fakeroot''
  * ''libfakeroot'' (presente dalla 14.04 in poi)
  * ''bcmwl-kernel-source''
 0. Riempire i campi di ricerca nel seguente modo:
  * '''Keyword''': nome del pacchetto.
  * '''Distribution''': nel menù a tendina selezionare la propria versione di Ubuntu.
 0. Fare quindi clic sul tasto '''Search'''.
 0. Durante la ricerca fare attenzione a selezionare il pacchetto appropriato per le architetture '''i386''' o '''amd64'''.
 0. Una volta effettuato il download [[AmministrazioneSistema/InstallareProgrammi/PacchettiDebian|installare]] i singoli pacchetti.

= Installare i driver open source b43/b43legacy con connessione Internet =

I kernel per Ubuntu 8.04.x ​​(Hardy Heron) e versioni successive forniscono i driver B43, tuttavia a causa delle restrizioni di diritto d'autore, non è presente il firmware proprietario, che è necessario per far funzionare la scheda. Le seguenti istruzioni spiegano come estrarre il firmware desiderato.

== Ubuntu 18.04 e Ubuntu 14.04 ==

 0. Aprire un [[AmministrazioneSistema/Terminale|terminale]] ed aggiornare la lista dei pacchetti digitando il comando:{{{
sudo apt-get update
}}}
 0. Installare il pacchetto appropriato in base alla versione dei driver.
  * Per '''b43''' installare il pacchetto [[apt://firmware-b43-installer|firmware-b43-installer]]
  * Per '''b43legacy''' installare il pacchetto [[apt://firmware-b43legacy-installer | firmware-b43legacy-installer]]
 0. In '''Ubuntu 14.04''' assicurarsi di aver rimosso il pacchetto ''bcmwl-kernel-source'' digitando:{{{
sudo apt-get purge bcmwl-kernel-source
}}}
 0. Riavviare il computer.

= Installare i driver open source b43/b43legacy senza connessione Internet =

[[#supportate|Verificare]] che la propria scheda sia supportata dal driver b43.

In mancanza di una connessione ad Internet

 0. Reperire il supporto di installazione di '''Ubuntu''', per fare ciò è possibile intraprendere più strade:
  * Direttamente dal proprio sistema operativo Ubuntu, andando alla cartella `pool/main/b/b43-fwcutter`, copiare il pacchetto ''b43-fwcutter'' nella cartella '''Home''' del proprio sistema ed installarlo digitando il seguente comando: {{{
sudo dpkg -i b43-fwcutter*}}}
  * Sfruttare la connessione tramite altro sistema e scaricare [[apt://b43-fwcutter|b43-fwcutter]] che si installerà automaticamente
  * Da un altro computer con connessione Internet e scaricare il pacchetto per la propria distribuzione e architettura hardware o tramite la [[https://packages.ubuntu.com/search?keywords=b43-fwcutter&searchon=names | seguente pagina]], copiare il pacchetto ''b43-fwcutter'' nella cartella '''Home''' del proprio sistema ed installarlo digitando il seguente comando: {{{
sudo dpkg -i b43-fwcutter*}}}

 0. Da un computer con accesso ad Internet scaricare il file del firmware richiesto:
  * [[http://downloads.openwrt.org/sources/wl_apsta-3.130.20.0.o | b43legacy]]
  * [[http://www.lwfinger.com/b43-firmware/broadcom-wl-6.30.163.46.tar.bz2| b43 per Ubuntu 18.04]]
  * [[http://www.lwfinger.com/b43-firmware/broadcom-wl-5.100.138.tar.bz2| b43 per Ubuntu 14.04]]
  * [[https://wireless.wiki.kernel.org/en/users/Drivers/b43/developers | Varie versioni]] dei diversi firmware, fonte adatta solo per utenti esperti
 0. Copiare i file scaricati nella propria '''Home''' e aprire un terminale e digitare i seguenti comandi per estrarre ed installare il firmware:
  * Per i '''b43legacy''' {{{
sudo b43-fwcutter -w /lib/firmware wl_apsta-3.130.20.0.o}}}
  * '''Ubuntu 18.04''' con driver '''b43''' e '''Ubuntu 14.04''' con driver '''b43''' 6.30.163.46 {{{
tar xfvj broadcom-wl-6.30.163.46.tar.bz2
sudo b43-fwcutter -w /lib/firmware broadcom-wl-6.30.163.46.wl_apsta.o}}}
  * '''Ubuntu 14.04''' con driver '''b43''' {{{
tar xfvj broadcom-wl-5.100.138.tar.bz2
sudo b43-fwcutter -w /lib/firmware broadcom-wl-5.100.138/linux/wl_apsta.o}}}
 0. Assicurarsi di aver rimosso il pacchetto ''bcmwl-kernel-source'' digitando:{{{
sudo apt-get purge bcmwl-kernel-source
}}}
 0. Riavviare il computer.

= Schede non supportate (utilizzare driver Windows) =

Se la propria scheda non è supportata dai driver '''STA''' o dai driver open source del kernel, è necessario l'utilizzo di Ndiswrapper che consente di utilizzare i driver closed source di Windows per attivare la scheda.

= MacBook =

{{{#!wiki note
Questo procedimento è stato testato su '''!MacBook Pro early 2014''' con scheda '''Broadcom BCM4360'''.
}}}

== Installazione con connessione Internet ==

Se si ha una connessione ad Internet (ethernet), digitare i seguenti comandi in un [[AmministrazioneSistema/Terminale|terminale]]:{{{
sudo apt-get update}}} {{{
sudo apt-get install bcmwl-kernel-source
}}}

== Installazione senza connessione Internet ==

 0. Da un computer con accesso a Internet recarsi alla pagina http://packages.ubuntu.com dove potranno essere scaricati i seguenti pacchetti:
  * ''libfakeroot''
  * ''fakeroot''
  * ''dkms''
  * ''bcmwl-kernel-source''

 0. Alla voce '''Search package directories''', riempire i campi di ricerca nel seguente modo per scaricare uno alla volta i pacchetti precedentemente indicati:
  * '''Keyword''': nome del pacchetto.
  * '''Distribution''': nel menù a tendina selezionare la propria versione di Ubuntu.
  * '''Section''': any.

 0. Fare quindi clic sul tasto '''Search'''.

 0. Durante la ricerca fare attenzione a selezionare il pacchetto appropriato per le architetture '''i386''' o '''amd64'''.

 0. [[AmministrazioneSistema/InstallareProgrammi/PacchettiDebian|Installare]] i pacchetti appena scaricati nell'ordine precedentemente elencato.
 
 0. Caricare il modulo '''wl''', digitando in un [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
sudo modprobe wl
}}}
 
 0. Aprire con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] e con un [[Ufficio/EditorDiTesto|editor di testo]] il file `/etc/modules`:{{{
sudo gedit /etc/modules
}}} ed incollare in fondo al file (dopo un invio) il seguente testo:{{{
wl
}}}

 0. Salvare e chiudere.

Adesso il dispositivo wifi dovrebbe funzionare correttamente.

= Problemi noti =
== Broadcom BCM4313 non funziona a 5GHz ==
Le schede con id 14e4:4727 (Dell Vostro 3555) con chip Broadcom BCM4313 non funzionano alla frequenza di 5 GHz ma a 2,4 GHz non presentano problemi ([[https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1010931 | bug 1010931]]).

La causa principale è che la scheda è a banda singola, quindi non potrebbe mai trasmettere a 5GHz. 

Per risolvere il problema su '''Ubuntu 14.04''' 

 0. Usare il driver '''brcmsmac''': {{{
sudo apt-get purge bcmwl-kernel-source
sudo apt-get install linux-firmware-nonfree }}} 
 0. Inserire nella blacklist i driver '''b43''' e '''wl''': {{{
echo "blacklist b43" | sudo tee -a /etc/modprobe.d/blacklist.conf
echo "blacklist wl" | sudo tee -a /etc/modprobe.d/blacklist.conf}}}
 0. Rimuovere i moduli dei driver sopra citati ed inserire quello di '''brcmsmac''': {{{
sudo modprobe -r b43 wl brcmsmac
sudo modprobe brcmsmac
echo "brcmsmac" | sudo tee -a /etc/modules}}}
 0. Riavviare il computer.

== Secure boot ==
Sui sistemi con [[https://msdn.microsoft.com/it-it/library/hh824987.aspx|secure boot]] attivo i driver proprietari non funzionano. Per risolvere il problema seguire i seguenti passaggi:
 0. [[AmministrazioneSistema/Uefi#Disattivazione_Secure_Boot|Disabilitare]] il secure boot.
 0. [[AmministrazioneSistema/InstallareProgrammi|Rimuovere]], se presente, il pacchetto [[apt://bcmwl-kernel-source|bcmwl-kernel-source]].
 0. [[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://bcmwl-kernel-source|bcmwl-kernel-source]].

= Ulteriori informazioni =

 * [[https://help.ubuntu.com/community/WifiDocs/Driver/bcm43xx|Documento originale]]
 * [[http://www.broadcom.com/support/802.11/linux_sta.php|Pagina dei driver STA per linux]]
 * [[http://wireless.kernel.org/en/users/Drivers/b43|I driver kernel b43 di wireless.kernel.org]]

----
CategoryHardware