Así es señores, luego de 8 meses de sufrimiento tratando de hacer funcionar mi placa wireless WL-159g en mi Debian GNU/Linux, lo conseguí!.
Empiezo por el principio, hace 8 meses me compre una notebook ASUS Z94L, la cual previamente consulte en google si funcionaba en GNU/Linux, y el resultado fué positivo.Mi sorpresa llegó cuando quise levantar la wireless, dado que si bien el módulo para esta placa ya es parte de la rama oficial del kernel ( a partir de la versión 2.6.18 ), no había forma de hacerla funcionar… levantaba, escaneaba pero no había forma de que se quedara fija en un canal, escaneaba eternamente
. Bueno, esto me llevó por un montón de caminos, desde probar las versiones del driver del fabricante (la empresa Zydas), a probar el driver que viene con Debian (paquete zd1211-source), pero nada parecía dar resultado. Después llegó la etapa de consultar en la lista de este módulo, donde basicamente me dijeron, “tiene que andar, esta todo en orden”
…. bueno… después de esto entre en un estado de depresión terrible.. no podía ser que a mi fuera la única persona a la que no le funcionaba esta placa wireless (según http://www.linuxwireless.org/, esta placa funciona perfectamente en GNU/Linux), al punto de que cuando buscaba en google, me encontraba con mis propias consultas en los foros!!!. Así que pasé por etapas como la de compilar el kernel a pata, con el modo debug activado al mango para este módulo, recabar todos los logs y enviarlos a la lista de desarrollo del módulo nuevamente (sin respuesta satisfactorias), bajarme el código del módulo del svn y empezar a tratar de deducirlo (deserté a los 30 min
, todo lo que es módulo esta en C (Puajjjj) ), bajarme el kernel que usan los desarrolladores del modulo desde su git de desarrollo y compilarlo (si, si, el mismo fuente de kernel con el modulo que usa para probarlo y demás)…. pero nada de nada.
Después probé con el ndiswrapper… con el cual me funciono, pero sin buenos resultados… dado que cada cierto tiempo me colgaba el kernel (si un bruto kernel panic
), y eso era muuuy feo, porque tenía que reiniciar…( ustedes sabe que la gente de GNU/Linux se pone colorada cuando le pasa esto, el resto esta acostumbrado, pero nosotros no
).
Bueno, luego de que las esperanzas se esfumaran, hoy leo en la lista de desarrollo de este módulo, que el fabricante (Zydas) a liberado una nueva versión del driver
, y como no podía ser de otra manera… ahí estaba de nuevo compilando y demás… pero esta vez con un resultado totalmente positivo… ANDA y no solo que no se cuelga, sino que funciona mejor que con el ndiswrapper!.
Comento los pasos para aquellos que se encuentren en la misma situación:
*Primero que nada, mi kernel es el 2.6.21-2-686.
* Paso 1: bajar el firmware del módulo de http://sourceforge.net/project/showfiles.php?group_id=129083&package_id=187875, la versión que yo estoy usando es la 1.3 (el archivo se llama zd1211-firmware1.3.tar.bz2 ) y descomprimirlo en /lib/firmware (va a crear una carpeta zd1211-firmware).
O sea:
cp zd1211-firmware1.3.tar.bz2 /lib/firmware
cd /lib/firmware
tar xvfj zd1211-firmware1.3.tar.bz2
* Paso 2: bajar el nuevo driver de http://dsd.object4.net/zd1211-vendor/releases/ZD1211LnxDrv_2_21_0_0.tar.gz y copiarlo a /usr/src ( o a donde a vos te parezca mejor), y descomprimirlo:
cd /usr/src/
wget http://dsd.object4.net/zd1211-vendor/releases/ZD1211LnxDrv_2_21_0_0.tar.gz
tar xvfz ZD1211LnxDrv_2_21_0_0.tar.gz
cd ZD1211LnxDrv_2_21_0_0/
make
* Paso 3: si todo lo anterior salió bien y el módulo compilo bien, estamos… nos faltan tocar algunas cositas mas como agregar al blacklist el módulo zd1211rw y agregar el módulo zd1211(el que compilamos recién) al archivo de módulos que se cargan al inicio. O sea:
Modificamos el /etc/modprobe.d/blacklist y agregamos al final:
blacklist zd1211rw
(eso es para que no cargue ese módulo al inicio, ese es el módulo que viene en el kernel, y que a mí no me anda).
Luego modificamos el /etc/modules y agregamos al final:
zd1211
(esto hace que este módulo se cargue automáticamente cada vez que iniciamos el sistema)
* Paso 4: ya casi estamos.. nos falta modificar el /etc/network/interfaces y agregar algo como :
auto wlan0
iface wlan0 inet dhcp #si es que levantan la interface por dhcp
y listo!!!! ya estamos, para corroborar que todo funciones, reiniciamos la máquina (o sino hacemos modprobe zd1211, para cargar el módulo y no esperar a que se cargue automáticamente en el próximo reinicio) y deberíamos tener una interface llamada wlan0 (si no aparece, hacemos un ifconfig wlan0 up). Después lo de siempre iwconfig wlan0 essdi miRed
Bueno, espero que le pueda ser de utilidad a alguién, en caso de que ese alguién este pasando por el mismo calvario por el que yo pasé.
Gracias Maxi por este post. Comento que a pesar de tener el mismo modelo de notebook el dispositivo wireless es distinto, y utiliza el módulo zd1211b que también se compila desde las fuentes que mensionás en tu post. En mi caso 0b05:171b por lo que tuve que agregarlo en el archivo ./src/zdusb.c (se entiende que corresponde al directorio src de las fuentes) y obviamente en lugar de agregar al final de /etc/modules el módulo zd1211 vá el zd1211b.
Saludos desde Tostado, Santa Fe, Argentina.
Ah! Pequeño detalle… El firmware utilizado es el de la version 1.4!!!
Saludos desde Tostado, Santa Fe, Argentina.
genio…. estoy desde ayer con el ndiswrapper.. y no consigo nada.. puse en google el id de la placa de mi notebook, y magicamente llegue aca
pase por la misma que vos.. no sos el unico que se deprime, pero si el primero que lo supo arreglar
Hi, I’m sorry but I can’t speak spanish. I’m italian. I have the same wireless-card (Asus wl-159g) that uses the zd1211rw driver on linux. With this driver it doesn’t work properly, and if I use ndiswrapper i get a kernel panic. I’ve red your tutorial, but my wireless card doesn’t work, even if I can compile and load the new module (zd1211). If I try to do “iwconfig” I get “no wireless extension”…how I can do? Thank you.
Franz, you must do ifconfig INTERFACE up before iwconfig. Where INTERFACE is you wireless card interface (eth0 or eth1 or wlan0, etc). If you don’t know what interface is, see the output of ifconfig -a , and then try with each one. I hope this help you.
Hi sorry I do not speak your language but I read through google translator and your tip solve my problem with Asus WLG card ; Many many thanks after long time hunting solution!
Best regards,
Lotus and the other people who is reading this… in the new kernel (2.6.24-1-XXX), zd1211rw module works great!, and you don’t need do anythings, just download firmware and put them into /lib/firmware and ensure zd1211rw isn’t blacklisted and do modprobe zd1211rw
, it is all.
if zd1211rw module is blacklisted, edit /etc/modprobe.d/blacklist and delete the line
blacklist zd1211rw
. I hope this help you.
Best regards.
=================================
.
Lotus y todos aquellos que esten leyendo esto… en el nuevo kernel (2.6.24-1-XXX), el modulo zd1211rw anda perfecto, y no es necesario hacer nada de lo anterior, solo bajar el firmware, ponerlo en /lib/firmware, asegurarse de que no este listado en la lista negra, y solo hacer modprobe zd1211rw
Si el módulo zd1211rw esta listado en la lista negra, solo hay que editar el archivo /etc/modprobe.d/blacklist y eliminar la línea
blacklist zd1211rw.
Espero que les sea de utilidad. Saludos
Muy bueno el documento
tenia el mismo problema con el kernel 2.6.26
el documento me iso dar cuenta que con solo instalar firmware alcanzo
saludos
Maxi,
cuando llego al paso que hace make me tira el siguiente error:
…
/usr/src/ZD1211LnxDrv_2_16_0_0/src/zd1205.c: En la función ‘zdcb_rx_ind’:
/usr/src/ZD1211LnxDrv_2_16_0_0/src/zd1205.c:9913: error: declaración implícita de la función ‘eth_copy_and_sum’
/usr/src/ZD1211LnxDrv_2_16_0_0/src/zd1205.c: En la función ‘zd1205_set_zd_cbs’:
/usr/src/ZD1211LnxDrv_2_16_0_0/src/zd1205.c:10344: aviso: asignación desde un tipo de puntero incompatible
make[4]: *** [/usr/src/ZD1211LnxDrv_2_16_0_0/src/zd1205.o] Error 1
make[3]: *** [_module_/usr/src/ZD1211LnxDrv_2_16_0_0] Error 2
make[3]: se sale del directorio `/usr/src/linux-headers-2.6.24-21-generic’
make[2]: *** [all] Error 2
make[2]: se sale del directorio `/usr/src/ZD1211LnxDrv_2_16_0_0′
make[1]: *** [both] Error 2
make[1]: se sale del directorio `/usr/src/ZD1211LnxDrv_2_16_0_0′
make: *** [all] Error 2
Qué podrà ser?
Es muy probable que la versión de kernel que estas usando la (2.6.24) sea incompatible con el driver zd1211. Yo lo compile hasta la versión 2.6.23 sin problemas. En esa versión del kernel que vos estas usando, ya me funciono el modulo zd1211rw que viene en el kernel
, por lo que no necesite compilar más el módulo zd1211. Te comento que el módulo zd1211 es un módulo totalmente distinto al zd1211rw, el zd1211 es el módulo del fabricante (la empresa zydas), el zd1211rw es un módulo escrito por la gente del kernel, por lo que es la mejor opción a la hora de decidir que módulo utilizar, dado que va a tener soporte a lo largo de las distintas versiones que salgan del kernel., y es mas, el modulo zd1211rw anda perfecto, así que para mí fue problema resuelto. Proba utilizar el modulo zd1211rw que viene en el kernel, te lo recomiendo, fijate en el comentario 7 de este post yo puse como hacer para utilizar el módulo que viene en el kernel a partir de la versión 2.6.24. Suerte y cualquier cosa volvé a consultarme, no hay drama. Saludos
Maxi,
Gracias por la respuesta. Te cuento lo que hice.
Bueno, en principio, no creo que haya quedado basura luegod el intento de compilacion fallido, asique hice de cuenta que nada pasó y que mi kernel tiene el rw (el driver no propietario).
copie el firmware a /lib/firmware y lo descomprimi con un tar. Luego hice lo que dice en el punto 7..en lista negra no está…y cuando hago modprobe zd1211rw no me tira ningun error.
Luego reinicie y como vi que no me la reconocia en las redes modifiquè el archivo network interfaces con lo que dice en tu guia peor cuanod reinicio se me traba ubuntu…asique por consola borre las lineas agregadas y ahora anda pero sigo sin poder hacerla funcionar.
Algo que me pueda estar olvidando de hacer?
Saludos!
Maxi,
Acabo de instalar ubuntu 8.10 con el kernel 2.6.27 y sigue sin reconocermelo !! estoy paranoico… voy a tener que ver cómo empiezo de nuevo…
Saludos