immagine decorativa

Usare schede wireless Broadcom con Fedora Core 6

Le schede wireless sono tutt'ora uno dei maggiori crucci per gli utenti di computer GNU/Linux, soprattutto a causa della scarsa collaborazione dei produttori hardware (Broadcom in testa, e qui lo dico con astio personale). Inoltre, tutte le volte che esce una nuova distribuzione o un suo aggiornamento, i problemi da affrontare cambiano, e le soluzioni sono tutte da riscoprire.

In questo breve tutorial, cerco di mostrare il più chiaramente possibile come far funzionare con sufficiente affidabilità un dispositivo wireless Broadcom BCM4318 (AirForce One 54g) sulla nuovissima Fedora Core 6.

Tutti i link necessari li trovate in fondo alla pagina, qui »

:!: Aggiornamento – Un aggiornamento della guida per Ubuntu 8.04 LTS «Hardy Heron» è disponibile qui.

Seguendo questa guida stai per mettere mano a file importanti per il funzionamento del sistema. Assicurati di fare le cose con ordine, dedicando un tempo sufficiente alle modifiche, per non dover fare le cose di fretta. In ogni caso, il sottoscritto non si assume nessuna responsabilità per eventuali danni di qualunque natura causati dall'applicazione delle istruzioni che seguono.

Installazione dei pacchetti

Per far funzionare il tutto, utilizzeremo ndiswrapper, un software che permette di utilizzare i driver per windows dei dispositivi. Per installarlo dovremmo aggiungere a Fedora una nuova fonte per il download del software, nella fattispecie il repository Livna.

Apriamo quindi una shell (konsole in kde o gnome-terminal in gnome, se volete rimanere in ambiente grafico), e diventiamo superutenti lanciando il comando su ed inserendo la password. Dopo aver inserito la password di root, aggiungiamo il repository Livna con il seguente comando:

# rpm -ivh http://rpm.livna.org/livna-release-6.rpm

Una volta aggiunta la nuova fonte, sempre da shell installiamo ndiswrapper con:

# yum install ndiswrapper

Insieme ad ndiswrapper dovrebbe venir installato anche il relativo modulo del kernel, distribuito in un pacchetto chiamato kmod-ndiswrapper.

Disabilitare i driver bcm43xx

Nelle ultime versioni del kernel Linux, e quindi anche in Fedora Core 6, sono presenti i driver opensource per i dispositivi wireless Broadcom. Questi driver, tuttavia, sono piuttosto instabili, e non sono quindi una scelta adatta ad un utilizzo affidabile della rete wireless. È assolutamente necessario disabilitare tali driver, impedendone l'avvio.

Sempre come utente di root, modificate con l'editor di testo a voi preferito (vim, kwrite, gedit…) il file /etc/modprobe.d/blacklist, ed aggiungete in fondo la seguente riga:

blacklist bcm43xx

questo impedirà il caricamento del modulo del kernel dei driver opensource al prossimo riavvio, per il momento disattiviamo anche i moduli già caricati. Lanciate quindi, sempre da root, il comando

# /sbin/modprobe -r bcm43xx

La disattivazione di questi driver impedirà che ndiswrapper fallisca con il seguente messaggio in dmseg:

bcm43xx: Error: Microcode "bcm43xx_microcode5.fw" not available or load failed.

Configurare ndiswrapper

Ndiswrapper ha qualche piccolo problema con Fedora. In particolare, poiché Fedora non inserisce nel path degli eseguibili la cartella /sbin, ndiswrapper in alcuni casi non riesce ad eseguire il comando modprobe. Ci sono due soluzioni possibili: la prima è quella di inserire /sbin nel path, l'altra è quella di apportare due piccolissime correzioni a ndiswrapper. Vediamo la seconda.

Con il nostro editor di testi preferito, sempre in modalità superutente, apriamo il file /usr/sbin/ndiswrapper. Qui correggeremo tutte le chiamate di modprobe aggiungendo il path completo a tale programma. Dovrebbero esserci solo due correzioni da effettuare, una alla riga 685, l'altra alla riga 826 (in versioni differenti di ndiswrapper queste righe potrebbero cambiare!). In entrambi i casi, dovreste avere una dicitura simile alla seguente:

open(MODPROBE, "modprobe -c|") ecc...

che andrà corretta così

open(MODPROBE, "/sbin/modprobe -c|") ecc...

Ora è il momento di caricare i driver windows in ndiswrapper. Sempre come utente root, lanceremo il comando

# /usr/sbin/ndiswrapper -i <percorso dei driver windows>/bcmwl5.inf

Non ci dovrebbero essere messaggi di errore. Eseguendo /usr/sbin/ndiswrapper -l dovremmo ottenere qualcosa analogo al seguente messaggio:

installed drivers:
bcmwl5          driver installed, hardware (14E4:4318) present (alternate driver: bcm43xx)

Se tutto è andato bene siamo a buon punto. Eseguendo /usr/sbin/ndiswrapper -m scriviamo la configurazione di ndiswrapper.

Avvio di ndiswrapper

Con il comando (sempre da root) /sbin/modprobe ndiswrapper, si carica il modulo del kernel per far funzionare la wireless. Controllate se ci sono messaggi di errore (speriamo di no!) con il comando dmesg. Configurate la connessione al vostro access point con il programma system-config-network di Fedora, che potete trovare anche in Gnome nel menu System » Amministrazione » Rete. L'interfaccia della scheda wireless doverebbe essere visualizzata, e dovrebbe chiamarsi eth1 (ma questo potrebbe cambiare in base al numero di interfacce di rete che si trovano sulla vostra macchina).

Non ci resta che fare in modo di avviare ndiswrapper automaticamente durante l'avvio del computer. Per fare ciò, aprite con il vostro editor di testi il file /etc/init.d/network, ed aggiungete in cima al file

modprobe ndiswrapper

Conclusioni

Come sempre potete monitorare il funzionamento del vostro apparato con i Wireless Tools, lanciando il comando /sbin/iwconfig. Utile torna anche la piccola applet Monitor di rete per il pannello di Gnome, che mostra anche la qualità del segnale wireless captato. Basta che impostiate come interfaccia il nome che trovate con iwconfig.

Se hai trovato errori, vuoi suggerire miglioramenti o cose del genere, scrivimi!

Links utili

Entra