Adattatore USB 802.11n Sitecom WL-315 e Linux

Questo articolo è molto vecchio e potrebbe essere obsoleto

Post imageVisto che mi sto imbattendo in molti adattatori WiFi USB compatibili con lo standard 802.11n non funzionanti subito con GNU/Linux, vediamo di dare alcune soluzioni. Questa volta tocca all'adattatore USB WL-315 della Sitecom incluso nel router ADSL Wireless 300N WL-547. Qui la faccenda si fa più semplice del WN111v2 in mio possesso in quanto questo adattatore usa il chipset Ralink rt2870 il cui modulo per il kernel è distribuito dalla stessa Ralink.

Iniziamo col controllare di avere il giusto adattatore USB:

$ lsusb
Bus 005 Device 024: ID 0df6:0039 Sitecom Europe B.V.

L'importante è avere la stringa 0df6:0039 che indica in modo univoco la periferica USB.

Attenzione: se siete certi di avere un adattatore con chipset rt2870 la guida è sempre valida!

Una volta identificato il proprio adattatore scarichiamo i driver dal sito della Ralink:

wget http://www.ralinktech.com.tw/data/drivers/2008_0925_RT2870_Linux_STA_v1.4.0.0.tar.bz2

Una volta scaricato il file decomprimiamo il pacchetto:

tar -xjvf 2008_0925_RT2870_Linux_STA_v1.4.0.0.tar.bz2

Adesso è tempo di modificare il driver affinché rilevi l'adattatore.

Prima di tutto portiamoci all'interno della nuova cartella:

cd 2008_0925_RT2870_Linux_STA_v1.4.0.0

Aprire il file include/rt2870.h con un editor di testo:

gedit include/rt2870.h

Quindi cercare questa linea:

{USB_DEVICE(0x0DF6,0x0017)}, /* Sitecom */ \

Quindi inserire sotto quest'altra stringa:

{USB_DEVICE(0x0DF6,0x0039)}, /* Sitecom */ \

Chiudiamo il file ed apriamo il file os/linux/config.mk:

gedit os/linux/config.mk

Qui adesso modifichiamo le seguenti impostazioni portandole da "n" a "y":

HAS_WPA_SUPPLICANT=n

HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n

Le quali dovranno diventare:

HAS_WPA_SUPPLICANT=y

HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y


Ok, adesso occorre compilare i driver, per far ciò sono necessari gli header del kernel, installiamoli così:

sudo apt-get install linux-headers-generic

Bene, adesso diamo questi comandi in successione per compilare il driver rt2870:

sudo make

sudo make install

Adesso dovrebbe bastare un:

sudo modprobe rt2870sta

A questo punto dovremmo poter gestire la rete wireless direttamente da NetworkManager.

Pulizia

Per ripulire il sistema possiamo tranquillamente disinstallare gli header del kernel.

Poi è bene tenere una copia dei driver modificati, posizioniamoci nella cartella dei driver e digitiamo questi comandi:

make clean

cd ..

tar -cjvf 2008_0925_RT2870_Linux_STA_v1.4.0.0.tar.bz2 2008_0925_RT2870_Linux_STA_v1.4.0.0/

Questa copia può far comodo nel caso che gli aggiornamenti del kernel eliminassero i driver installati. In tal caso è sufficiente effettuare i soliti passaggi ma senza scaricare nuovamente i driver.

Aggiornamenti

Nel frattempo ho inviato un bug per il supporto di tale chipset nel kernel di Ubuntu, è stato accettato e adesso si aspetta che qualcuno faccia un test con un kernel 2.6.28 patchato e l'adattatore WL-315. Per favore, sei hai tale adattatore e usi Linux fammelo sapere che eventualmente ti guido nel test. Se tutto va a buon fine avremo il supporto per il chipset rt2870 su Ubuntu 9.04 Jaunty.

20/03/2009 - Patch accettata e supporto integrato in Ubuntu 9.04 Jaunty.

Noto però che il driver per Linux contiene meno identificatori USB rispetto al driver per Windows... altro bug!

Risorse per la creazione di questa guida
Mailinglist del LUG di Firenze
Forum Ubuntu
Ubuntu question #59849

Articoli correlati

Abbonati al feed RSS. Se non sai cos'è guarda qui.

Abbonati alla newsletter per ricevere via email ogni nuovo articolo pubblicato. L'indirizzo verrà gestito da FeedBurner.

Dai il tuo parere, commenta questo articolo!
commenti su Adattatore USB 802.11n Sitecom WL-315 e Linux
  1. Max scrive —

    ciao dnax. ok per la guida molto ben redatta ma... mi sono arenato alla seconda riga; come? il file rt2870.h non sta esattamente nela subdir include ma in un’altra subdir (chip) e, sorpresa, la riga di cui si fa menzione non esiste ({USB_DEVICE(0x0DF6,0x0017)}, /* Sitecom */)
    ora, sicuramente ho sbagliato qualcosa ma non riesco a capire cosa...
    puoi darmi lumi?
    grazie

    max

  2. DnaX scrive —

    Guarda sicuramente hai fatto qualche errore tu, sicuro di aver scaricato il giusto pacchetto?

    Ho provato a riscaricarlo e ho visto che la struttura delle directory e il contenuto del file rt2870.h è identico a quando ho scritto l’articolo.

    Comunque dovrebbe andare tranquillamente su Ubuntu 9.04 "Jaunty".

  3. Max scrive —

    Come volevasi dimostrare, stavo lavorando su un pacchetto diverso (2.1.0.0) anzichè (1.4.0.0).
    una volta scaricato il pacchetto giusto, guarda caso, la guida calza che è un piacere e il tutto ha funziona a dovere...
    grazie e scusa il disturbo

    max

  4. DnaX scrive —

    @Max: Visto che il pacchetto che avevi scaricato è una versione più aggiornata di quella con cui ho sperimentato, prova a seguire la mia guida dalla modifica del file os/linux/config.mk.

    Fammi sapere com'è andata.

    Ps. Il tutto dovrebbe già essere funzionante dal kernel 2.6.30.

  5. Max scrive —

    grazie ancora dnax, ma adesso il problema si è spostato da un’altra parte mi spiego. Dopo aver risolto utilizzando i driver della versione precedente, mi sono fatto ingolosire dalla nuova versione di kubuntu (la 9.04) che si è installata meravigliosamente bene ed ha riconosciuto tutte le periferiche quasi subito (grazie al kernel aggiornato). Ora sorge un altro piccolo problema: volevo installare la versione alpha 3 di linuxmce (solo web installer ahimè l’unica installabile su questo rilascio di kubu) ma, anke seguendo la wiki del sito ufficiale, incontro una miriade di problemi ed errori riguardanti anke alcuni file non scsricabili (error 404 del server) infine non si riesce a lavorare nemmeno su pluto mythtv. Che dire? se hai necessità di ulteriori delucidazioni, più tardi ti posso postare le definizioni esatte che mi compaiono a consolle. Scusa se mi sono "attaccato" a te ma come avrai già capito, sono ultra neo su linux, pure de più :-).
    per il momento, ancora mille grazie
    max

  6. DnaX scrive —

    Purtroppo non conosco Linux-MCE per cui non posso aiutarti! Gli errori 404 (pagina o risorsa non trovata) possono verificarsi quando si cerca di scaricare pacchetti aggiornati nelle versioni in sviluppo. Non se Linux-MCE è una derivata Debian ma talvolta basta aggiornare la lista dei pacchetti. Dal terminale io uso "sudo apt-get update" ma dovrebbe esserci la solita funzione da qualche parte dell’interfaccia grafica.

  7. antonio scrive —

    Ciao complimenti per l’ottima guida!Molto precisa e chiara,ti vorrei chiedere questo: ho un’adattatore belkin f5d8055 v1,guardando in giro su internet ho visto che ha lo stesso chipset della sitecom 315 l’rt2870,allora ho seguito la tua procedura, tutto bene fino alla compilazione dei driver ma qui inserendo il comando :

    sudo apt-get install linux-headers-generic

    ricevo questo messaggio:

    Lettura della lista dei pacchetti in corso... Fatto
    Generazione dell’albero delle dipendenze in corso
    Lettura informazioni sullo stato... Fatto
    linux-headers-generic è già alla versione più recente.
    I seguenti pacchetti erano stati automaticamente installati e non sono più richiesti:
    python-ldb-samba4 python-tdb samba-ldb-tools python-samba
    Usare ’apt-get autoremove‘ per rimuoverli.
    0 aggiornati, 0 installati, 0 da rimuovere e 1 non aggiornati.
    poi digitando :

    sudo make:

    make: *** Nessun obiettivo specificato e nessun makefile trovato. Arresto.
    anthony@LAB:~$

    digitando:
    sudo make install:

    make: *** Nessuna regola per creare l’obiettivo «install». Arresto.
    in fine digitando:

    sudo modprobe rt2870sta

    questo è il risultato:

    WARNING: All config files need .conf: /etc/modprobe.d/ndiswrapper, it will be ignored in a future release.

    in cosa sbaglio? sono passato a linux da pochi giorni e quindi posso dire di non avere nessuna esperienza,sto visitando moltissimi siti per provare a far funzionare ladattatore in questione
    ho provato anche con ndiswrapper senza successo,ora dovrebbe essere stato disinstallato(ho usato synaptic) ma nell’errore viene ancora nominato.....se puoi darmi qualche consiglio te ne sarei grato!
    Complimenti ancora per la guida è una delle poche che insegna veramente qualcosa!!

  8. antonio scrive —

    Ciao,ho capito il problema digitavo i comandi senza indicare il percorso giusto,ora sembra tutto a posto ma nonostante questo lanciando il comando :iwconfig il risultato è questo:

    anthony@LAB:~$ iwconfig
    lo no wireless extensions.

    eth0 no wireless extensions.

    pan0 no wireless extensions.

    anthony@LAB:~$
    praticamente continnu a non vedere l’adattatore.... puoi darmi qualche consiglio?grazie mille
    antonio

  9. DnaX scrive —

    @Antonio: Dunque, per quanto ne so Ubuntu 9.04 Jaunty uscita da un po' ha il supporto nativo per il chipset rt2870. Quindi guarda di fare l'upgrade o di installare la nuova versione.

    Nel frattempo per diagnosticare il tuo problema dai questo comando:

    lsmod | grep rt2870

    Serve per controllare che il modulo sia stato correttamente caricato. C'è la possibilità che debba essere necessaria una ulteriore patch.

  10. antonio scrive —

    ciao,grazie per la risposta in tempi brevi,ho provato a lanciare quel comando ed il risultato è questo:

    anthony@LAB:~$ lsmod | grep rt2870

    anthony@LAB:~$

    ho comprato un’altro adattatore senza nome,inserendolo è stato subito
    riconosciuto ed ho la rete funzionante..... anche questo monta lo stesso chipset ralink 2870, non capisco perchè l’adattatore sitecom wl-315 di mia sorella appena inserito nella presa usb si accende e comincia a funzionare,altrettanto l’adattatore senza nome e invece nel belkin non si accende neanche il led...eppure tutti e tre hanno lo stesso chip

    se lancio il comando lsusb il risultato è questo:

    anthony@LAB:~$ lsusb
    Bus 002 Device 007: ID 050d:825a Belkin Components
    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 005 Device 003: ID 03f0:4911 Hewlett-Packard PSC 2350
    Bus 005 Device 002: ID 062a:0000 Creative Labs Optical mouse
    Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    anthony@LAB:~$
    quindi l’adattatore viene rilevato..... puoi spiegarmi cosa intendi con

    ulteriore patch ? buona serata.
    Antonio

  11. DnaX scrive —

    Dunque, devi sapere che il modulo rt2870 come molti driver per periferiche SUB si attivano solo in presenza di periferiche USB che mostrano il loro codice identificativo. Tale codice deve essere presente all'interno del driver affinché possa confrontarlo con quello del dispositivo USB.

    Purtroppo talvolta non è dato sapere tutte le periferiche USB che montano un certo chipset, per cui finché qualcuno non invia una patch con i codici della propria scheda il driver non la riconosce.

    Ho guardato nel sorgenti del driver ed infatti l'ID del tua scheda (050d:825a) non c'è.

    Ora puoi fare due cose, la prima è quella di modificare il driver affinché riconosca la tua scheda della Belkin semplicemente inserendo questa linea nel file rt2870.h come spiegato nella guida:

    {USB_DEVICE(0x050D,0x825A)}, /* Belkin */ \


    Un'altra prova che potresti fare (così aiuti me e molte altre persone) è quella di compilare la nuova versione del driver: http://www.ralinktech.com.tw/data/drivers/2009_0424_RT2870_Linux_STA_V2.1.1.0.tgz
    Non dovrebbe esserci bisogno di alcuna patch, *forse* hanno implementato un sistema di riconoscimento non più legato all'ID.

    Spero di averti fatto capire meglio come vanno le cose!

  12. antonio scrive —

    ciao,la primal’ho gia fatta senza nessun risultato ,la seconda sarei felice di farla ma non ho la più pallida idea di come si compila un driver se puoi darmi le indicazioni lo farò molto volentieri!!!!!ho già seguito il collegamento che mi hai segnalato ed ho scaricato il file sulla scrivania!!
    resto in attesa di istruzioni!!!
    buona serata
    antonio

  13. DnaX scrive —

    Quindi mi dici che mettendo quella stringa nel driver e ricompilarlo tutto come indicato nella guida non funziona ancora? Strano...

    Per compilare la nuova versione del driver fai lo stesso che con quello vecchio ma senza patchare, modifichi solo il file config.mk e poi i soliti comandi.

  14. antonio scrive —

    ciao, si è proprio così ieri ho rifatto la procedura con il nuovo driver,ho provato a postartela così potevi controllare se sbagliavo qualche passo,ma è stata presa per spam e forse cancellata,comunque se mi dai un indirizzo mail provo a rifarla e spedirtela come file di testo cosi inoltre ti invio la cartella con il file modificato e puoi controllare anche quella....
    l’adattatore continnua a non funzionare,viene rilevato solo con il comando lsusb mentre con ieconfig ho le solite tre stringhe no wireless extension...
    buona giornata
    Antonio

  15. Lorenzo scrive —

    Ciao, ti ringrazio tantissimo per la guida che al momento per questo problema è la migliore... ma non sono riuscito a far funzionare il mio Adattatore USB WL-323 comprato insieme al router sitecom 300N.

    L’unica differenza nell’ID è che al posto del 9 finale c'è una C e infatti ho messo {USB_DEVICE(0x0DF6,0x003c)}, /* Sitecom */ \

    ho fatto tutto il procedimento (apparte che ho usato il file 2009_0820_RT2870_Linux_STA_V2.2.0.0.tar.bz2 perché gli altri non si trovano ) tutto sembrava perfetto, solo che al momento di dare

    sudo modprobe rt2870sta

    mi dà l’errore "WARNING: All config files need .conf: /etc/modprobe.d/ndiswrapper, it will be ignored in a future release."

    ho provato in ogni modo a far riconoscere questo adattatore ( Ndiswrapper http://wiki.ubuntu-it.org/Hardware/DispositiviSenzaFili/Ndiswrapper ) ma senza successo... ti chiedo aiuto poiché sto usando una vecchia chiavetta con il nuovo router che è più potente del 54g che avevo prima e vorrei poter utilizzare tale potenza

  16. DnaX scrive —

    Ciao Lorenzo,
    L'errore da te riportato in realtà non lo è, ma ti informa che in futuro modprobe ignorerà i file senza l'estensione .conf.

    Questa guida è per installare il driver nativo, quindi senza passare da ndiswrapper. Una volta caricato il modulo appena compilato dovresti già avere disponibile l'interfaccia di rete.

    Semmai se non riesci a risolvere mi devi dire la versione del tuo kernel col comando

    uname -r


    e l'output del comando

    dmesg | tail -n20

  17. Lorenzo scrive —

    Grazie mille per la risposta. Ho rifatto il procedimento ma niente T-T Mettendo uname -r nel terminale mi da

    2.6.28-16-generic

    E "dmesg | tail -n20" mentre sono collegato con il mio vecchio adattatore D-link mi da

    Log rimosso. DnaX


    Se metto il Wl-323 mi da

    [ 43.545500] ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
    [ 54.256017] wlan0: no IPv6 routers present
    [ 1476.392241] usb 1-4: USB disconnect, address 2
    [ 1476.394044] phy0 -> rt2x00usb_vendor_request: Error - Vendor Request 0x07 failed for offset 0x3040 with error -19.
    [ 1476.394053] phy0 -> rt2x00usb_vendor_request: Error - Vendor Request 0x06 failed for offset 0x3040 with error -19.
    [ 1476.394058] phy0 -> rt2x00usb_vendor_request: Error - Vendor Request 0x06 failed for offset 0x3028 with error -19.
    [ 1476.394062] phy0 -> rt2x00usb_vendor_request: Error - Vendor Request 0x06 failed for offset 0x3064 with error -19.
    [ 1476.394066] phy0 -> rt2x00usb_vendor_request: Error - Vendor Request 0x0c failed for offset 0x0000 with error -19.
    [ 1476.394093] phy0 -> rt2x00usb_vendor_request: Error - Vendor Request 0x0a failed for offset 0x0000 with error -19.
    [ 1476.394200] phy0 -> rt2x00usb_vendor_request: Error - Vendor Request 0x0a failed for offset 0x0000 with error -19.
    [ 1476.394223] phy0 -> rt2x00usb_vendor_request: Error - Vendor Request 0x0a failed for offset 0x0000 with error -19.
    [ 1476.394248] phy0 -> rt2x00usb_vendor_request: Error - Vendor Request 0x0a failed for offset 0x0000 with error -19.
    [ 1476.447642] phy0 -> rt2x00usb_vendor_request: Error - Vendor Request 0x07 failed for offset 0x30a0 with error -19.
    [ 1476.447650] phy0 -> rt2x00usb_vendor_request: Error - Vendor Request 0x06 failed for offset 0x30a0 with error -19.
    [ 1476.717469] ndiswrapper version 1.53 loaded (smp=yes, preempt=no)
    [ 1476.795616] usbcore: registered new interface driver ndiswrapper
    [ 1495.888038] usb 1-4: new high speed USB device using ehci_hcd and address 3
    [ 1496.064322] usb 1-4: configuration #1 chosen from 1 choice
    [ 1496.204038] usb 1-4: reset high speed USB device using ehci_hcd and address 3
    [ 1496.361938] ndiswrapper (load_wrap_driver:108): couldn't load driver netr28u; check system log for messages from 'loadndisdriver'

    Grazie ancora per l'aiuto =)

  18. DnaX scrive —

    Fai una cosa, inserisci l'adattatore, da terminale disattiva il modulo rt2870sta:

    sudo rmmod rt2870sta


    disattiva anche ndiswrapper:

    sudo rmmod ndiswrapper


    quindi riattiva il modulo rt2870sta:

    sudo modprobe rt2870sta

    E ridammi l'output di questo comando

    dmesg | tail -n20

  19. Lorenzo scrive —

    Grazie molte veramente per l'aiuto ecco qua... ci tengo a precisare però che quando do sudo rmmod ndiswrapper mi dice

    ERROR: Module ndiswrapper does not exist in /proc/modules

    comunque almeno da un risultato differente da prima:

    [ 1457.743477] phy0 -> rt2x00usb_vendor_request: Error - Vendor Request 0x0c failed for offset 0x0000 with error -19.
    [ 1457.743503] phy0 -> rt2x00usb_vendor_request: Error - Vendor Request 0x0a failed for offset 0x0000 with error -19.
    [ 1457.743610] phy0 -> rt2x00usb_vendor_request: Error - Vendor Request 0x0a failed for offset 0x0000 with error -19.
    [ 1457.743633] phy0 -> rt2x00usb_vendor_request: Error - Vendor Request 0x0a failed for offset 0x0000 with error -19.
    [ 1457.743658] phy0 -> rt2x00usb_vendor_request: Error - Vendor Request 0x0a failed for offset 0x0000 with error -19.
    [ 1457.800639] phy0 -> rt2x00usb_vendor_request: Error - Vendor Request 0x07 failed for offset 0x30a0 with error -19.
    [ 1457.800648] phy0 -> rt2x00usb_vendor_request: Error - Vendor Request 0x06 failed for offset 0x30a0 with error -19.
    [ 1457.874306] ndiswrapper version 1.53 loaded (smp=yes, preempt=no)
    [ 1457.977973] usbcore: registered new interface driver ndiswrapper
    [ 1460.504032] usb 1-4: new high speed USB device using ehci_hcd and address 3
    [ 1460.681973] usb 1-4: configuration #1 chosen from 1 choice
    [ 1460.824044] usb 1-4: reset high speed USB device using ehci_hcd and address 3
    [ 1460.979370] ndiswrapper (load_wrap_driver:108): couldn't load driver netr28u; check system log for messages from 'loadndisdriver'
    [ 1521.659976] usbcore: deregistering interface driver ndiswrapper
    [ 2299.998341] rtusb init --->
    [ 2299.998378] usbcore: registered new interface driver rt2870
    [ 2580.844325] usbcore: deregistering interface driver rt2870
    [ 2580.844371] <--- rtusb exit
    [ 2595.753803] rtusb init --->
    [ 2595.753842] usbcore: registered new interface driver rt2870

  20. DnaX scrive —

    Purtroppo non saprei come aiutarti, ndiswrapper sembra ancora installato e non vorrei che interferisse col funzionamento del driver nativo.

    Potresti provare a editare il file /etc/modprobe.d/blacklist.conf aggiungendo in fondo la stringa blacklist ndiswrapper.

    Così avrei finito le mia carte...

    Certo, questa cosa non è molto rassicurante.

    rt2x00usb_vendor_request: Error - Vendor Request 0x0a failed for offset 0x0000 with error -19.

Lascia un commento

CC BY-NC-SA 3.0 2004-2020 Daniele Napolitano — Per informazioni sulla licenza leggere le Note legali