|
img http://img75.imageshack.us/ Questa guida è rivolta agli infelici possessori di schede WiFi Broadcom AirForce One 43xx. Tali schede WiFi hanno una caratteristica buona e una cattiva. Quella buona: il nome. Quella cattiva: la gestione sotto Linux. Coloro i quali dicono "Ma che dici? Io ho una Broadcom e non ho avuto mai nessun problema!" non sanno assolutamente che cosa stanno dicendo e quasi sicuramente non hanno mai fatto funzionare come si deve la suddetta scheda. Ultimamente sotto Ubuntu Gutsy 7.10 32 bit la gestione della scheda è notevolmente migliorata, nel senso che si blocca più di rado. Di seguito vi facciamo vedere come configurare al meglio la vostra scheda e come metterla in monitor mode (che purtroppo per voi sono cose che non vanno a braccetto).
Dati storici. Le Broadcom AirForce One 43xx sono state montate sugli iBook e hanno dimostrato ampiamente quanto fanno cagare. Oggigiorno i produttori di portatili hanno avuto la bella pensata di montarle un po' ovunque estendendo a macchia d'olio questa piaga e rendendo frustrante l'esperienza wifi su Linux. Quelli della Broadcom, dal canto loro, non rilasciano driver per Linux e quando è stato chiesto loro il motivo di questa decisione, hanno risposto qualcosa del tipo "Linux? No, grazie: non ci interessano le sciarpe. Qui produciamo schede WiFi." Questo è quanto.
Test. La distribuzione su cui sono state testate le seguenti operazioni, senza offendere nessuno, è Ubuntu 7.10 Gutsy Gibbon a 32 bit ma tutto ciò è valido per tutte le distribuzioni precedenti di Ubuntu, nonchè per tutte le Debian-like (voglio sperare). Tutti i tentativi effettuati sulle distribuzioni a 64bit sono stati infruttuosi e disperati, con blocchi di sistema random, in cui si sono visti Santi diventare serial killer dalla disperazione. Vi sconsigliamo quindi di tentare una qualsiasi configurazione delle suddette schede su distro a 64bit.
Driver. Le Broadcom AirForce One 43xx funzionano benissimo su Windows perchè sono corredate di driver specifici e funzionanti mentre su Linux ce la dobbiamo prendere lievemente in saccoccia perchè non esistono driver "ottimi" ma driver approssimativi. A dimostrazione che non mi stò inventando niente, identificate la vostra scheda con:
lspci | grep Broadcom l'output sarà molto simile a:
Bus 007 Device 003: ID 03f2:2a08 Broadcom Blablabla da qui sarà possibile risalire al tipo di chipset utilizzato (es. 4318) e diamo un'occhiata a questo link per vedere in quali problemi può incorrere una scheda Broadcom nel momento in cui installiamo i driver nativi. Es. per i chip 4318 ci possono essere problemi su un'alimentazione non corretta. In giro per internet corre la voce che i driver nativi 43xx siano supportati già dal kernel 2.6.17rc2. Se abbiamo questa versione del kernel, o una più nuova, non dovremmo far altro che attivare questi benedetti driver avendo una connessione ad internet, un terminale e un file che dipenderà dalla procedura che si sceglie. Esistono infatti due metodi per far funzionare queste schede: usando bcm43xx-fwcutter oppure usando ndiswrapper. Sappiate fin da subito che non sarà possibile fare cose come il cambio di mac o mettere la vostra scheda in monitor mode se userete ndiswrapper, o meglio: personalmente non ho trovato un modo per cambiarlo. Con i bcm43xx invece il cambio del mac e il monitor mode sono praticabili. Prima di proseguire lanciamo i soliti comandi: sudo apt-get update sudo apt-get upgrade per aggiornare le liste software nei repository e per controllare se ci sono aggiornamenti vari.
BCM43xx Nativi. Identifichiamo la nostra scheda con:
lspci | grep Broadcom e procuriamoci il file wl_apsta.o che si trova sul cd dei driver per Windows della scheda WiFi (giustamente!). In alternativa potete scaricarlo da internet, visto che si trova ovunque. Da terminale digitiamo: sudo apt-get install bcm43xx-fwcutter per installare l'estrattore del firmware. Questo software si installerà e di default cercherà di scaricare il wl_apsta.o da un link non valido. Dopo aver testato quanto sia valido questo procedimento, fregatevene e annullate il processo di installazione, tanto bcm43xx-fwcutter si sarà correttamente installato prima di andarsene su internet. Dopo di ciò recuperiamo questo benedetto wl_apsta.o, sistemiamolo sul desktop e digitiamo: sudo bcm43xx-fwcutter -w /lib/firmware ~/Desktop/wl_apsta.o ed estrarremo il firmware (a seconda del S.O. che avete, dovrete modificare Desktop con Scrivani...). Fatto questo avremo installato il firmware necessario a far funzionare tutto l'ambaradan. Non ci resta che digitare: sudo modprobe bcm43xx sudo depmod -a e riavviare il gestore delle reti:
sudo /etc/init.d/networking restart Per completare eliminiamo il file wl_apsta.o dal Desktop: sudo rm ~/Desktop/wl_apsta.o e lanciamo il comando:
iwconfig Dovremmo vedere i dettagli sulla nostra scheda. Fine della storia. Ndiswrapper. Se la prima procedura non funziona correttamente (es. la scheda dopo 2 o 3 tentativi di connessione si spegne definitivamente; la scheda non si alimenta correttamente, etc.) occorre tentare con ndiswrapper. Ndiswrapper è un software gratuito che serve ad intermediare fra sistema operativo e driver della periferica considerato. Viene solitamente adoperato per far funzionare le schede wifi ed in particolar modo queste schede. ****************************************************************************************************** ATTENZIONE: questo sistema non è valido se abbiamo una versione del kernel inferiore o uguale alla 2.6.17-10-generic. Per assicurarcene: uname -r ****************************************************************************************************** OK: si parte. Eliminiamo i driver bcm43xx (se li avete installati e anche se non li avete installati): sudo apt-get remove --purge bcm43xx-fwcutter sudo rmmod bcm43xx sudo rmmod ndiswrapper Editate il file dei blacklist per non caricare i moduli bcm43xx all'avvio:
sudo gedit /etc/modprobe.d/blacklist e aggiungeteci in coda la stringa:
blacklist bcm43xx Identifichiamo la scheda con:
lspci | grep Broadcom l'output sarà molto simile a:
Bus 007 Device 003: ID 03f2:2a08 Broadcom Blablabla A questo punto siamo pronti ad installare ndiswrapper e compagnia bella: sudo apt-get install linux-headers-$(uname -r) build-essential ndiswrapper-common ndiswrapper-utils-1.9 copiamo il file bcmwl5.inf sul Desktop (che abbiamo prontamente recuperato dal cd dei driver di Windows o da internet) e lanciamo: sudo ndiswrapper -i ~/Desktop/bcmwl5.inf verifichiamo che i driver sono stati installati correttamente: ndiswrapper -l l'output dovrebbe essere molto simile a: Installed ndis drivers: {nome_del_driver} driver present, hardware present e assicuriamoci che sia coerente con le info che abbiamo ottenuto prima (Bus 007 Device 003: ID 03f2:2a08 Broadcom BCM43xx Blablabla). Installiamo ndiswrapper come modulo in modprobe: sudo ndiswrapper -m sudo ndiswrapper -ma sudo ndiswrapper -mi e carichiamo il modulo ndiswrapper nel sistema:
sudo modprobe ndiswrapper sudo depmod -a Carichiamo il modulo all'avvio editando il file dei moduli: sudo gedit /etc/modules e aggiungendo la stringa:
ndiswrapper Riavviamo il gestore del networking:
sudo /etc/init.d/networking restart eliminiamo il file bcmwl5.inf sul Desktop:
sudo rm ~/Desktop/bcmwl5.inf e lanciamo il comando:
iwconfig Dovremmo vedere i dettagli sulla nostra scheda.
****************************************************************************************************** ATTENZIONE: Se la procedura non dovesse funzionare (ossia se non vi installa i driver) proviamo con la procedura per Edgy/Dapper: sudo ndiswrapper -a 03f2:2a08 ~/Desktop/bcmwl5.inf dove il codice 03f2:2a08 lo prendiamo dall'output del comando: lspci | grep Broadcom Successivamente diamo:
sudo rmmod bcm43xx sudo rmmod ndiswrapper sudo modprobe ndiswrapper ****************************************************************************************************** Fine della storia. Network Manager. E' ora di eliminare quella ciofeca di Network manager che avete e di installare un Network Manager come si deve. Occorre disinstallare il vecchio manager con: sudo apt-get remove --purge gnome-network-manager e installare la versione 1.3.1 di Wicd. La dovete scaricare a manina da qui. Scegliamo quindi il file wicd_1.3.1-all.deb, scarichiamolo e posizioniamolo sul Desktop. Installiamolo con: sudo dpkg -i ~/Desktop/wicd_1.3.1-all.deb apriamo Sistema -> Preferenze -> Sessioni e inseriamo una nuova voce da caricare all'avvio del pc con titolo Wicd e come percorso /opt/wicd/tray.py. Da terminale digitiamo:
/opt/wicd/tray.py facendo attenzione a non aggiungere il comando sudo e dovremmo vedere sul pannello dell'orologio l'iconcina di wicd. Cliccandoci sopra una sola volta si aprirà il pannello e vedremo tutte le reti WiFi rilevabili. WPA 1/2. Per accedere a reti wifi crittografate con WPA 1/2 è sufficiente andare nelle opzioni di Wicd e scegliere la voce WEXT nell'elenco dei driver da usare. In pratica wext è il driver usato da WPA_supplicant per accedere a reti protette da WPA1/2, visto che i bcm43xx e ndiswrapper, siccome sono dei pezzenti, non forniscono supporto per tale protezione. E' sufficiente scegliere la voce WEXT e basta! Non dovete editare nessun file di testo, niente di niente. Giacchè che ci siete abilitate anche la voce che mostra le interfacce di rete cablata. Se questa guida vi è piaciuta o vi ha fatto schifo non venitemelo a dire perchè la vostra opinione non interessa ad anima viva.
|