Adattatore USB 802.11n Sitecom WL-315 e Linux
Questo articolo è molto vecchio e potrebbe essere obsoleto

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
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
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".
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
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.
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
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.
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!!
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
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.
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
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!
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
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.
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
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
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
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 =)
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
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
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.