Pagine

domenica 29 novembre 2009

Ubuntu Wireless LinkSys WUSB600N works!


Aggiornamento: nuovi (e migliori) riferimenti li potete trovare qui:
- http://ubuntuforums.org/showpost.php?p=9534492&postcount=34
- http://www.linuxforums.org/forum/ubuntu-linux/180545-wusb600n-v1-kubuntu-8-04-a.html

Premessa
Descrivo come ho configurato la mia chiavetta USB Wireless LinkSys WUSB600N per funzionare nel mio ambiente GNU/Linux e, abilitando la velocità di wireless "N" (802.11n).

Ambiente
La soluzione è stata testata con le distribuzioni KUbuntu 9.10, 10.04 e 10.10 a 64bit.
Il PC è un portatile Dell INSPIRON 6400.
Versioni kernel testati: dalla 2.6.31-15-generic alla (attuale) 2.6.35-22-generic.

Hardware
Sembra che il chipset utilizzato dalla chiavetta wireless sia Ralink RT2870.

Modulo kernel
Il kernel sembra riconoscere correttamente l'hardware, ma carica il driver non corretto per questa chiavetta usb wireless: rt2800usb

# lsusb
...
Bus 001 Device 002: ID 1737:0071 Linksys WUSB600N Dual-Band Wireless-N USB Network Adapter
...

Altri comandi utili per l'analisi:
# lshw -C network
# lsmod | grep rt

Soluzione
Per risolvere il problema si deve mettere in black list il modulo rt2800usb:
# nano /etc/modprobe.d/blacklist.conf

aggiungendo in coda al file la seguente riga:
blacklist rt2800usb
NB: utilizzare le frecce per spostarsi nel codice, CTRL+o per salvare e CTRL+x per uscire dall'editor testuale.

A questo punto rimuovere la chiavetta wireless dal PC (se non è stato già fatto) e rimuovere "al volo" il modulo dalla memoria:
# rmmod -r rt2800usb

Oppure provvedete al riavvio del sistema.

In una finestra terminale (es. Konsole) con i diritti di amministratore, digitate il seguente comando:
# tail -f /var/log/messages
In questo modo potrete verificare al volo i messaggi di sistema.

Inserire ora la chiavetta wireless, aspettare qualche istante per poi verificare se il modulo rt2870 è presente nella lista dei moduli del kernel caricati in memoria:
# lsmod
...
rt2870sta 552712 1
...

Ora però il lavoro non è ancora terminato, la chiavetta non funziona ancora e sono presenti errori nei messaggi di sistema, relativi al non corretto caricamento del modulo rt2870:
# less /var/log/messages
NB: premere "/" per iniziare una ricerca e digitare "rt2870" (tutto questo senza le virgolette) per avviare una ricerca del testo "rt2870".
Premere "n" per avanzare la ricerca al prossimo elemento trovato, "N" per cercare il precedente elemento (oppure "p") e "q" per uscire dal programma less.

Il sistema mi avvisa che non ha trovato la configurazione della chiavetta wireless nel file:
/etc/Wireless/RT2870STA/RT2870STA.dat
ed in effetti tale file non esiste nel mio sistema.

Cerca e ricerca in internet, finalmente ho trovato dei riferimenti: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/377745

Il driver e la relativa documentazione è scaricabile dal sito della Ralink al seguente indirizzo:
http://www.ralinktech.com/support.php?s=2
Per la mia chiavetta WUSB600N (che richiede il modulo kernel rt2870sta) ho scaricato il link: "RT2870USB(RT2870/RT2770)"

Nel pacchetto scaricato non ho fatto altro che prelevare il file "RT2870STA.dat" che dovrà poi essere modificato e copiato in /etc/Wireless/RT2870STA.
La spiegazione dei parametri la trovate nel relativo file di testo "README_STA".

...e finalmente ora la mia wireless funziona correttamente con lo standard 802.11n.

Altri preferiscono (o sono costretti per far funzionare il tutto) utilizzare il nuovo driver appena scaricato: sicuramente la soluzione migliore per chi vuole utilizzare l'ultima versione del driver, ma in questo caso sono necessarie alcune rettifiche al software prima di procedere con la compilazione...(sarà argomento di un altro post...).

Nota riquardo al software di configurazione di sistema
Un'ultima considerazione riguardo al software utilizzato dalla mia distribuzione.
Utilizzando sia KDE4 che LXDE sullo stesso PC, ho preferito installare "WiCd Network Manager", disinstallando "network-manager" e "network-manager-gnome" (in modo da poter utilizzare lo stesso programma da entrambe le interfacce).
Poi nelle "Impostazioni di sistema" di KDE nella pagina "Avanzate", nella sezione "Hardware", ho impostato come "Backend di default per la gestione di rete", il programma "WiCd".

6 commenti:

  1. per un pivello come me la procedura da te espressa risulta essere molto complessa cmque grazie lo stesso

    RispondiElimina
  2. anche per me purtroppo pensate sempre di comunicare con esperti mentre la maggior parte delle persone sono alle prime armi

    RispondiElimina
  3. Ciao,
    il mio intento era quello di descrivere l'approccio (a riga di comando) nel cercare di risolvere un problema di tipo hardware.
    Prima di tutto ci si deve assicurare del tipo esatto dell'hardware e come il proprio sistema operativo lo identifica.
    La serie di comanti tipo:
    lsusb
    lshw -C network
    lsmod
    in pratica servono per leggere le caratteristiche dell'hardware e dei moduli del kernel caricati, per poter effettuare ricerche più mirate in internet.
    Ho sottinteso che, indicando un comando con il carattere “#”, si intende aver effettuato l'accesso alla console con i diritti di amministratore (root).
    Mi rendo conto che non sempre si ha la pazienza (ed il tempo!) per poter approfondire un problema, soprattutto se si vuole, o si ha necessità, far funzionare subito la propria wireless!

    Posso riassumere la soluzione del problema con questa serie di passi: se qualcosa non fosse chiaro, appena mi sarà possibile, cercherò di dare una mano.
    Non posso assicurare che questa soluzione sia in assoluto la migliore: io comunque l'ho sperimentata con due PC diversi (con KUbuntu) e ha sempre funzionato...

    NB: prima di eseguire i comandi indicati assicurati che, in base alla visualizzazione del browser, non siano stati spezzati su più righe!

    1) scarica il driver da sito della Ralink:
    url: http://www.ralinktech.com/support.php?s=2
    clicca sul link “RT2870USB(RT2870/RT2770)”

    2) nella pagina che compare, clicca sul pulsante “Accept”: dovrebbe iniziare il download del pacchetto: “2010_0709_RT2870_Linux_STA_v2.4.0.1.tar.bz2”

    3.a) apri la finestra console (per KDE selezionare da menù: “Applicazioni” > “Sistema” > “Konsole”) e posizionati nella dir. dove è stato scaricato il file (comando cd).

    oppure

    3.b) seleziona la directory utilizzando l'applicazione grafica gestore di file Dolphin e premi il tasto F4: dovrebbe aprirsi la finestra console (Konsole) già posizionata nella directory scelta

    4) decompatta l'archivio scaricato utilizzando il comando:
    tar -xvjf 2010_0709_RT2870_Linux_STA_v2.4.0.1.tar.bz2

    viene creata la sotto-directory “2010_0709_RT2870_Linux_STA_v2.4.0.1/”.

    5) creare con i diritti di amministratore la directory:
    sudo mkdir -p /etc/Wireless/RT2870STA

    6) copiare il file “RT2870STA.dat” nella directory “/etc/Wireless/RT2870STA”:
    sudo cp -v 2010_0709_RT2870_Linux_STA_v2.4.0.1/RT2870STA.dat /etc/Wireless/RT2870STA

    7) editare il file RT2870STA.dat:
    sudo kate /etc/Wireless/RT2870STA/RT2870STA.dat

    e rettificare alcuni parametri:
    SSID=nomeMiaReteWireless
    AuthMode=WPA2PSK
    EncrypType=AES

    NB: nel file “2010_0709_RT2870_Linux_STA_v2.4.0.1/README_STA” sono descritti i valori ammessi per i parametri e la relativa sintassi. Il mio router è configurato con protezione WPA2... penso che comunque non sia importante compilare correttamente i valori, perchè saranno utilizzate le configurazioni del programma utilizzato per gestire la wireless (NetworkManager oppure Wicd o altro...): l'importante è che il file: /etc/Wireless/RT2870STA/RT2870STA.dat esista.

    8) editare il file che specifica quali moduli del kernel non devono essere mai caricati in automatico (= mettere in black list un modulo kernel):

    sudo kate /etc/modprobe.d/blacklist.conf

    aggiungere come ultima riga del file il seguente comando:
    blacklist rt2800usb

    9) riavviare il PC

    spero di essere stato d'aiuto.
    NB: ogni commento è sempre ben accetto ;-)
    ciao

    RispondiElimina
  4. Quindi posso iniziare effettivamente qualcosa. Grazie per questo grande suggerimenti.

    RispondiElimina
  5. Ho provato a fare come hai spiegato, ma non riesce a funzionare, ormai ne ho provate tante, che probabilmente ho sporcato il troppo il sistema e non so piu' cosa fare!

    RispondiElimina
  6. Ciao Pedro,
    che vers. di Linux stai usando? Ubuntu, KUbuntu, ... vers. ...? In pratica con le ultime distribuzioni il driver, per far funzionare il router/wireless Linksys (chip RT2870), è già incluso nel kernel, ma non funziona correttamente se non trova il file /etc/Wireless/RT2870STA/RT2870STA.dat nel corretto percorso. Hai rettificato i parametri del file RT2870STA.dat? Hai messo in blacklist il driver rt2800usb (punto 8 commento precedente)? I nomi dei file e directory sono scritti con le corrette maiuscole e minuscole (case sensitive)? Prova a cercare nei log di sistema eventuali messaggi di errore. Se riesci a darmi qualche indicazione in più forse riesco a darti una mano... ciao

    RispondiElimina