Adaptador Mini USB Wireless 802.11b Chipset ZyDAS 1201
Contents
-
Adaptador Mini USB Wireless 802.11b Chipset ZyDAS 1201
- ¿Qué demonios es esto?
- ¿Qué ventaja tengo comparando con una placa PCI o PCMCIA?
- ¿Cuánto puede medir el cable USB que lo conecta a la PC?
- ¿Qué soporte tiene?
- ¿Cómo instalar el módulo?
- ¿Qué es el Modo Master?
- ¿Cómo hacerlo funcionar en Modo Master?
- ¿Qué se puede hacer con esto?
- ¿Qué distros se han probado?
- Enlaces
¿Qué demonios es esto?
Hace un par de años se estandarizó lo que es tecnología USB.
Al principio sólo había soporte USB para muy pocas cosas. Pero hoy en día se puede conectar desde un mouse, pasando por impresora y scanner, hasta llegar a monitores, placas de sonido y discos SCSI. A lo que voy con esto, es que, en lo que a conectividad respecta, también se ha progresado mucho.
Existen adaptadores Ethernet USB, y como la gente de WiFi no se podía quedar atrás, también los hay para la tecnología Inalámbrica (aunque se hace mucho más énfasis en la tecnología bluetooth que en 802.11abg).
Básicamente, el adaptador cumple la misma función que una tarjeta PCI o PCMCIA (pccard), claro que tendrá menor desempeño en lo que a potencia se refiere, pues la antena es de mucho menor tamaño que las que traen incorporadas las placas pcmcia (ni hablar de los dipolos de 1db que traen las PCI), y seguro que la calidad no es igualable a la de una placa de red PCI "de marca" (ni hablar de una Senao
), pero, creo que para empezar, o para hacer pruebas, es bastante interesante como opción. Además, como veremos luego, se puede aprovechar la potencia de esta placa utilizando fácilmente parábolas como las de Directv y otras.
El adaptador USB sobre el cual vamos a hablar posee un chipset ZyDAS ZD1201 (es relativamente nuevo, pero tiene suficiente y bastante soporte, en diferentes plataformas y configuraciones). La plaquita que usamos nosotros, cuyo FCC ID es NDD9571170302 como se puede observar en la foto, puede diferir un poco (colores, diseño) de la que tengas vos, lo que importa es que tenga el mismo chipset (ZyDAS ZD1201). Esto se debe a que ZyDAS fabrica el chipset, y luego se lo vende a diferentes fabricantes que a su vez lo utilizan para hacer diferentes placas, pero que se basan en el mismo chip, y esta característica en común es la que posibilita una configuración unificada para todas. Si encontrás un dongle parecido físicamente, y no podés/no queres/no te dejan abrirlo, podes simplemente fijarte en la parte de atrás, y si el FCC-ID coincide perfectamente con el que aparece en la foto (repito, FCC-ID: NDD9571170302) entonces podes comprar tranquilo que la Federal Communications Commision te garantiza que internamente el dongle es igual al que aparece en la foto, es decir que posee el chipset ZyDAS.
¿Qué ventaja tengo comparando con una placa PCI o PCMCIA?
Bueno, muchísimas ventajas, enumeraré un par de ellas:
- "No Connectors Needed!" (¡No se necesitan conectores!)
No tenés pérdida de señal de radio entre los conectores y el cable ya que la antena cerámica la trae directamente soldada a la placa, lo que elimina el típico "pigtail" (aunque no lo creas hay veces que es bastante significativa, y mucho mayor si el pigtail está mal ensamblado).
- Modificable
Al ser una plaquetita pequeña y con una carcaza plástica bien simple de sacar (En contraposición con algunas placas PCMCIA, por ejemplo) es muy fácil acceder a la antena original, y reemplazarla por lo que queramos. Al menos en nuestra modelo de placa, los fabricantes no contemplaron la posibilidad de adicionarle algún tipo de conector externo, pero si tenés conocimientos de electrónica (o conoces a alguien que sepa) podés desoldar la antena cerámica y poner un pequeño pigtail.
- Tecnología MINI MINI
O sea, más que chica, jeje.
La ventaja que trae el tamaño super reducido de la placa, es que podés ponerla físicamente donde quieras, en lugares donde otras cosas no entran y por lo tanto deben ir en una caja estanca separada, obligando a usar un pigtail más largo para la conección. En cambio esta placa se podría hasta poner en la parte de abajo del tubo de PVC protector de una omni, o en el iluminador de una antena de Directv (ver más adelante para más detalles...)
El circuito impreso, con todo soldado en él, prácticamente no tiene más que el espesor de una moneda de 1 peso argentino. Y sus medidas lo hacen bastante interesante para meterlo por algún diseño de antena bastante rebuscado.
Sin la carcaza plástica, solamente la plaqueta con componentes y conector USB, las medidas:
76mm de largo, 22mm de ancho, 6mm de "alto" (espesor).
- Portabilidad
Tiene un bonito diseño como llavero, en el caso de que repentinamente no funcione más, qué se yo, el muy-bajo-precio al que se consiguen permite darse el lujo de quemarlo por alguna prueba infructuosa sin querer cortarse las venas ;).
Posee una ranura para ponerlo en el llavero. Al principio me resulto muy cómico, pero, es más portable de lo que te imaginás. Tiene el tamaño de tu dedo gordo pero con el grosor de haber sido aplastado por un elefante.
¿Cuánto puede medir el cable USB que lo conecta a la PC?
Hay varias respuestas:
- Según el protocolo "oficial" de USB, el máximo largo del cable sólo es de 5m.
- En la práctica, se puede llegar a los 6 o 7 metros.
Existen repetidores activos que se comercializan y que, al repetir la señal, permiten agregar más extensiones de cable USB, pudiendo llegar mediante esto a 18 o 20 metros.
El diagrama es el siguiente:
PC>---5m---<>----5m----[repetidor]<>---5m---<>----5m--<WiFi USB el >----5m--[repetidor]< es un solo artículo que se vende armado, un cable USB común pero con una cajita en una punta que repite la señal.
Ante la idea de armarse este repetidor uno mismo, dado el elevado precio de los comerciales, un integrante de la lista aportó lo siguiente:
Lo que tenés que hacer es unir la masa de la salida de la PC con la masa de una fuente externa, enviar la corriente por el USB, ignorando la salida de 5v+ de la PC, y en el otro extremo del cable, regular la tensión a 5v. Pero acá puede surgir un tema: la línea de datos también sufre una caída de tensión. Desconozco cuales son los límites operativos, incluso no creo que tengas problemas, pero tenelo en consideración. De ser así, dudo que los transistores del tipo BC547/8 puedan moverse a esa velocidad :), por lo tanto habría que buscar transistores de rápida respuesta, o drivers de corriente diseñados para esa frequencia.
Este método alternativo es un poco diferente del que se comercializa, ya que el que se vende hecho no necesita fuente externa; es decir, se autoalimenta con los 5v de la PC. ¿Cómo funciona? No lo sabemos, si alguien sabe o tiene una teoría de cómo hacerlo, por favor que lo aporte, ya que sería una información muy valiosa.
Existen por último unos extensores por cable UTP que se describen más adelante al hablar de ¿qué se puede hacer con esto?. Con este método podemos llegar factiblemente a los 100 metros de largo.
Hay que tener en cuenta en todo esto, que el cable del cual estamos hablando lleva una señal digital, y no de radio a 2.4ghz, por lo tanto no tiene pérdida de señal que se traduciría a un enlace deteriorado, sino que da lo mismo poner 1 metro que 5 metros de cable USB, este hecho no va a afectar la potencia de la señal wireless (2.4ghz).
¿Qué soporte tiene?
Bueno, está enteramente soportada bajo Linux por módulos nativos programados en C.
http://linux-lc100020.sourceforge.net/
Están soportados los modos Ad-Hoc (peer-to-peer), Managed (Arquitecture), Monitor (sniffer) y Master (AP).
Estos 4 modos funcionan perfectamente bien sin tener que hacer ningun tipo de configuración especial fuera de la configuración típica de una placa wifi (iwconfig, ifconfig, route, etc) - a excepción del modo Master que tiene un pequeño trivial detalle más (ver más adelante...).
El driver está siendo activamente desarrollado (al menos en Julio/2005) y por lo tanto se va mejorando cada día la funcionalidad y estabilidad, que actualmente ya son brillantes. Para hacerla andar debemos tener un kernel 2.6.10 o superior, aunque kernels anteriores se pueden parchear sin problemas si no queremos actualizar por alguna razón.
Para usarla con el Kismet necesitamos la última versión devel del Kismet (Posterior a 2005-06-R1) y por supuesto, el driver. La configuración de Kismet necesaria para funcionar es:
source=wlanng_avs,wlan0,zd1201source
Es _muy_ aconsejable configurar la variable "suiduser", para evitar el uso innecesario del superusuario.
Trae drivers para Win98/Me/2000/XP. El netstumbler 0.4.0 funciona seleccionando una de las dos interfaces inalámbricas detectadas: (ZD1201) IEEE802.11b USB Adapter - NDIS 5.1
¿Cómo instalar el módulo?
Bueno, aquí te podés encontrar con un par de cositas que, supongo, probablemente varien de PC a PC, pero en líneas generales:
Probar primero compilando el módulo por CVS haciendo:
# cvs -d:pserver:anonymous@linux-lc100020.cvs.sourceforge.net:/cvsroot/linux-lc100020 login # cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/linux-lc100020 co -P zd1201
Bueno, una vez terminado esto, deberíamos de compilar lo que bajamos. En realidad, aquí tuve un temita, resulta que hay una librería que se suponer que debe de tener instalada, entonces cuando lo compilaba me tiraba un mensaje como este "ieee802_11.h: No existe el fichero o el directorio".
# make && make install make -C /lib/modules/`uname -r`/build/ M=/root/zd1201 modules make[1]: Entering directory `/usr/src/kernel-headers-2.6.8-2-386' CC [M] /root/zd1201/zd1201.o /root/zd1201/zd1201.c:24:24: ieee802_11.h: No existe el fichero o el directorio /root/zd1201/zd1201.c: En la función `zd1201_usbrx': /root/zd1201/zd1201.c:330: error: `IEEE802_11_SCTL_FRAG' undeclared (first use in this function) /root/zd1201/zd1201.c:330: error: (Each undeclared identifier is reported only once /root/zd1201/zd1201.c:330: error: for each function it appears in.) /root/zd1201/zd1201.c:331: error: `IEEE802_11_FCTL_MOREFRAGS' undeclared (first use in this function) /root/zd1201/zd1201.c:343: error: `IEEE802_11_DATA_LEN' undeclared (first use in this function) /root/zd1201/zd1201.c:348: error: `IEEE802_11_SCTL_SEQ' undeclared (first use in this function) make[2]: *** [/root/zd1201/zd1201.o] Error 1 make[1]: *** [_module_/root/zd1201] Error 2 make[1]: Leaving directory `/usr/src/kernel-headers-2.6.8-2-386' make: *** [modules] Error 2
Sólo si al compilar te muestra ese error, usa tu editor de texto favorito (vim en mi caso) y en la directiva de precompilación que dice '#include <ieee802_11.h>', sacale los corchetes y ponele '#include "ieee802_11.h"'. Bueno, después lo compilás como se hace siempre (make, sudo make install), y te bajás el firmware (zd1201-X.XX-fw.tar.gz) de "http://sourceforge.net/project/showfiles.php?group_id=94356&package_id=135904&release_id=301498", después de bajarlo y descomprimirlo haces "$sudo make" y listo.
En distribuciones como Gentoo u otras con repositorio de paquetes, podemos optar por instalar el provisto por la distribución, aunque es recomendable ir a lo más nuevo e instalar el CVS como se explicó recién.
¿Qué es el Modo Master?
Bueno, esto se verá fácil así:
Las tarjetas a la venta en el mercado tienen tres modos de operación:
- Ad-hoc: Es el modo estándar, en este tipo de modo de operación, es el equivalente a las redes en las que se trabaja de igual a igual, todos son clientes y servidores.
- Managed: La placa se conecta a un servidor independiente (un AP) que es el lugar al que se conectan todas las demás tarjetas inalámbricas, el AP gestiona todas las conexiones, enrutados, etc.
Master: Es el modo en el que trabaja el AP para que las tarjetas puedan conectarse. Sería una suerte de hub inalámbrico.
¿Qué quiere decir esto? Bueno, quiere decir que con ese adaptadorcito y una pc con Linux (<inserte distro favorita> :-P ), podés realizar la misma tarea que realiza un "Punto de Acceso" (AP) comercial, sólo que los costos son MUCHO menores. Ver también más adelante donde se habla sobre ¿Qué se puede hacer con esto?.
¿Cómo hacerlo funcionar en Modo Master?
El tema principal es que el modulo (zd1201) le carga el firmware "para cliente" _o_ "para ap", y eso se lo tenés que setear a la hora de cargar el módulo, y antes de conectar el adaptador. Es decir, por defecto le carga el modo "cliente", entonces, imaginemos que la acabas de conectar, te cargo por hotplug el driver (te lo muestra en lsmod) y tenes la wlan0. Bárbaro. Bueno, sacás el adaptador físicamente, haces un "modprobe -r zd1201" para descargar el driver de memoria, y lo volves a cargar _manualmente_, antes de conectar el adaptador, con "modprobe zd1201 ap=1". Esa opción es la importante, la podés ver haciendo "modinfo zd1201" que explica que si pones "ap=0" carga cliente (por defecto) y si le pones "ap=1" carga ap en ese modo no vas a poder poner ni managed ni ad-hoc, solo master. Bueno ahí metés el adaptador, el hotplug lo detecta, pero el driver ya lo cargaste vos antes así que el driver toma directo el adaptador y ya tenes la wlan0 en modo Master para configurarla con iwconfig y esas cosas. Para "activarla" hay que ponerle como mínimo un essid con el comando "iwconfig wlan0 essid algo" ya que al cargar el firm con "ap=1" la setea por defecto como Master.
Nota: No se puede cambiar de modo Cliente a modo AP sin desconectar físicamente el dongle. Por ejemplo, en este caso:
Cargamos el módulo con modprobe zd1201 (modo cliente).
- Conectamos el dongle.
- El driver levanta wlan0 como Managed.
Descargamos el módulo con modprobe -r zd1201 (no desconectamos el dongle).
Volvemos a cargar el módulo con modprobe zd1201 ap=1
- El modprobe se queda "colgado" zombie, no responde al Ctrl+C, Ctrl+Z, etc.
- La única solución que nos queda (todavía estamos a tiempo) es desconectar el dongle, y ahí el modprobe se "descuelga" y vuelve todo a la normalidad, si volvemos a conectar el dongle lo tomara como Master (AP) correctamente.
Si vigilamos el syslog durante todo esto, veremos que cuando el modprobe se "cuelga" aparecen unos mensajes de error relacionados con la carga del firmware, como que no puede uploadear el firm al dongle porque ya tiene "el otro" cargado. Al desconectarlo, lo "reseteamos" y lo dejamos listo para cargarle el nuevo firmware.
IMPORTANTE: Kernels >= 2.6.12 -Actualización Abril 2006
Distribuciones como Debian (y derivadas) ya disponen de soporte para este dispositivo, pero por motivos de licencia se debe instalar un firmware de manera personal. Lo que deben hacer en este caso es descargar solamente el firmware (http://sourceforge.net/project/showfiles.php?group_id=94356&package_id=135904&release_id=301498) y copiar los archivos .fw a la carpeta /usr/lib/hotplug/firmware/. De ahí ejecutar "modprobe zd1201 ap=1" para modo master (o ap=0 para los modos managed o ad-hoc)
# cd /tmp # wget http://easynews.dl.sourceforge.net/sourceforge/linux-lc100020/zd1201-0.14-fw.tar.gz # tar zxvvf zd1201-0.14-fw.tar.gz # cp *.fw /lib/firmware/ # cd /lib/firmware/ # modprobe zd1201 ap=1
¿Qué se puede hacer con esto?
La verdad, la posibilidades parten de tu imaginación. Para empezar, lee este planteo:
APs sin cajas estancas en la terraza
"...existen los extensores por UTP, que son 2 cajitas que se conectan por UTP (hasta 100m). es decir:
[PC]>--1m USB---[x]=====100m UTP====[x]---1m USB---<[dongle]
las [x] son las cajitas que digo. Bueno yo había averiguado en "Mercado Libre" y estaban prohibitivamente caras (220 pesos), pero en conectividad (ahí en galerías jardín) me tiraron 130 pesos (que es algo bastante más accesible) pero que no tenían en stock y que iban a traer cuando el proveedor tuviera. Le pregunte (Julio/2005) "¿Eso es dentro de un año o un mes?" "Y, antes de tres meses". A ver los costos: $70 adaptador + $5 parabola de colador + $130 cajitas felices + $50 UTP + $5 conectores, pigtails USB, etc = $260 pesos.. =~= 90 USD por un cliente nomas. Se va un poco. PERO pensemos si ahí arriba (donde termina el USB en la terraza) se le pone un USB hub con 4 puertos (30 pesos) y le agregamos 3 dongles más: 3 x $70 dongles + $30 hub + $260 de antes = $500 pesos. O sea, con 500 pesos tenes 4 interfaces diferentes, que podes poner en modo Ad-Hoc o Cliente (por el momento -Julio/2005- no se pueden poner en una misma máquina un dongle en modo AP y otro en modo Cliente) apuntando a otros APs ( y lograr la tan deseada redundancia) que las manejas directamente como wlan0, wlan1 etc - ..."
Saquen sus propias conclusiones, yo ya saqué las mías.
Otro escenario es:
Un mother mini-ITX (tipo VIA C3), con al menos un puerto USB libre (en general vienen 4) y un slot PCI. En el slot PCI ponemos una placa wireless con chipset Prism o algún otro con buen soporte en Linux, y le ponemos una omni, y lo configuramos como AP. Luego, en los USB conectamos 4 cables de hasta 5m (pasivos, $15 pesos) y ponemos 4 dongles en modo Cliente, para conectarnos a la omni de otro AP; o Ad-Hoc, para hacer una conección punto-a-punto con otro Nodo con antenas direccionales en ambas puntas.
El mother va en una cajita estanca de reducidas dimensiones (pensar que es una mini-ITX) y los dongles se pueden poner hasta a 5-6m de distancia, de hecho podemos tirar un sólo cable USB y en la punta del mismo poner un hub USB y separar los dongles desde ahí con pigtails USB.
Se hicieron pruebas empíricas satisfactorias para ver si el dongle se sigue "viendo" después de 5m de cable. Se incluyo un hub en el medio, y seguía funcionando. Un diagrama ilustrativo de la prueba:
PC >---1m---<>-----3m----<>---1m---[HUB]<>----1m----<[Dongle]
O sea, 5metros de USB, un Hub, y un metro mas, y funcionaba barbaro. También se hicieron pruebas de conectar 3 dongles más al hub, con su respectivo pigtail de un metro, con los mismos resultados (OK!). Se complica ilustrarlo en ASCII, pero imagínense que del HUB salen, en vez de un cable y un dongle, 4 cables con sus respectivos dongles.
En otras palabras, podrías poner un hotspot (es bastante sencillo, con el linux que mas te guste :D), un Servidor Inalámbrico para tu trabajo, casa, hometown, etc; podrías usarlo para wardriving (lo veo mucho muy practico); podrías usarlo para conectarte con tu vecino que te presta el diario, o simplemente podes usarlo contra un AP que ya tengas de antemano... eso lo elegis y lo decidis vos...
En resumen, lo interesante es la inmensa versatilidad del aparatejo: en 75mm x 20mm x 6mm tenes todas las funciones que podes llegar a necesitar para hacer una red inalámbrica, y a un precio sumamente accesible.
Parábola de DirectTV
Un caso que le veo práctico, resulta que, como casi todos sabemos, los iluminadores de DTV no fueron diseñados para 2.4ghz sino para 2ghz. Pero, poniendo este pequeñisimo adaptador wifi dentro del cilindro del iluminador, lo tendrías apuntado lo más optimamente posible hacia el tan buscado y calculado foco del susodicho artilugio (Parábola DTV). Además, tenés la salida del cable usb bien protegida, por que lo pasas por dentro de los caños de soporte.
Step-by-step 1. Sacas la caja plástica del iluminador. 2. Sacas la plancha plástica que tiene atrás (con un destornillador). 3. Le metés el adaptador USB por detrás y lo llevás hasta el vértice de la boquilla del iluminador. 4. Pegás con una pistola de silicona (glue gun) el conector. 5. Volvés a poner la caja plástica. 6. Empezás a disfrutar de una direccional de la hostia :).
En resumen, en 20 minutos (Puedo asegurar que no son más) tenés una parabola wireless direccional lista para montar y apuntar. Personalmente, me parece que estarías aprovechando los beneficios de la parábola y el adaptador al máximo, y sin dudas con bastante buen desempeño.
http://watafak.sandluis.com/patula/antenas/dtv.htm
Colador de malla metálica
Por otro lado, si no disponemos de parábolas de televisión satelital, podemos mejorar profunda y notablemente la señal de la placa usando un colador o freidora, de malla metálica no muy gruesa, que podemos conseguir en cualquier bazar. Cuanto mayor diámetro, en general es mejor. El foco del colador lo podremos ubicar empíricamente (probando diferentes posiciones hasta dar con la ideal) o podemos guiarnos al principio con una fórmula bien simplificada que dice que: Si la forma del colador se asemeja a media esfera (imaginemos una naranja cortada a la mitad) entonces el foco estará centrado en el medio del "círculo" y un poco desplazado hacia adentro, exactamente R/2, es decir, la mitad del radio de la esfera.
En fin; igualmente, con la fórmula (a menos que tengamos equipos de alta precisión y saquemos detalladas cuentas) solamente vamos a darnos una idea, a aproximar dónde estaría el foco, pero eventualmente terminaremos acomodando manualmente para hacer el "ajuste fino" del iluminador (que viene a ser la punta de la placa).
http://www.usbwifi.orcon.net.nz/
Modificar la antena interna
Modificar, con precisión quirúrgica, los conectores en la antena con la placa base donde está montado el Dongle, adicionandole un pigtail (ver Glosario,Pigtail). Si bien no es algo que cualquiera se anime a hacer, es una buena forma de probar el desempeño montándole una antena externa, u obtener un perfecto llavero simil a un dongle que funcionó en un momento antes de que un inconciente lo abriera.
Acá se pueden ver un caso muy interesante
Nota: No es exactamente el mismo modelo, pero para el caso, el diseño es exactamente el mismo (difiere en que el de la es norma G).
¿Qué distros se han probado?
El dispositivo fue probado bajo Debian, Mandrake (Meriva), Ubuntu, Gentoo, siguiendo las mismas especificaciones que se detallan aquí, y los resultados han sido satisfactorios, no se ha encontrado falla alguna. En el caso de Gentoo se usaron los drivers del repositorio del portage satisfactoriamente.
Enlaces
http://sourceforge.net/projects/linux-lc100020/
http://linux-lc100020.sourceforge.net/
http://sourceforge.net/forum/message.php?msg_id=2879561
Adaptador "Sin marca" con el ZD1201
http://www.usbwifi.orcon.net.nz/
http://watafak.sandluis.com/patula/antenas/dtv.htm
http://watafak.sandluis.com/patula/antenas/omniusb/index.htm
http://www.zydas.com.tw/product/ZD1201.asp
GuidoIribarren <smoky_freebaires AT ARROBA smoky.com.ar>
MarianoDererkVelez (aka_shift-u) <dererk AT NOSPAM madap . com . ar>
Gonzalo Larralde <gonzalolarralde AT ARROBA gmail.com>