Configurazione Wireless

From ArchWiki

Jump to: navigation, search


i18n
English
Italiano
Nederlands
German
简体中文
Russian

Contents

[edit] Introduzione

La configurazione delle schede wireless sotto Arch Linux è un processo che avviene in due fasi: la prima fase è quella dell'identificazione e della corretta installazione del driver della periferica wifi in possesso; la seconda fase è quella della scelta di un metodo di gestione delle connessioni wireless. Questo articolo riguarda entrambe le fasi, e fornisce inoltre collegamenti a ulteriori informazioni sui diversi tool di gestione delle connessioni disponibili.

[edit] Fase I: Drivers Wireless

[edit] Operazioni preliminari

  1. Controllate che il vostro hardware sia supportato da Linux. Potete vedere la marca e\o il modello della vostra periferica wireless con il comando 'hwdetect --show-net" o con lshwd.
    • Schede basate sul chip zd1201 come la ZyXEL B-220
    • wlan-ng supporta molti chipset; controllate qui innanzitutto.
    • madwifi per chipset Atheros (AR5210, AR5211, AR5212 and AR5213)
    • rt2x00 project per un driver unificato per i chip Ralink rt2400, rt2500, e rt2570 (driver beta).
    • Ralink Linux Support per driver per chipset Ralink direttamente forniti dal produttore.
    • rt2x00 project per una versione più supportata e mantenuta dei driver Ralink's proprietari ("legacy drivers" sul sito).
    • ipw2100 per la scheda Intel Pro/Wireless 2100 Mini PCI
    • ipw2200 per la scheda Intel Pro/Wireless 2200 Mini PCI
    • ipw3945 per la scheda Intel Pro/Wireless 3945 AB/G Mini PCI-E
    • orinoco per alcune schede basate sul chip Prism 2
    • prism54 per alcune schede basate sul chip Prism 54
    • bcm43xx per alcune schede basate sul chip Broadcom 43xx (vecchi)
    • b43 per alcune schede basate sul chip Broadcom 43xx
    • Controllate cercando il vostro hardware la pagina Linux Wireless Support o guardate nelle Linux Questions hardware compatibility list (HCL), la quale è oltretutto una ottima lista di hardware linux-compatibile
  2. Se il vostro hardware è supportato solo sotto Windows..
    • ndiswrapper per schede compatibili solo con Windows (alcune con chip Broadcom, 3com, ecc)
    • Saranno necessari i file .inf e .sys dal vostro driver Windows - controllate qui se il vostro hardware è in lista
    • Provate una ricerca sul web per l'esatto nome del modello del vostro hardware wireless con la parola "linux" - e sentitevi liberi di chiedere aiuto sul forum italiano o su quello internazionale
    • Considerate la remota possibiità che il vostro hardware non sia ancora supportato da Linux (anche se dev'essere un caso molto raro)

[edit] Installazione

Prima di tutto, (tranne nel caso abbiate hardware wlan-ng) assicuratevi di installare il pacchetto wireless-tools con pacman

pacman -S wireless_tools

Non potrete inizializzare le connessioni wifi senza questi tools.

[edit] Drivers

Qui ci sono i dettagli su come ottenere i driver per la vostra scheda. Potreste constatare l'esistenza di varie possibilità per alcune schede, quindi ricordate che potete controllare il sito HCL per informazioni sulla scelta del driver migliore.

[edit] wlan-ng

pacman -S wlan-ng26 wlan-ng26-utils

Per wlan-ng non avrete bisogno del pacchetto wireless-tools menzionato prima. Dovrete invece imparare ad utilizzare i tool presenti nel pacchetto wlan-ng26-utils: wlancfg e wlanctl-ng

[edit] rt2x00

Il driver unificato per i chipset Ralink (rimpiazza i vari driver separati per rt2500,rt61,rt73 ecc.), compatibile con la versione stabile di wpa_supplicant utilizzando l'interfaccia al driver wext, è incluso nel codice del kernel (a partire dal kernel 2.6.24), e può essere caricato manualmente come segue:

modprobe rt2500pci
(sostituite rt2500pci con il vostro hardware es. rt2400pci, rt2500usb, rt61pci, rt73usb)

Alcuni chip richiedono un file del firmware..Fate riferimento alla pagina rt2x00.

[edit] RT2500

Per le schede Ralink's PCI/PCMCIA basate sl chipset serie rt2500 (la prima generazione dei chipset Ralink a supportare il wifi 802.11g)...

pacman -S rt2500

Questo chip supporta i tools standard iwconfig per le connessioni non crittate e per quelle WEP, anche se potrebbe essere sensibile all'ordine di esecuzione dei comandi. wpa_supplicant non è supportato usando l'interfaccia standard wext. Inoltre questo driver non supporta la protezione WPA (utilizzando la crittazione hardware), ma la supporta in una maniera non-standard. La versione "di sviluppo" di wpa_supplicant (0.6.x) sembra includere un supporto speciale per questo driver, e sembra inoltre possibile connettersi a una rete WPA manualmente usando i comandi iwpriv. Vedere queste istruzioni per i dettagli. Queste considerazioni valgono anche per i chipset RT61 e RT73 qui sotto.

[edit] RT61

Per le schede PCI/PCMCIA basate sul'ultima generazione dei chipset Ralink 802.11g (inclusi quelli che supportano le modalità MIMO propietarie), vedere la pagina RT61 del wiki.

[edit] RT73

Per le schede wifi USB basate sul'ultima generazione dei chipset Ralink 802.11g (inclusi quelli che supportano le modalità MIMO propietarie), vedere la pagina RT73 del wiki.

[edit] madwifi

pacman -S madwifi

Il modulo è chiamato ath_pci. Potreste aver bisogno di usare l'opzione countrycode al momento di caricare il modulo dei driver MadWifi per poter usare canali e settare la potenza del segnale in maniera da rispettare la legislazione del vostro Paese\Regione. In Olanda, per esempio, dovreste caricare il modulo così:

modprobe ath_pci countrycode=528

Potete controllare i settaggi con il comando iwlist. Vedere man iwlist e la pagina dei CountryCode nel wiki MadWifi. Per applicare i settaggi automaticamente al boot, aggiungete la riga seguente al file /etc/modprobe.conf:

options ath_pci countrycode=528

ATTENZIONE: con un kernel >= 2.6.21 potrebbe essere necessario eliminare l'opzione countrycode, altrimenti può accadere che la periferica ath0 non venga creata (nota di andyrtr)!

[edit] Intel ipw2100 e ipw2200

A seconda del chip della vostra scheda, dovrete utilizzare uno fra:

pacman -S ipw2100-fw

o:

pacman -S ipw2200-fw

Sarà probabilmente necessario riavviare per far si che il firmware venga caricato.

[edit] iwl3945 e iwl4965

Il nuovo progetto Intel iwlwifi fornisce dei driver che funzionano per entrambi i chipset, i quali sono direttamente inclusi nei kernel 2.6.24 e successivi. Sarà semplicemente necessario scaricare il firmware corrispondente al vostro chipset:

pacman -S iwlwifi-3945-ucode

o:

pacman -S iwlwifi-4965-ucode

Se MOD_AUTOLOAD è settato su si nel file /etc/rc.conf (lo è di default) questo è tutto ciò che è necessario fare. Riavviate semplicemente il sistema e controllate che il driver sia stato effettivamente caricato dando un ifconfig da terminale. Nella lista dovrebbe apparire il device wlan0.

Se volete settare manualmente il caricamento del driver al boot, date un

nano /etc/rc.conf

e aggiungete il modulo alla stringa MODULES=() aggiungendo iwl3945 o iwl4965 alla lista, a seconda del vostro chipset. Date poi un CTRL + X, Y (o S) per chiudere e salvare.

Controllate che il driver sia stato effettivamente caricato dando un ifconfig da terminale. Nella lista dovrebbe apparire il device wlan0.

Note: se il driver iwlwifi, che è comunque ancora in fase sperimentale, non funzionasse, sappiate che che è possibile utilizzare il driver per Windows NETw4x32 tramite ndiswrapper, oppure potete utilizzare il driver ipw (vedi sotto).

[edit] ipw3945 (driver alternativi)

Nota: Questo driver ipw3945 non è più sviluppato, e sarà probabilmente eliminato appena i driver iwlwifi saranno considerati abbastanza "maturi"

pacman -S ipw3945

Questo comando dovrebbe installare il firmware ipw3945-ucode, ipw3945, and ipw3945d (il demone).

Per inizializzare correttamente il driver al boot...

nano /etc/rc.conf

Aggiungere alla stringa modules=() il modulo ipw3945 alla lista, inoltre aggiungere alla stringa daemons=(), la voce ipw3945d (mettere questa voce PRIMA di network e dhcdbd/networkmanager nella lista) Poi dare CTRL + X, Y (o S) per salvare e uscire.

Il modulo ipw3945 dovrebbe essere caricato durante la fase "Loading Modules.." del boot e la scritta "Starting IPW3945d" dovrebbe apparire durante il boot stesso. Inoltre col comando ifconfig dovrebber essere presente un device aggiuntivo ethX (con X un numero variabile i base al numero delle vostre schede di rete).

Aggiornamento: Sull' HP nc6320 il Bluetooth non si connette finchè non fate l'unload del modulo ipw3945.

[edit] orinoco

Questo driver fa già parte del pacchetto del kernel e quindi dovrebbe già essere installato.

[edit] ndiswrapper

Ndiswrapper non è un vero e proprio driver, ma è un tool che può tornare utile nel caso in cui non siano disponibili dei driver nativi per Linux adatti al vostro chipset wireless. Per utillizzarlo, è necessario avere il file .inf proveniente dal pacchetto driver per i sistemi Windows (oltre al file *.sys che dev'essere nella stessa cartella). Per installare ndiswrapper è necessario seguire questi passi:

Installare ndiswrapper con pacman:

pacman -Sy ndiswrapper ndiswrapper-utils

Nota: I kernel Beyond necessitano dell'apposito pacchetto ndiswrapper-beyond al posto del pacchetto ndiswrapper (generico)!

Nota2: Se non avete un accesso a Internet funzionante sulla macchina su cui state lavorando, potete comunque scaricare i pacchetti necessari, per installarli poi manualmente, da un altro pc collegandovi a uno dei mirror dei repository di arch (o direttamente da ftp://ftp.archlinux.org/core/os/i686/ ). Sarà necessario scaricare i pacchetti ndiswrapper (o ndiswrapper-beyond come spiegato sopra) e ndiswrapper-utils. Probabilmente sarà anche necessario aggiornare il kernel (se si tratta di una installazione del sistema da zero) poichè quello fornito sul CD potrebbe non essere l'ultimo disponibile. I pacchetti andranno poi installati manualmente con pacman -U nomepacchetto

Una volta che l'installazione dei pacchetti è completa, per configurare ndiswrapper si dovranno seguire i seguenti passi:

ndiswrapper -i filename.inf
ndiswrapper -l
ndiswrapper -m
depmod -a

dove filename.inf è il nome del vostro driver Windows per la vostra scheda wifi. Ora l'installazione di ndiswrapper è quasi completa; rimane solo da aggiornare il file /etc/rc.conf in modo da caricare il modulo al boot (qua sotto c'è una configurazione di esempio, che andrà adattata al contesto in cui ci si trova)

MODULES=(ndiswrapper snd-intel8x0 !usbserial)

L'importante è semplicemente che ndiswrapper sia presente nella lista dei moduli da caricare. Salvato il file, sarà utile (per non dover riavviare subito) caricare manualmente il modulo con il comando

modprobe ndiswrapper

Controlliamo che la periferica sia correttamente riconosciuta con

iwconfig

dovremmo vedere presente il device wlan0. Se avete problemi, consultate il wiki d'installazione Ndiswrapper.

[edit] prism54

Scaricate il firmware del driver appropriato per la vostra scheda da questo sito. Rinominate poi il file in 'isl3890'. Se non esiste, sarà necessario creare la cartella /lib/firmware e spostare li dentro il firmware appena rinominato. Questo procedimento dovrebbe funzionare. (forum source)

[edit] ACX100/111

Installate innanzitutto i pacchetti 'tiacx' e 'tiacx-firmware' dal repository core.

pacman -S tiacx tiacx-firmware

Il driver dovrebbe dirvi di quale firmware ha bisogno: controllate /var/log/messages.log oppure usate il comando dmesg per vedere questa informazione. Spostate quindi il firmware corretto nella cartella /lib/firmware, ad esempio:

ln -s /usr/share/tiacx/acx111_2.3.1.31/tiacx111c16 /lib/firmware

Consiglio: se pensate che questo driver riempia di messaggi inutili il vostro kernel log, ad esempio se state utilizzando Kismet con il channel-hopping, potete mettere questa opzione nel file /etc/modprobe.conf:

options acx debug=0

[edit] BCM43XX

Gli utenti Broadcom che hanno un chip della serie 43xx hanno una nuova alternativa all'utilizzo di ndiswrapper: è stato infatti introdotto nel kernel 2.6.17 il driver bcm43xx.

  1. Eseguite innanzitutto il comando
    iwconfig
    oppure
    hwd -s
    per assicurarvi di avere una scheda wifi appropriatata: ad esempio, l'output di hwd -s deve apparire all'incirca così:
Network    : Broadcom Corp.|BCM94306 802.11g NIC module: unknown

Per una lista di schede supportate, fare riferimento qui.

  1. Eseguite
    pacman -Sy bcm43xx-fwcutter
    per installare l'applicazione estrai-firmware.
  2. Scaricate il driver Windows per la vostra scheda, dal quale si dovrà poi estrarre il firmware.
  3. Se avete scaricato il driver dal sito Dell, sarà necessario eseguire il file .exe su una macchina Windows o sotto Wine (dato che il driver DELL è appunto un file .exe autoestraente che si estrae nella cartella C:\Dell\[numeri del driver]). In alternativa, potreste provare a scaricare da [1] o da [2]. Poi spostate semplicemente il driver sul desktop, dopo l'operazione di estrazione descritta qui sotto potrete cancellarlo tranquillamente.
  4. Eseguite
    bcm43xx-fwcutter -w /lib/firmware /home/nomeutente/Desktop/wl_apsta.o
    , tenendo conto che potreste aver bisogno di creare la cartella /lib/firmware se essa non esiste.
  5. Riavviate, e configurate la vostra scheda normalmente. Potreste voler aggiungere bcm43xx nella sezione MODULES del file /etc/rc.conf .. buona fortuna!

[edit] b43

Questo driver è il successore del driver bcm43xx, ed è incluso nei kernel 2.6.24 e successivi.

  1. Eseguite
    hwd -s
    per assicurarvi di avere una scheda wifi appropriatata: ad esempio, l'output di hwd -s deve apparire all'incirca così:
    Network    : BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller module: unknown

Per una lista di schede supportate da questo driver, fate riferimento a questa pagina.

  1. Eseguite
    pacman -Sy b43-fwcutter
    per installare l'applicazione estrai-firmware.
  2. Scaricate poi la versione 4.80.53.0 dei driver proprietari Broadcom con
    wget http://downloads.openwrt.org/sources/broadcom-wl-4.80.53.0.tar.bz2
  3. Decomprimete poi i driver...
    tar xjf broadcom-wl-4.80.53.0.tar.bz2
  4. Spostatevi nella cartella appena creata, e poi nella cartella kmod al suo interno:
    cd broadcom-wl-4.80.53.0/kmod
  5. Eseguite
    b43-fwcutter -w "/lib/firmware/" wl_apsta.o
    considerando di creare prima la cartella /lib/firmware se non esiste.
  6. Riavviate, e configurate la scheda nella maniera standard: potreste voler aggiungere il modulo b43 nella sezione MODULES dell' /etc/rc.conf per averlo caricato automaticamente al boot... buona fortuna!

[edit] rtl8187

Vedere la pagina del wiki relativa -- rtl8187

[edit] zd1211rw

zd1211rw è il driver per il chipset ZyDAS ZD1211 802.11b/g USB WLAN ed è incluso nelle recenti versioni del kernel Linux. Vedere [3] per una lista delle schede supportate. Avrete solo bisogno di installare il firmware appropriato per la scheda con:
pacman -Sy zd1211-firmware

[edit] Test dell'Installazione

Dopo aver caricato il modulo relativo al vostro driver, date un

iwconfig

e controllate se effettivamente è riconosciuta un'interfaccia wireless (come wlanX).

[edit] Fase II: Gestione Wireless

Dando per scontato che abbiate installato correttamente i driver, ora si avrà bisogno di un metodo per gestire la connettività wifi. Le seguenti sottosezioni vi aiuteranno a capire quale di essi sarà più adatto alle vostre necessità.

[edit] Utility di Gestione Wireless "Arch-based"

Arch Linux fornisce parecchie soluzioni per gestire le connessioni wireless. Scegliere quale usare dipende dalle esigenze di ognuno.

[edit] /etc/rc.conf

  • Il file /etc/rc.conf è utilizzato dallo script "network". Dunque, con esso potrete definire e configurare un semplice setup della connessione wireless editandolo, scegliendo quindi un approccio centralizzato..per esempio:
# /etc/rc.conf
eth0="dhcp"
wlan0="dhcp"
wlan_wlan0="wlan0 essid MyEssid"
#wlan_wlan0="wlan0 essid MyEssid key 12345678"
#wlan_wlan0="wlan0 essid MyEssid key s:wirelesspassword"
INTERFACES=(eth0 wlan0)

(non tutte le schede wireless vengono interfacciate con wlan0. Controllate a cosa è stata associata la vostra scheda con il comando ifconfig -a. Le schede basate su chip Atheros, per esempio, sono tipicamente associate a ath0, così nel file di configurazione dovrete sostituire wlan_wlan0 con wlan_ath0="ath0 essid...". Inoltre definite ath0 nella linea "INTERFACES=" .

  • In alternativa, potreste definire wlan_* tramite il file /etc/conf.d/wireless, (anch'esso richiamato dallo script network), per un approccio de-centralizzato:
# /etc/conf.d/wireless
wlan_wlan0="wlan0 essid MyEssid"

Ovviamente per il nome a cui è stata associata la scheda valgono le considerazioni fatte in precedenza.

[edit] Netcfg2

Netcfg2 fornisce una soluzione più versatile e robusta che potreste preferire, soprattutto se avete frequentemente a che fare con spostamenti fra reti wireless differenti. Documentazione: Network Profiles Maggiori dettagli sullo sviluppo del tool: Network Scripts

[edit] wireless-tools

Questi potenti tool da console funzionano estremamente bene e permettono un totale controllo manuale delle connessioni. Negli esempi si assume che la vostra scheda sia associata a wlan0, quindi nel caso sostituite a wlan0 il device associato alla vostra.

Molte schede necessitano che la loro interfaccia sia stata attivata, prima di poter utilizzare correttamente i wireless-tools:

ifconfig wlan0 up

Controllate quali access-point sono disponibili:

iwlist wlan0 scan

Usando i risultati dello scan, dite alla vostra scheda wireless quale access point utilizzare. Per esempio:

iwconfig wlan0 essid linksys

Poi, configurate l'interfaccia come al solito: ecco dei semplici esempi:

dhcpcd wlan0

o

ifconfig wlan0 192.168.0.2
route add default gw 192.168.0.1

[edit] Gestione wireless di terze parti

Come alternativa agli script Arch descritti appena qua sopra, sono disponibili una moltitudine di soluzioni per la gestione wireless di terze parti, disponibili anche per gli utenti Arch.

[edit] NetworkManager

NetworkManager è un avanzato tool di gestione delle reti che è disponibile di default in molte distribuzioni Linux (una fra tutte, Ubuntu) Oltre a gestire le connessioni via cavo, NetworkManager offre un sistema per gestire le connessioni wifi tramite una semplice interfaccia grafica senza dover preoccuparsi di modificare file o dover usare strani comandi da console.

Per maggiori informazioni, vedere il relativo wiki -- NetworkManager.

[edit] Wicd

Wicd è un gestore di reti che può gestire sia connessioni via cavo che wireless. Esso è scritto in Python e Gtk, con meno dipendenze rispetto a NetworkManager, rendendolo una soluzione ideale per quelli che desiderano utilizzare un ambiente desktop leggero. Wicd è disponibile nel repository extra sia per sistemi i686 che per x86_64.

Per maggiori informazioni, vedere il relativo wiki -- Wicd.

[edit] Wifi Radar

WiFi Radar è una utility Python/PyGTK2 per gestire diversi profili wireless (e solo wireless). Esso è in grado di effettuare lo scan delle reti wireless disponibili e di creare profili per le vostre reti preferite.

Per maggiori informazioni, vedere il relativo wiki -- Wifi Radar.

[edit] Wlassistant

Wlassistant è un'intrefaccia grafica molto intuitiva per gestire le connessioni wireless.

Si installa con:

pacman -S wlassistant

Wlassistant deve essere eseguito con privilegi di amministratore:

sudo wlassistant

Un metodo per usare wlassistant è quello di configurare la scheda wireless attraverso /etc/rc.conf, specificando lì dentro l'access point che desideriamo utilizzare più spesso. Allo startup, la scheda sarà automaticamente configurata per questo essid scelto, e se fossero disponibili altre reti, wlassistant potrà comunque essere eseguito per connettervisi. Sarà consigliato in questo caso, eseguire il demone network mandandolo in background (mettendoci un @ davanti nella sezione DAEMONS nell' /etc/rc.conf) per evitare inutili attese durante il boot (dato che la ricerca-connessione a una rete wireless può richiedere qualche secondo).

[edit] Risorse aggiuntive

Personal tools