jueves, 30 de septiembre de 2004

Prism driver (sigue)

En un artículo de ayer comentaba que casi había hecho funcionar el driver prism2_usb para linux en mi ordenador.

Hoy lo he conseguido. Lo único que sigue sin funcionar es el wep (tendré que comprobar si estoy usando una clave incorrecta... pero el caso es que mi ordenador me dice "conectado") [adición: *CREO* que mi error tuvo que ver con la incapacidad para activar una conexión con WEP. Hoy lo he probado con y sin WEP, y con WEP se conecta y recibe paquetes, pero no los sabe enviar (ping -I IP_wlan a un router conectado también a eth0 me produce recepción de paquetes en wlan, pero los envía desde eth0)].

Estoy usando el driver que conseguí en la página de un fabricante (no recuerdo ahora cuál) de tarjetas con chipset Zydas, como mi Edimax 7115U. El driver no se diferencia demasiado (sospecho) del resto de drivers prism, excepto quizá por la necesidad de incluir un parche para el USB. Otros links recomendables están aquí.

Compilé el núcleo con soporte para wireless y módulos y luego compilé los módulos. Hasta ahí, lo que hice no se diferencia demasiado de lo que había hecho las primeras veces que lo intenté, en julio (excepto quizá por las dificultades que por aquel entonces tenía para compilar, pues estaba usando un knoppix). Añadí un alias wlan0 prism2_usb en /etc/modules.conf. Esto tampoco se diferenciaba mucho. Activé el debugging de usb, pero creo que eso no tiene ninguna importancia (excepto, quizá, en los mensajes de error de transporte que da el driver prism).

Creo que la diferencia la supuso el hecho de que había tenido un cierre limpio de Windows antes de arrancar linux, y que arranqué con la mochilita usb puesta.

Secuencia de uso:

  1. modprobe prism2_usb prism2_doreset=1 (he comprobado que modprobe wlan0 prism2_doreset=1 funciona peor; cargar el módulo mediante /etc/init.d/wlan start tampoco funciona biItalicen)
  2. modprobe uhci
  3. Si el kernel responde "usb device not accepting new address", probar:
    1. modprobe -r prism2_usb
    2. modprobe -r uhci
    3. modprobe prism2_usb prism2_doreset=1
    4. modprobe uhci
    5. Si lo anterior produce el mismo error, suele merecer la pena apagar completamente, (en mi portátil quito el cable) esperar unos segundos y volver a arrancar.
  4. Si lo anterior no produjo un error "usb not accepting...", tiene que aparecer un mensaje que indica la detección de una tarjeta prism. Si incluye un aviso sobre el boot del driver Zydas, y en este se refljea un error de usb_bulk_transport, desactívese la tarjeta y vuélvase a activar. Al contrario que lo reflejado en el punto 3, este error suele poder resolverse sin reiniciar.
    1. ifconfig wlan0 down (en caso de que hubiéramos llegado a tener una interfaz activa)
    2. modprobe -r prism2_usb
    3. modprobe -r uhci
    4. modprobe prism2_usb doreset=1
    5. modprobe uhci
  5. Ahora, actívese la tarjeta con alguno de estos dos métodos:
    • /etc/init.d wlan start (hotplug usa este método. Es el método más sencillo, porque se conecta al punto de acceso almacenado en la configuración de /etc/wlan.conf y usa sus configuraciones de conexión WEP almacenadas en /etc/wlancfg-XXXX.)
      Si wlan start produce un error, volver al punto 4 y probar wlanctl-ng.
    • wlanctl-ng
      1. wlanctl-ng wlan0 lnxreq_ifstate ifstate=enable
      2. wlanctl-ng wlan0 lnxreq_autojoin ssid="SSID_del_Punto_de_Acceso" authtype=opensystem
      3. Si wlanctl-ng indica que no ha encontrado el dispositivo, puede que simplemente falte el alias en /etc/modules.conf, pero lo más probable es que el driver no haya reconocido nuestra tarjeta. Recomiendo apagar y probar otro día.
  6. Asegúrate de que tu tarjeta haya conectado (mensaje del kernel "linkstatus=CONNECT") antes de proseguir. Con iwconfig (utilidad no se distribuye con wlanconf-ng sino con las wireless tools) puedes averiguar si estás conectado y ver la potencia de la señal.
  7. Si lo anterior ha funcionado, sólo queda configurar la red:
  8. ifconfig wlan0 IP_de_mi_wireless_lan netmask Máscara_de_mi_red_wireless up
  9. route add -net IP_de_mi_red netmask Máscara_de_mi_red gw IP_de_mi_Punto_de_Acceso
  10. ping IP_de_mi_Punto_de_Acceso
  11. Si Ping no funciona, puede ser debido a dos causas:
    • El punto de acceso wireless está usando una clave wep. Solución: Volver al punto 5 y usar /etc/init.d/wlan start para poder indicar una configuración wep (os juro que he intentado hacerlo con wlanctl-ng y me he vuelto loco).
    • Si el punto de acceso está configurado para aceptar sólo nuestra dirección física ethernet (MAC Address), el problema puede deberse a que el driver no haya ajustado correctamente nuestra dirección ethernet.
      1. ifconfig wlan0
      2. Si la dirección hardware (HWAddress) coincide con la MAC Address de nuestra tarjeta (usualmente está escrita en un papel pegado a ella), salir al punto 11 de la lista principal.
      3. ifconfig wlan0 down
      4. ifconfig wlan0 hw ether Dirección_mac_de_la_tarjeta
      5. ifconfig wlan0 up
      6. Volver al punto 8 de la lista principal
  12. Si las cosas funcionan a esta altura, enhorabuena. En caso contrario (es mi caso cuando uso mi punto de acceso con Wep y restricción de direcciones mac), cambia las configuraciones de tu punto de acceso. Así los vecinos podrán ver tu disco duro.

No hay comentarios: