Skip to content

Far configurare correttamente al boot la scheda di rete wireless Broadcom 4306 inclusa nei portatili ASUS L5000D con Debian e Ubuntu

Se state usando un portatile ASUS L5000D, sapete bene che il chipset della schede di rete senza fili 802.11g è l’odiatissimo Broadcom 4306, di cui non esistono specifiche pubbliche.

Il driver nativo bcm43xx, sebbene sia stato migliorato moltissimo per poter essere integrato nei kernel serie 2.6.17 (quando era sviluppato a solo non riusciva a riconoscere la nostra scheda, adesso ci riesce), sembra non funzionare benissimo con il WPA (in particolare, con wpa_supplicant: ma se si pensa che lo stramaledetto driver ASUS fornito con il PC nemmeno sa cosa sia…), mentre non ho testato la funzionalità WEP.

Dovremo quindi, almeno per un po’, continuare ad usare ndiswrapper e questo driver (attenzione: dovete avere un account su Ubuntu Forums per potervi accedere).

Non vi spiegherò come installare ndiswrapper (chiedete a Google piuttosto), ma vi spiegherò come porre rimedio a un problema lasciatoci in eredità da coloro che hanno assemblato il nostro portatile.

Vi sarete accorti che, anche in Windows, la scheda sembra “perdere” i parametri giusti di connessione dopo una serie di riavvii, o, peggio, quando si passa spesso da una rete ad un’altra. Il baco, signori, risiede nella scheda, e in Windows non ci si può far nulla, se non fare riavvii su riavvii e sperare che quello successivo sia quello buono.

In GNU/Linux (e presumibilmente anche su *BSD), invece, possiamo risolvere il problema molto velocemente. Infatti, noi abbiamo un controllo sul sottosistema NDIS (il protocollo di comunicazione utilizzato dai driver Windows) molto più esteso di quanto non sia quello disponibile a un utente Windows stesso. Signori, in pratica, è sufficiente fare

/sbin/iwpriv [device] ndis_reset

e poi riconfigurare la scheda per far funzionare tutto alla perfezione. :-d

Per integrare questi passaggi nella nostra distro Debian/Ubuntu ci serve soltanto:

  1. Un /etc/network/interfacessimile a questo (supponendo eth1:
    auto eth1
    iface eth1 inet dhcp
    wireless-essid "Il mio SSID"
    wireless-channel 11
    wpa-driver wext
    wpa-conf /etc/wpa_supplicant.conf
    pre-up /sbin/iwpriv eth1 ndis_reset
  2. Un /etc/rc.local (o un altro script di esecuzione locale) simile a questo:
    /sbin/iwpriv eth1 ndis_reset
    /sbin/ifdown eth1
    /sbin/ifup eth1

Sarete piacevolmente sorpresi, credo.

by-sa

Categories: Posts.

Tags: , , , , , , , , , , , , , , , , , ,

Comment Feed

No Responses (yet)



Some HTML is OK

or, reply to this post via trackback.

Note: This post is over 3 years old. You may want to check later in this blog to see if there is new information relevant to your comment.

This work by Emanuele Cipolla is licensed under a Creative Commons Attribution-ShareAlike 2.5 Italia.