Table of Contents
WiFi con chip Atheros AR5413
ATTENZIONE dal 12 Marzo 2009 i pacchetti madwifi
e madwifi-tools
sono stati tolti dai repository di Squeeze e Sid, in quanto contenenti parte di codice non strettamente aderente alle policies Debian e a causa della presenza di bug irrisolti, oltre che del probabile abbandono del progetto da parte del team di sviluppatori. I due pacchetti sono comunque tuttora presenti nei repository di Etch e di Lenny. Vedi http://guide.debianizzati.org/index.php/Madwifi.
Con questo tipo di scheda WiFi è possibile far funzionare l'host come Access Point (modo Master) invece che come client (nei due modi Managed oppure Ad-Hoc).
Anzitutto si deve compilare il modulo kernel a partire dai sorgenti (si tratta di un pacchetto non-free perché contiene alcuni file in formato solo binario che non è permesso modificare):
apt-get install madwifi-source apt-get install linux-headers-2.6.25-2-486 cd /usr/src tar jxf madwifi.tar.bz2 ln -s linux-headers-2.6.25-2-486 linux cd linux make-kpkg clean make-kpkg --append-to-version "-2-486" --added-modules madwifi modules cd .. dpkg -i madwifi-modules-2.6.25-2-486_*.deb
I moduli ath_* riconoscono l'hardware e creano due interfacce: wifi0 e ath0, visibili con ifconfig -a
. L'interfaccia wifi0 è l'interfaccia fisica da manipolare con wlanconfig
. L'interfaccia ath0 è invece un'interfaccia logica da configurare con iwconfig
e ifconfig
, sulla stessa interfaccia fisica si possono avere fino a quattro configurazioni logiche, che ovviamente condividono il canale e la banda disponibile.
Attenzione: se la macchina è stata avviata in precedenza con solo i moduli standard del kernel, al posto di ath0 viene assegnato il nome wlan0. Qusto nome viene mantenuto da udev anche se al riavvio successivo vengono caricati i moduli madwifi. Per ottenere il nome predefinito correggere il contenuto del file /etc/udev/rules.d/70-persistent-net.rules
(/etc/udev/rules.d/z25_persistent-net.rules
nelle vecchie versioni di udev).
Configurazione
Anzitutto si crea un'interfaccia logica in modalità Access Point (mode Master):
wlanconfig ath0 destroy wlanconfig ath0 create wlandev wifi0 wlanmode ap
Quindi la possiamo configurare
iwconfig ath0 mode Master essid "Alix" channel 2 ifconfig ath0 10.0.3.1 netmask 255.255.255.0 up
Antenne
È possibile configurare l'antenna diversity con tre parametri del kernel diversity, txantenna e rxantenna. Per vedere le impostazioni correnti:
cat /proc/sys/dev/wifi0/diversity cat /proc/sys/dev/wifi0/txantenna cat /proc/sys/dev/wifi0/rxantenna
Il significato dei valori numerici è il seguente:
diversity: 0: no 1: yes txantenna and rxantenna: 0: auto 1: antenna 1 2: antenna 2
Se si collega solo un'antenna è consigliabile disabilitare la diversity e forzare l'utilizzo della prima antenna:
sysctl -w dev.wifi0.diversity=0 sysctl -w dev.wifi0.txantenna=1 sysctl -w dev.wifi0.rxantenna=1
È possibile fare queste impostazioni in automatico aggiungendo un file /etc/modprobe.d/local
con questo comando:
# Atheros WiFi radio: # set diversity antenna and select antennas for TX/RX. install ath_pci \ /sbin/modprobe --ignore-install ath_pci; \ /sbin/sysctl -w dev.wifi0.diversity=0; \ /sbin/sysctl -w dev.wifi0.txantenna=1; \ /sbin/sysctl -w dev.wifi0.rxantenna=1
Parametri di configurazione opzionali
Alcuni parametri specifici per il driver MadWifi si impostano con il comando iwpriv(8)
. Si utilizza con:
iwpriv ath0 <command> [parameter]
bgscan | Abilita (1) o disabilita (0) lo scanning in background delle reti attive. |
---|---|
bintval | Imposta il beacon interval in ms. Il default è 100, il massimo è 500. |
get_bintval | Riporta il valore attuale del beacon interval. |
mode | 11a, 11b, 11g oppure 0 (default). Blocca nella modalità indicata oppure attiva il modo autoselect. |
authmode | Modo di autenticazione: open (1), shared key (2), 802.1x (3). |
rssi11{a|b|g} | Received Signal Strength Indication, indica il segnale minimo sotto il quale non viene tentata l'associazione (un parametro per ogni modalità WiFi). Default 24? Non c'è da sperare di funzionare con valori inferiori a 10. |
protmode |