//Configurare una scheda ibrida Wi-fi/Bluetooth Broadcom con Ubuntu
Scheda ibrida Wi-fi/Bluetooth

Configurare una scheda ibrida Wi-fi/Bluetooth Broadcom con Ubuntu

2 votes
Share on FacebookShare on Google+Tweet about this on TwitterEmail this to someonePrint this page

This post has already been read 449 times!

Finalmente mi è capitato un caso strano: una collega mi ha portato un portatile economico HP che ha le seguenti caratteristiche:

  • Processore Intel Celeron
  • SSD da 32 GB
  • Scheda ibrida Wi-fi/Bluetooth Broadcom
  • Niente lettore CD/ DVD
  • Niente scheda di rete Ethernet

Voleva installare Ubuntu 16.04. Per il lettore CD /DVD ho risolto con un lettore DVD esterno, risparmiando una chiavetta e non duplicando un supporto che già avevo a disposizione
.Una volta portata a termine l’installazione mi sono reso conto che il PC era fuori rete.

Passo 1: Capire cosa non va

Direi che è fondamentale noi Geek non ci arrendiamo mai

Passo 1A: Che device ho?

Il modo migliore per scoprire il device montato sulla vostra macchina è utilizzare il comando lsusb vediamo l’output completo:

Bus 002 Device 003: ID 0781:5581 SanDisk Corp. Ultra
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 0a5c:216c Broadcom Corp. BCM43142A0 Bluetooth Device
Bus 001 Device 003: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 002: ID 04f2:b45e Chicony Electronics Co., Ltd 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Come potete vedere sembra non esserci traccia della scheda Wi-fi, che su Windows funziona,  quindi ho iniziato a cercare in rete, facendo quindi la scoperta sconvolgente: esistono schede ibride Wi-fi/Bluetooth e ovviamene montato sulla macchina

PASSO 1b Cosa manca?

In rete scopro che è supportata quindi vedo di capire cosa manca. E vai di comando dmesg. Tale comando non fa altro che mostrare tutti i messaggi di kernel e non da quando la macchina è stata accesa ad ora. L’ouput è chilometrico vediamo solo la porzione che ci serve:

[   12.373406] Bluetooth: hci0: BCM: chip id 70
[   12.389429] Bluetooth: hci0: BCM43142A
[   12.389435] Bluetooth: hci0: BCM (001.001.011) build 0000
[   12.409715] bluetooth hci0: Direct firmware load for brcm/BCM.hcd failed with error -2
[   12.409722] Bluetooth: hci0: BCM: Patch brcm/BCM.hcd not found

Qui scopriamo che manca il firmware proprietariodella scheda e, dal sito corrispondente, che senza il wi-fi non funziona.

Passo 2 Il firmware

Non avendo nessuna traccia di connessione dobbiamo affidarci a un secondo PC che ci aiuti a scaricare.
Andiamo al sito https://github.com/winterheart/broadcom-bt-firmware e cloniamo il repository su file zip come da figura

Scheda ibrida Wi-fi/BluetoothScompattiamo l’archivio su una chiavetta e copiamo la cartella brcm in /lib/firmware.
Nei casi normali dovrebbe essere finita qui ma, differentemente dai tutorial che ho letto in rete, a noi viene richiesto un generico file BCM.hcd. Il nostro device ID è 0a5c:216c quindi scorrendo la pagina dei device supportati vediamo che il nostro firmware abita nel file BCM43142A0-0a5c-216c.hcd quindi facciamo un ottimo link simbolico:

sudo ln -s /lib/firmware/bcrm/BCM43142A0-0a5c-216c.hcd /lib/firmware/bcrm/BCM.hcd

Possiamo ora far ripartire il modulo btusb:

sudo modprobe -r btusb
sudo modprobe btusb

Il firmware adesso è a posto infatti rilanciando dmesg vediamo nelle ultime righe:

[   12.926160] Bluetooth: hci0: BCM: chip id 70
[   12.942182] Bluetooth: hci0: BCM43142A
[   12.942187] Bluetooth: hci0: BCM (001.001.011) build 0000
[   13.885568] Bluetooth: hci0: BCM (001.001.011) build 0328
[   13.901584] Bluetooth: hci0: BCM43142A0 Generic USB Class 2 NonUHE @ 20 MHz

Passo 3 Drivers della scheda Wi-Fi

Questa parte è più facile e non richiede un altro PC.
Inseriamo il supporto di installazione (DVD o USB che sia) navigando nelle cartelle del dispositivo troviamo le cartella /pool/main/d/dkms e pool/restricted/b/bcmwl. In entrambe le cartelle (prima dkrms) lanciamo:

sudo dpkg -i *.deb

Abbiamo appena installato il modulo wl, driver della nostra scheda. Quindi carichiamolo:

sudo modprobe wl

E luce fu, anzi e Wi-Fi fu.