venerdì 4 aprile 2008

Driver Wireless Atheros AR5006EG su Ubuntu

Come avrete potuto notare all'avvio di ubuntu, la scheda wireless viene rilevata dal sistema che, in automatico, ne abilità i driver proprietari per farla funzionare. Ma non funziona!

Per qualche strano motivo i driver proprietari Atheros ad oggi (04/04/2008) non supportano il chipset montato sulla nostra scheda wireless, l'AR5006EG.

Nel frattempo per farla funzionare useremo un escamotage, ndiswrapper.

NDISWrapper è un utilissimo programmino (e modulo del kernel di linux) che permette di utilizzare i driver per windows di una scheda di rete su linux. Fortunatamente con la nostra scheda funziona piuttosto bene.

ELIMINIAMO I VECCHI DRIVER

Poichè due driver installati ed attivi per lo stesso dispositivo non sono una scelta intelligente, rimuoviamo i driver che ubuntu ci ha installato automaticamente per far spazio ai nostri driver.

Per far questo andiamo su "Sistema -> Amministrazione -> Gestore driver con restrizioni" e togliamo lo spunto ai driver atheros.

Per essere sicuri che non vengano caricati per nessun motivo all'avvio, modifichiamo il file /etc/modprobe.d/blacklist con il comando:
sudo gedit /etc/modprobe.d/blacklist
Aggiungendo alla fine del file le righe:
blacklist ath_pci
blacklist ath_hal

Salviamo e riavviamo il sistema. Ora siamo pronti per l'installazione.

INSTALLIAMO NDISWRAPPER

Nei repository di ubuntu c'è già la versione impacchettata di ndiswrapper. L'installazione risulta quindi semplicissima: da un terminale diamo i comandi
sudo apt-get install ndiswrapper-common
sudo apt-get install ndiswrapper-utils-1.9
PROCURIAMOCI I DRIVER PER WINDOWS

Poichè il nostro ubuntu è la versione a 64bit, avremo bisogno dei driver per windows a 64 bit. Li possiamo scaricare da qui.

Estraiamo i driver in una cartella a nostra scelta (io li ho messi in /root/ar5006eg, notare che bisogna avere i privilegi di amministratore per accedere a root) e posizioniamoci li.

A questo punto diamo il comando
ndiswrapper -i net5211.inf
e verifichiamo che tutto sia andato a buon fine assicurandoci che il comando
ndiswrapper -l
ritorni come output
net5211 : driver installed
device (168C:001C) present (alternate driver: ath_pci)
CONFIGURAZIONE

A questo punto non ci resta che attivare i driver. Dobbiamo dare alcuni comandi per farlo ma dopo averli dati questi verranno caricati automaticamente all'avvio e la wireless funzionerà in modo trasparente.
sudo ndiswrapper -ma && sudo ndiswrapper -mi
echo "ndiswrapper" >> /etc/modules
Infine apriamo il file /etc/rc.local per caricare il MAC all'avvio di Ubuntu.
sudo gedit /etc/rc.local
Inseriamo questa riga prima della riga "exit 0" e salviamo:
/sbin/ifconfig wlan0 hw ether xx:xx:xx:xx:xx:xx
Dobbiamo sostituire xx:xx:xx:xx:xx:xx con il MAC della nostra scheda wireless, potete procurarvelo in windows oppure dalla pagina di configurazione del vostro access point (mentre siete connessi alla wireless con windows).

Bene siamo arrivati alla fine.
Non ci resta che riavviare il sistema un ultima volta e goderci la wireless nella nostra nm-applet!

1 commento:

Anonimo ha detto...

Io ho trovato un'altra soluzione che potrebbe essere intessante ed evita l'installazione di ndiswrapper :D

Cercando anche io per lo stesso problema (ho il tuo stesso modello XD) mi sono imbattuto nel seguente indirizzo:
http://snapshots.madwifi-project.org/madwifi-hal-0.10.5.6/
(spero che i link siano tollerati :) )

Sono varie snapshots del codice sorgente dell'hal madwifi

Non penso siano considerate revisioni "stable" tuttavia al momento ho installata una r3845 che uso tutti i giorni da quando è uscita e la scheda wireless funziona senza intoppi.
Inoltre avresti supporto a strumenti di analisi come aircrack e kismet :)