Chiavetta wireless usb con chipset zd1211 su Ubuntu (funziona!)

Ubuntu contiene già i driver per i chipset zd1211 e zd1211b, tuttavia questi non supportano alcune funzionalità (come il funzionamento in modalità Master che serve a renderle un Access Point). I driver in questione sono gli zd1211rw.

Se la vostra chiavetta funziona bene, potete anche tenere quelli.

Tuttavia, il mio lettore Hideo, dopo avermi detto che non funzionava in modalità Master, mi ha chiesto di aiutarlo a trovare i driver e ad installarli. In questo caso si parla del chipset zd1211, non è garantita la funzionalità con il zd1211b, né è stata testata da noi…

Ci abbiamo perso due ore (non perché siano difficili da installare, è una stupidaggine, ma perché non mi ero accorto che sul sito era presente la patch dei nuovi kernel…😐 ) e quindi voglio riassumere qui il procedimento, che vi impiegherà pochi minuti.

Scaricate da qui il firmware già patchato (da me) con la patch quasi-ufficiale-ma-non-supportata e estraetelo sul desktop.

Poi fate quanto segue:

cd ~/Desktop/ZD1211LnxDrv_2_16_0_0/
sudo make

E aspettate che il driver venga installato. Questo funzionerà solo per i nuovi kernel (dal 2.6.20 in su), per quelli vecchi è necessario il firmware non patchato.

Adesso dovete caricare il driver e rendere tutto ciò automatico.

Fate nel terminale:

sudo modprobe -r zd1211rw
sudo modprobe zd1211

Dopodiché modificate il file /etc/modules:

sudo gedit /etc/modules

E inserite in fondo in una nuova riga la parola zd1211. Infine modificate il file /etc/modprobe.d/blacklist:

sudo gedit /etc/modprobe.d/blacklist

E aggiungete in fondo, in una nuova riga, le parole blacklist zd1211rw.

Per ultima cosa dovete far ripartire i servizi di rete:

sudo /etc/init.d/networking restart

Questo farà saltare per un istante la vostra connessione ad internet.

Adesso inserite la chiavetta usb e dovreste essere in grado di utilizzarla anche in modalità Master.😀

La funzionalità è stata testata con la chiavetta di id 0ace:1211 ma dovrebbe funzionare con tutte le periferiche supportate dal driver.

Aggiornamento del 02/06/2008: se avete ancora problemi di compilazione coi kernel recenti, leggete questo commento.

45 pensieri su “Chiavetta wireless usb con chipset zd1211 su Ubuntu (funziona!)

  1. a parte il problema “master”, conosco una persona che usa quella chiavetta per collegarsi wifi (ubuntu feisty) e gli cade regolarmente l’aggancio all’AP ad intervallo regolare di circa 15 min in assenza di attività (es. traffico attivo di pacchetti). Suggerimenti a riguardo?

  2. @ Daniele, be’ purtroppo i driver non sono proprio il massimo…
    Sul forum di Ubuntu c’è un lettore che dice di aver cambiato i driver e che li funziona senza problemi. Però personalmente io non sono riuscito a replicare la soluzione che proponeva. Se vuoi dacci un’occhiata, spero che la persona che conosci possa risolvere.🙂

  3. [OFF TOPIC!]
    non so se hai sentito il Tg oggi! ma a me è venuto un mezzo infarto!🙂

    Oggi un tizio di nome Andrea LanZarotto è stato ammazzato, ma io lì per lì avevo capito Lazzarotto!! e ho pensato: “deve aver cercato di disinstallare un windows senza il consenso del proprietario del PC e….”

  4. @ phoenix, vediamo. Se questo significa avere un blog molto visitato e apprezzato ti ringrazio anche se non credo che succederà in modo così “famoso”.
    Se invece significa essere disprezzato solo per invidia, be’ quello mi è già capitato.

  5. anche io ho reso il mio desk simile ad Osx basandomi sulla guida di tamila..
    x chi interessato nel mio blog l’ho tradotto in italiano e semplificata con pacchetti già compilati e tutti i link utili.
    spero possa servire!

  6. @ salvo, lo farei volentieri ma io stesso per scaricarlo devo andare a quella pagina lì, e non ne ho una copia sul pc. Non ti resta che aspettare mi sa…😉

  7. non capisco come… non capisco a quali sorgenti ti riferisci… Non vorrei abusare della tua pazienza e gentilezza ma se potresti postarmi i link diretti e i comandi precisi di quello che devo fare te ne sarei grato. altrimenti ti ringrazio lo stesso

  8. I sorgenti sono quelli del driver ovviamente, il link è sull’ultima parola del post, e i comandi per patchare li ho trovati leggendomi il manuale del comando patch, non è difficile, solo che non me li ricordo…😀

  9. niente da fare.. mi sa che ci rinuncio… ho applicato la patch nel modo corretto credo, e ho installato quei driver, ma adesso la rete va peggio di prima, non riesco nemmeno a metterla in monitor-mode

  10. ho una chiavetta con chipset zd1211b, senza installare nulla ubuntu 7.10 me la riconosceva, pero’ non permetteva di settarla come Master.

    Ho quindi seguito la tua guida installando pero’ gli ultimi driver che sono i 2_22
    non li ho pachati, perche’ credo che la patch serva solo per la versione 2_16 che hai usato tu giusto ? almeno cosi’ mi sembra leggendo la pagina dei driver che hai postato a fine articolo.

    Il risultato e’ che ora la chiavetta non mi appare piu’ al comando ifconfig

    hai qualche consiglio ?
    Grazie

  11. Non possedendo personalmente la chiavetta non posso provare… Credo che sarebbe il caso tu tentassi con il driver indicato da me (2_16 quindi).

  12. /home/mio/ZD1211LnxDrv_2_16_0_0/src/zd1205.c:10117: warning: assignment from incompatible pointer type a me quando faccio sudo make da terminale mi dà questo problema perkè?

  13. sono riuscito a metterlo ma una volta messa la chiavetta e installati i driver e fatto tutto ciò ke hai detto nel post come faccio a connettermi?
    sembrerà una domanda stupida ma purtroppo è la prima volta ke uso il wifi…

  14. tdinfo, posso sapere come hai risolto?
    Sto impazzendo dietro questi driver. Purtroppo ho bisogno della master mode, ma, qualsiasi driver cerchi di compilare (da quello di lazza, a quello gestito dalla comunità, a quello ufficiale), mi dà lo stesso errore che dava a te.

    Grazie mille ^_^

  15. Ho trovato questo sul sito http://zd1211.wiki.sourceforge.net/VendorDriver
    “In order to avoid errors and compile the driver version 2.21.0.0 with recent kernels you should modify the source file zd1205.c and substitute this:
    eth_copy_and_sum(skb, pData, length, 0);
    for this:
    memcpy(skb, pData, length);
    This is a very poor solution but it works: tested with 2.6.23.1-23.fc8 kernel (Fedora 7.92 test 3)
    And remember: to bring up the wireless interface you must “ifconfig ethX up” it first.”

    E’ una soluzione barbara, ma sembra essere l’unica che funziona…

    Spero di poter esser stato d’aiuto a qualcuno che come me ci ha perso un pomeriggio senza risultato😉

    Saluti

    P.S. Complimenti Lazza, bel blog! ^_^

  16. Spiacente, ma non risolve il problema… Ho provato con i Vendor Driver, con i tuoi patchati e anche con quelli presenti nei repository di ubuntu…
    Continua a non funzionare purtroppo…
    Poi non so dirti se dipende da qualche arcana maledizione che ha colpito la mia distro oppure se il kernel 2.6.24 semplicemente non è compatibile.

  17. D’oh, be’ magari a qualcuno può risolvere. Fai una cosa, casomai abilitati i backports e aggiorna tutto. Chissà…

  18. Lo farei, ma non posso rischiare di sputtanarmi la distro visto che son sotto esami e non ho tempo di reinstallare tutto. Appena avrò occasione perverò e scriverò qui i risultati🙂

  19. Ciao!
    Su Ububtu Hardy 8.0.4 non compila.
    E’ possibile trovare un driver patchato in modo che la chiavetta usb possa funzionare come access point anche su Hardy?

  20. Hai provato a leggere la nota in fondo al post che ho scritto (che si riferisce al commento di Giotto qui sopra)? Ok che a lui non ha funzionato, ma si può sempre provare. Se non ti funziona nemmeno quello non saprei cosa consigliarti…

  21. ciao,
    posso chiedere un consiglio? io vorrei comprare una chiavetta wifi e vorrei sceglierne una che funzioni automagicamente in Ubuntu (hardy, o meglio se anche precedente)… che prendo?

    Grazie 1K!

  22. ciao
    io ho ubuntu gutsy, versione kernel 2.6.22-14-generic.
    quando faccio make con il driver patachato ricevo questo errore
    cosa posso fare???

    silvio@aspire:~$ cd /home/silvio/Scrivania/ZD1211LnxDrv_2_16_0_0
    silvio@aspire:~/Scrivania/ZD1211LnxDrv_2_16_0_0$ sudo make
    make both
    make[1]: Entering directory `/home/silvio/Scrivania/ZD1211LnxDrv_2_16_0_0'
    make clean
    make[2]: Entering directory `/home/silvio/Scrivania/ZD1211LnxDrv_2_16_0_0'
    rm -rf .tmp_versions .*.cmd *.ko *.mod.c *.mod.o *.o src/*.o src/.*.o.cmd menudbg apdbg winevl_iface
    make[2]: Leaving directory `/home/silvio/Scrivania/ZD1211LnxDrv_2_16_0_0'
    make ZD1211REV_B=0
    make[2]: Entering directory `/home/silvio/Scrivania/ZD1211LnxDrv_2_16_0_0'
    /lib/modules/2.6.22-14-generic/build
    /home/silvio/Scrivania/ZD1211LnxDrv_2_16_0_0
    -I/home/silvio/Scrivania/ZD1211LnxDrv_2_16_0_0/src/include -fomit-frame-pointer -O2 -Wall -Wstrict-prototypes -pipe -Wno-unused -DZDCONF_WE_STAT_SUPPORT=1 -DHOST_IF_USB -DAMAC -DGCCK -DOFDM -DHOSTAPD_SUPPORT -DUSE_EP4_SET_REG -DDOWNLOADFIRMWARE -DfTX_GAIN_OFDM=0 -DfNEW_CODE_MAP=1 -DfWRITE_WORD_REG=1 -DfREAD_MUL_REG=1 -DENHANCE_RX=1 -DZDCONF_MENUDBG -DZDCONF_APDBG -DPRODUCTION -DZDCONF_BANDEDGE_ADJUST -DZDCONF_SES_SUPPORT=1 -DAAAA03_FIX=1 -DZD1211 -DZDCONF_LP_SUPPORT=0
    src/zd1205.o src/zdreq.o src/zdasocsvc.o src/zdauthreq.o src/zdauthrsp.o src/zdmmrx.o src/zdshared.o src/zdhci.o src/zdglobal.o src/zdencrypt.o src/zdpmfilter.o src/zdpsmon.o src/zdsynch.o src/zdbuf.o src/zd1205_proc.o src/zdhw.o src/zddebug.o src/zdtkipseed.o src/zdmic.o src/zddebug2.o src/zdlpmgt.o src/zdturbo_burst.o src/zdusb.o src/zdmisc.o src/zd1211.o
    make -C /lib/modules/2.6.22-14-generic/build SUBDIRS=/home/silvio/Scrivania/ZD1211LnxDrv_2_16_0_0 modules
    make[3]: Entering directory `/usr/src/linux-headers-2.6.22-14-generic'
    CC [M] /home/silvio/Scrivania/ZD1211LnxDrv_2_16_0_0/src/zd1205.o
    /home/silvio/Scrivania/ZD1211LnxDrv_2_16_0_0/src/zd1205.c:450: warning: initialization from incompatible pointer type
    /home/silvio/Scrivania/ZD1211LnxDrv_2_16_0_0/src/zd1205.c: In function ‘zd1205_rx_isr’:
    /home/silvio/Scrivania/ZD1211LnxDrv_2_16_0_0/src/zd1205.c:4212: error: ‘struct sk_buff’ has no member named ‘mac’
    /home/silvio/Scrivania/ZD1211LnxDrv_2_16_0_0/src/zd1205.c: In function ‘zd1205_xmit_frame’:
    /home/silvio/Scrivania/ZD1211LnxDrv_2_16_0_0/src/zd1205.c:5019: warning: ISO C90 forbids mixed declarations and code
    /home/silvio/Scrivania/ZD1211LnxDrv_2_16_0_0/src/zd1205.c:5020: warning: assignment from incompatible pointer type
    /home/silvio/Scrivania/ZD1211LnxDrv_2_16_0_0/src/zd1205.c:5023: warning: assignment from incompatible pointer type
    /home/silvio/Scrivania/ZD1211LnxDrv_2_16_0_0/src/zd1205.c: In function ‘zd1205_set_zd_cbs’:
    /home/silvio/Scrivania/ZD1211LnxDrv_2_16_0_0/src/zd1205.c:10117: warning: assignment from incompatible pointer type
    make[4]: *** [/home/silvio/Scrivania/ZD1211LnxDrv_2_16_0_0/src/zd1205.o] Error 1
    make[3]: *** [_module_/home/silvio/Scrivania/ZD1211LnxDrv_2_16_0_0] Error 2
    make[3]: Leaving directory `/usr/src/linux-headers-2.6.22-14-generic'
    make[2]: *** [all] Error 2
    make[2]: Leaving directory `/home/silvio/Scrivania/ZD1211LnxDrv_2_16_0_0'
    make[1]: *** [both] Error 2
    make[1]: Leaving directory `/home/silvio/Scrivania/ZD1211LnxDrv_2_16_0_0'
    make: *** [all] Error 2

  23. Sinceramente non lo so. Ti consiglio, se non l’hai già fatto, di leggere i commenti precedenti e provare qualche suggerimento proposto. Se continua a non funzionare, forse è il caso di chiedere sul forum di Ubuntu-it, dato che ci sono molte persone esperte.🙂

  24. Ragazzi ho un problemone,
    ho seguito la procedura alla lettera, ma quando sono arrivato ad inserire il comando sudo modprobe zd1211 mi ha detto che il modulo al quale mi riferivo non esisteva, sono andato avanti e il risultato è che non mi riconosce piu la chiavetta. esiste un modo per rimettere i driver originali?

  25. Grazie infinite, se non mi avessi risposto sarei stato perso…
    Comunque a parte il fatto che nel mio caso non ha funzionato, hai fatto davvero una bella guida, esplicativa e facile da seguire.

Che cosa ne pensi?

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...