Portada » Hardware »

Guía completa de solución de problemas en ndiswrapper

(1 mensaje, responder)

JPablos
(Miembro)

Publicado hace 1 año    

Guía completa de solución de problemas ndiswrapper

Introducción

Esta guía tiene como objetivo diagnosticar y resolver los problemas más comunes que impiden que ndiswrapper funcione, incluso después de que parece estar instalado y configurado correctamente.

Esta guía asume que ha seguido las instrucciones de ndiswrapper en alguna parte y hasta donde usted sabe ha completado todos los pasos correctamente, pero aún así es incapaz ya sea de ver las redes inalámbricas (mediante el comando "iwlist scan") o, hacer que el sistema detecte su interfaz inalámbrica del todo. (Si usted puede ver las redes pero no consigue conectarse por alguna razón, los pasos 1 a 5 pueden serle útiles, aunque no fueron escritos específicamente para su situación.) Es probable que descubra el origen de su problema y sea capaz de resolverlo.

Si necesita ayuda para empezar con ndiswrapper, consulte la documentación de la comunidad

https://help.ubuntu.com/community/WifiDocs/Driver/Ndiswrapper

o, haga una búsqueda en Google.

1. Comprobar si ndiswrapper reconoce la tarjeta inalámbrica

Ndiswrapper no funcionará hasta que los controladores de Windows hayan sido debidamente instalados y sean los adecuados para su tarjeta inalámbrica. Puede ejecutar el comando:

sudo ndiswrapper -l

para saber si reconoce la tarjeta correctamente (asegúrese de que su tarjeta inalámbrica esté conectada y encendida antes de ejecutar esta orden). Si recibe un mensaje como:

oem6 : driver installed
device (8086:4222) present (alternate driver: iwl3945)
prisma02 : driver installed

ndiswrapper ha detectado su tarjeta correctamente y, ha instalado los correspondientes drivers de Windows para ello. En ese caso, vaya al paso # 2. Si se menciona un "controlador alternativo" (iwl3945 en el ejemplo anterior), y no lo ha puesto en la lista negra (blacklist), es posible que desee hacerlo ahora; vaya al paso # 3 para obtener instrucciones sobre cómo poner en la lista negra de módulos los que pueden interferir con ndiswrapper. (Tenga en cuenta que el mensaje "controlador alternativo" no significa necesariamente que un controlador en conflicto esté causando que ndiswrapper no funcione. Para determinar con seguridad si un controlador en conflicto es el problema, vea la salida del comando lshw -C Network; véase el paso # 3 para más detalles.)

'invalid driver!' message

Si 'ndiswrapper -l' se queja acerca de un controlador no válido, lo más probable es que sea incapaz de encontrar un archivo.sys correspondiente al archivo.Inf que ha cargado en ndiswrapper. El archivo.sys (que suele tener, aunque no siempre, el mismo nombre que el archivo.inf), necesita estar en el mismo directorio que el archivo.Inf al instalar el controlador de Windows. Así que si ndiswrapper te está diciendo que un controlador no válido está instalado, intenta instalar el controlador de Windows de nuevo, y asegúrese de que el archivo.sys está en la misma carpeta que el archivo.inf que instale en ndiswrapper.

Si 'ndiswrapper -l' reporta “driver installed” pero no menciona “device (XXXX:XXXX) present” o un mensaje “invalid driver!”, entonces algo está mal: lo más probable es que haya instalado el driver de Windows que no corresponde. La forma más confiable para localizar el driver de Windows adecuado para su dispositivo inalámbrico, es buscar en el sitio de ndiswrapper

SourceForge.net: ndiswrapper/index.php?title=Main_Page,

para el ID de dispositivo de la tarjeta inalámbrica y el modelo de chipset. Para obtener el ID de dispositivo y modelo de chipset de su tarjeta, ejecute el comando:

sudo lspci -nn

o, si su tarjeta inalámbrica es un dispositivo USB externo, utilice:

sudo lsusb

La salida de los comandos lspci -nm o lsusb debe incluir una línea que describe su tarjeta inalámbrica (tenga en cuenta que la línea de referencia no necesariamente incluye la palabra " wireless -inalámbrico- ", sino que sólo podrá mencionar "ethernet" o "network communications device -dispositivo de red de comunicaciones-" o algo similar), que contiene el “device ID“ de su dispositivo de red. Por ejemplo, aquí hay una línea para una tarjeta PCI inalámbrica Atheros, con la información importante en negrita:

01:01.0 Ethernet controller [0200]: Atheros Communications Inc. AR2413
802.11bg NIC [168c:001a] (rev 01)

y aquí está la línea de una tarjeta inalámbrica USB de Netgear WG111v2 (en este ejemplo, el modelo de chipset no se menciona ... pero siempre, por lo menos, debe ver el número de identificación del dispositivo):

Bus 001 Device 003: ID 0846:4240 NetGear, Inc. WG111 WiFi (v2)

Ahora solo resta hacer la búsqueda en Google:

ndiswrapper.sourceforge.net [device ID] o site:ndiswrapper.sourceforge.net [chipset name]

En este vínculo, en inglés, del sitio del creador del “Cómo...?” hay relacionadas varias búsquedas de drivers para distintas tarjetas, tanto pci como USB:

Vínculo: Burn the Sorbonne

Si su tarjeta inalámbrica es muy nueva, puede que no encuentre ninguna referencia a ella en el sitio de ndiswrapper. Si ese es el caso, intente utilizar los controladores de Windows que se incluyen en el CD con la tarjeta inalámbrica, o descargar los controladores desde el sitio del fabricante. Podría tener que probar diferentes versiones de los controladores de Windows antes de encontrar uno que funcione.

¿Y si los controladores de Windows están dentro de un archivo exe.?

Cada vez más, los proveedores de tarjetas inalámbricas liberan los controladores de Windows en formato .exe, lo que hace difícil extraer los archivos .inf y .sys, que tiene que cargar ndiswrapper (cargar el .exe no funcionará). En Linux, a veces se puede extraer un .exe, descomprimiendo los paquetes, para ello se usan los comandos "unzip” o, “cabextract” (este tiene que ser instalado por primera vez con sudo apt-get install cabextract), o utilizar 7-zip en Windows para abrir el .exe. Si eso no funciona, intente ejecutar el archivo instalador .exe usando Wine, en algún momento debe extraer los archivos del controlador en un directorio, momento en que usted puede copiarlos a otra parte, entonces matar la instalación (el instalador de Windows no hará su trabajo de la tarjeta inalámbrica en Linux, incluso si parece que se instale todo correctamente, no te molestes en intentarlo). En el peor de los casos, instalar el paquete .exe en un equipo Windows, los archivos .inf y .sys que necesita deben ser copiados en c: \ windows \ system32 (o system64), desde dónde puedes copiarlos a tu sistema Linux.

Forzar el reconocimiento de dispositivos:

En casos raros, ndiswrapper no reconoce las tarjetas inalámbricas aún cuando los drivers correctos de Windows están instalados. Si esto sucede, puede forzar ndiswrapper para tratar de utilizar un controlador para un determinado dispositivo dado con el comando
sudo ndiswrapper-a device-id driver, por ejemplo:

sudo ndiswrapper -a 0846:4240 netwg111

Tenga en cuenta que existe una pequeña posibilidad de que forzar a ndiswrapper para utilizar el controlador incorrecto puede causar daño físico a su tarjeta inalámbrica, por lo que no debería utilizar el argumento -a, a menos que tenga una buena razón para creer que el controlador de Windows que usted está seleccionando es el correcto para su tarjeta, a pesar de que ndiswrapper no está de acuerdo.

2. Comprobar arquitectura de la máquina

Una advertencia importante ndiswrapper, y que muchos tutoriales dejan de mencionar, es que la arquitectura de los controladores de Windows que se utilizan con ndiswrapper debe coincidir con la de su núcleo de Linux - sin excepciones. En otras palabras, si usted está funcionando con Ubuntu de 64 bits, los controladores de Windows que utilice deben ser construidas para Windows de 64-bits. Si ndiswrapper -l informa "device present", pero aún no puede poner su tarjeta inalámbrica a trabajar, esta es la causa más probable: -ndiswrapper todavía informa "dispositivo presente"-, incluso si los controladores de Windows no son de la arquitectura correcta.

Si usted no sabe si su núcleo es de 32 o 64 bits, ejecute el comando:

uname -m

Si la salida es "i686" (o posiblemente "i586" o "i486" en máquinas más antiguas), tiene un núcleo de 32-bit, y si es "x86_64," está utilizando de 64-bit. Si la salida es otra cosa, usted no tiene un procesador compatible con x86 y no se puede utilizar ndiswrapper (ya que Windows no es compatible con otras plataformas de arquitectura x86).

Si ha instalado los drivers de Windows para la arquitectura equivocada, busque los adecuados e instálelos (usted tendrá que quitar los inválidos primero con el comando [i]sudo ndiswrapper -r driver-name[/i]). Consulte el paso # 1 arriba para obtener información sobre la ubicación de los controladores de Windows adecuados.

Tenga en cuenta que para algunas tarjetas inalámbricas, los controladores de Windows de 64-bit nunca fueron liberados. Si este es el caso de su dispositivo y desea utilizar un kernel de Linux 64-bit, probablemente no tenga suerte. Usted podría presentar una queja ante su proveedor de tarjeta inalámbrica y la solicitar drivers de Windows de 64-bit, o podría comprobar para ver si hay algún controlador nativo de Linux que soporte su tarjeta. De lo contrario, su única opción es cambiar a un núcleo de 32-bit.

3. Resolver los conflictos de competencia de controladores inalámbricos

ndiswrapper-l se ve bien y estás seguro de que los ontroladores de Windows están diseñados para la arquitectura correcta, pero todavía no puedes conseguir que el sistema reconozca el dispositivo inalámbrico, puede ser debido a que otro controlador inalámbrico esté tratando de controlar la tarjeta . Algunos drivers de tarjetas inalámbricas nativos de Linux (muchos de los cuales están integrados en el kernel de Ubuntu Linux por defecto) intentarán controlar el dispositivo a pesar de que no sean capaces de hacerlo con éxito.

Para comprobar si otro conductor está tratando de reclamar su dispositivo, utilice el comando lshw -C Network. He aquí un ejemplo de la salida:

*-network:0
description: Wireless interface
product: AR2413 802.11bg NIC
vendor: Atheros Communications Inc.
physical id: 1
bus info: pci@0000:01:01.0
logical name: wifi0
version: 01
******: 00:19:e0:67:8a:f1
width: 32 bits
clock: 33MHz
capabilities: pm bus_master cap_list logical ethernet physical wireless
configuration: broadcast=yes driver=ath_pci ip=192.168.1.3 latency=168 maxlatency=28 mingnt=10
module=ath_pci multicast=yes wireless=IEEE 802.11g]

en negrita la información sobre el controlador (módulo) que controla el dispositivo encuestión (si no ve los controladores o módulos mencionados y la primera línea de lshw menciona UNCLAIMED, vaya al paso # 4. En el ejemplo anterior, el controlador es ath_pci, que es un driver nativo de Linux para tarjetas inalámbricas Atheros-based. Otros conductores comunes que pueden entrar en conflicto con ndiswrapper son 'B43' (chipsets Broadcom), "SSB" (Broadcom), "bcm43xx" (Broadcom), "iwl3945" (Intel), "iwl4965" (Intel) y “rt2x00“(Ralink ).

Ndiswrapper no funcionará hasta que le indique al sistema que no utiliza el módulo que está tratando de reclamar la tarjeta. Puede evitar que el sistema cargue los módulos agregándolos a “/etc/modprobe.d/blacklist " (en Ubuntu 9.04 y posteriores, este archivo se llama “/etc/modprobe.d/blacklist.conf” en vez de "blacklist" ). Abra el archivo de lista negra con:

sudo gedit /etc/modprobe.d/blacklist

(O "sudo gedit /etc/modprobe.d/blacklist.conf" si estás usando Ubuntu 9.04 o posterior) y añadir a la parte inferior del archivo una línea a la lista negra cada módulo que desea que el sistema ignore. Por ejemplo, para añadir a la lista negra "ath_pci", agrega la línea:

blacklist ath_pci

A continuación, guarde el archivo y ejecute el siguiente comando:

sudo update-initramfs -k all -u

Reiniciar el sistema. A partir de ahora, el sistema no cargará ath_pci hasta que lo quite de la lista negra, y ndiswrapper debería estar en libertad para reclamar la tarjeta inalámbrica.

Problemas con dependencia de módulos:

De vez en cuando, el sistema carga un módulo a pesar de que está en la lista negra. Esto sucede porque el módulo es una dependencia de otro módulo que no está en la lista negra, por ejemplo, "B44", un controlador de ethernet, que requiere el módulo "ssb", no permitirá que sea descargado, así que tiene que también añadir 'B44' a la lista negra a fin de obligar al sistema a ignorar "SSB".

Si después de un reinicio lshw -C Network todavía muestra un módulo que no sea ndiswrapper reclamando su tarjeta inalámbrica, utilice el comando rmmod para retirar el módulo. Por ejemplo, para quitar de 'SSB':

sudo rmmod ssb

Si el sistema no quiere cargar el módulo debido a problemas de dependencia, le dirá qué módulos están en la raíz de la dependencia, de modo que usted pueda ponerlos en "lista negra" también. Si "SSB" no se puede descargar debido a "B44", por ejemplo, la salida del comando de arriba seria:

ERROR: Module ssb is in use by b44

Entonces podrías poner en lista negra "B44", de acuerdo las instrucciones de arriba (no olvide de ejecutar update-initramfs -k all -u después de editar el archivo /etc/modprobe.d/blacklist) y todo será perfecto (a excepción de que su ethernet puede no funcionar, pero eso es otro tema).

Problemas módulo-alias:

Si todavía encuentra que el módulo en conflicto se carga y, está seguro de que las cuestiones de la dependencia de módulo no son el problema, probablemente se deba a un alias del módulo en cuestión, que también es preciso incluír en la lista negra (gracias a caljohnsmith por señalar esto).

Para saber si el módulo que desea incluír en la lista negra tiene alias, ejecute el comando:

depmod -n | grep alias | grep -v ':' | grep -i [module name]

por ejemplo:

depmod -n | grep alias | grep -v ':' | grep -i p54usb

Listaría los alias del módulo p54usb, un controlador para tarjetas USB inalámbricas basado en Prism. La salida del ejemplo anterior le diría que tiene el p54usb prism54usb alias, por lo que poner en lista negra p54usb sería eficaz, se necesita también añadir la línea prism54usb en la lista negra a su archivo /etc/modprobe.d/blacklist.

4. Comprobar que el módulo ndiswrapper se carga

Si la salida de lshw -C Network para su tarjeta inalámbrica es así:

*-network:0 UNCLAIMED
description: Ethernet controller
product: AR2413 802.11bg NIC
vendor: Atheros Communications Inc.
physical id: 1
bus info: pci@0000:01:01.0
version: 01
width: 32 bits
clock: 33MHz
capabilities: pm cap_list
configuration: latency=168 maxlatency=28 mingnt=10

entonces no hay ningún controlador, incluyendo ndiswrapper, que esté tratando de reclamar la tarjeta. Esto es malo, porque lo que se quiere es que ndiswrapper la reclame. Cuando uno ha hecho todas las comprobaciones anteriores, pero lshw -C Network todavía informa que su tarjeta inalámbrica no es reclamada, la causa más probable es que el módulo ndiswrapper no se está cargando el sistema. Para comprobar si está presente, ejecute el comando:

lsmod | grep ndis

Si el retorno de salida no nos muestra nada, entonces el módulo ndiswrapper no se está cargando por alguna razón. Pruebe a ejecutar este comando para cargarlo:

sudo modprobe ndiswrapper

Luego, espere unos segundos y vea si su tarjeta inalámbrica es detectada. Si es así, muy bien, siga leyendo los pasos para hacer que el ndiswrapper se cargue en el sistema de forma automática. De lo contrario, vaya a comprobar el paso # 5.

Cargando ndiswrapper en el arranque de forma automática:

En Ias últimas versiones de Ubuntu, se supone que ndiswrapper es cargado automáticamente al inicio. Algunas veces sin embargo esto falla. Sí este parece ser el problema, ejecute este comando:

echo 'ndiswrapper' | sudo tee -a /etc/modules

y el problema estaría resuelto. Este comando le indica de forma explícita al sistema que cargue el modulo ndiswrapper al inicio, sin importar nada más.

5. Verificación de la salida del comando dmesg

dmesg imprime los mensajes del kernel. Cuando uno ha hecho todas las comprobaciones anteriores, pero todavía no puede conseguir que ndiswrapper funcione, puede deberse a que algo raro está pasando (por ejemplo, un error en ndiswrapper o el controlador de Windows); dmesg debería proporcionar alguna información sobre el problema. Usted
puede obtener información relacionada con ndiswrapper con el comando:

dmesg | grep -e ndis -e wlan

Una salida normal para la configuración de ndiswrapper funcionando debería ser similar a:

[ 507.517874] ndiswrapper version 1.52 loaded (smp=yes, preempt=no)
[ 507.555668] ndiswrapper: driver net5211 (,05/02/2007,5.3.0.45) loaded
[ 507.969072] ndiswrapper: using IRQ 20
[ 508.055020] wlan0: ethernet device 00:1f:3a:8f:13:96 using serialized NDIS driver: net5211,
version: 0x50003, NDIS version: 0x501, vendor: 'NDIS Network Adapter', 168C:001C.5.conf
[ 508.060224] wlan0: encryption modes supported: WEP; TKIP with WPA, WPA2, WPA2PSK; AES/CCMP with WPA, WPA2, WPA2PSK
[ 508.060642] usbcore: registered new interface driver ndiswrapper
[ 508.139154] ADDRCONF(NETDEV_UP): wlan0: link is not ready

Sí dmesg si no menciona en absoluto ndiswrapper, ejecute sudo modprobe ndiswrapper y vuelva a intentarlo dmesg | grep -e ndis -e wlan de nuevo, o vuelva a comprobar el paso # 4 para verificar que el módulo ndiswrapper es cargado por el sistema.

Si su salida de dmesg contiene mensajes de error relacionados con ndiswrapper, trate de googlearlos (dejar de lado los números entre paréntesis al comienzo de cada línea, que son marcas de tiempo y hacer su búsqueda en Google) para ver si puede encontrar una
solución. Desafortunadamente, es imposible aquí para cubrir todo tipo de problemas con ndiswrapper que dmesg pueda revelar, pero Google puede ser capaz de ayudar.

Además, a continuación algunos de los mensajes de error más comunes que puede encontrar en dmesg, y su significado:

Si dmesg se queja de la "bad magic", probablemente se han instalado los controladores para una arquitectura incorrecta (por ejemplo, los controladores de 32-bit de Windows en Linux de 64 bits). Volver al paso # 2 para comprobar.

Si dmesg menciona algo como "radio disabled by hardware" es probable que tenga que encender su tarjeta inalámbrica, vea el paso #6, abajo.

Si dmesg contiene una gran cantidad de errores que comienzan con "unknown symbol",probablemente significa que el controlador de Windows que instaló está dañado, o que a ndiswrapper no le gusta por alguna razón. Puede ayudar el reinstalar el controlador de Windows, o elegir una versión diferente del mismo (por ejemplo, pruebe el controlador de Windows 2000 en lugar del XP, o probar la versión 1.0 del controlador en lugar de la 2,0)
.
A veces se da el caso de que un controlador de Windows no está de acuerdo con ndiswrapper, aunque debería. También puede suceder que los controladores de Windows que ha descargado se dañaran durante la descarga, así que descargarlos de nuevo (y comprobar la suma md5, si es posible) puede ayudar.

Una vez más, si su mensaje de error no está en la lista anterior, recuerde: Google (y, en su defecto, los foros de Ubuntu) son sus amigos.

6. Asegúrese que su tarjeta inalámbrica esté encendida

Algunos ordenadores, especialmente portátiles, tienen interruptores para activar y desactivar las tarjetas inalámbricas. Por lo general, esto es un botón físico en el exterior de la computadora, o un conmutador de software que alterna usando combinaciones de teclas, como función + F2. Con más frecuencia de lo que se piensa, los problemas de conexión inalámbrica se reducen a que la tarjeta se encuentra físicamente incapacitada, así que sí lo expuesto antes no le ha ayudado, a pesar de todo, asegúrese de que su tarjeta inalámbrica esté encendida.

En raros casos, su tarjeta inalámbrica (o el bus PCI que ella usa) pueden estar desactivados en el BIOS del equipo por alguna razón, por lo que sí parece que no puede obtener que el sistema detecte algún dispositivo inalámbrico del todo (aún aquéllos “unclaimed” en su salida de lshw -C Network) revise la BIOS.

7. Reinstalar ndiswrapper desde el código fuente

La mayoría de la gente usa los repositorios de Ubuntu (Synaptic o "apt-get") para instalar ndiswrapper utilizando un paquete de Debian. A veces, es útil para compilar el programa desde el código fuente, lo que garantizará que la construcción de ndiswrapper que está utilizando coincide con las características de su sistema lo más exactamente posible.

Compilar desde el código fuente por lo general también le da una versión más actualizada de ndiswrapper que la disponible en los repositorios. Para compilar ndiswrapper desde el código fuente, siga estos pasos:

En primer lugar, quitar la versión de ndiswrapper en Ubuntu, escribiendo:

sudo apt-get remove --purge ndiswrapper-common

A continuación, descargue la última versión estable del código fuente de ndiswrapper de la página de ndiswrapper y guárdelo en su escritorio (si no tienes una conexión a Internet por cable disponible para este paso, descargue el ndiswrapper.Tar.gz en otro equipo y transferirlo a través de una memoria USB o CD).

Nota: Ubuntu 8.10 (Intrepid) los usuarios deben descargar la versión 1.54 o posterior de ndiswrapper, con las versiones anteriores no se compilará en Intrepid.

Por último, extraer el código fuente y compilarlo (estos comandos suponen que el ndiswrapper.Tar.gz se guardó en el escritorio):

cd ~/Desktop
sudo -s
apt-get install build-essential
tar -xzvf ndiswrapper*
cd ndiswrapper*
make
make install

Después de eso, tendrá que volver a instalar los controladores de Windows en ndiswrapper, a continuación, reiniciar el sistema una buena medida. Su tarjeta inalámbrica esperamos, estará funcionando.

8. Nada de lo expuesto antes le ha ayudado?

Si usted ha pasado por todas las comprobaciones anteriores y todavía no sabe por qué ndiswrapper no funciona, lo primero que debe hacer es googlear mucho por: ndiswrapper + ubuntu + [your wireless card name] o ndiswrapper + ubuntu + [your wireless card device ID]. En muchos casos, esto conducirá a una solución: recuerde, usted no es, probablemente la primera persona en el mundo que tiene problemas con ndiswrapper, con su tarjeta inalámbrica en particular (aunque es posible, sí su tarjeta es realmente nueva).

Puede haber algo de hacking especiales requeridos para conseguir que funcione, y que debe estar documentado en algún lugar de Internet.

Fuente original: Comprehensive ndiswrapper troubleshooting guide

Espero que esta traducción libre del artículo original en inglés pueda ser de utilidad a otros que como yo hemos intentado hacer funcionar nuestra conexión inalámbrica, en mi caso ha funcionado perfectamente.


 
 

Responder

Debes Identificarte para publicar.

Feed RSS para este tema


... y toda la actualidad de Ubuntu en BlogUbuntu.com
ForosUbuntu.com , 2008-2010
Los foros de Ubuntu en español
Este sitio web es propiedad de David G. V. | Normas de uso de los foros | Licencia de contenidos
Fondos y Wallpapers / Estrenos, Cine, Películas y Cartelera / Desarrollo web y Webmasters / Linux Ubuntu