Configurar la interfaz inalámbrica para que use ndiswrapper(anulando el modulo utilizado por el núcleo)amd64

Publicado el 25 octubre 2010 por Dsalvesp
Nota: Estoy realizando esta práctica con un netbook Eee PC 1008p Karim Rashid Collect
Ndiswrapper: Analiza el hardware, carga los drivers de Windows y le pone una interfaz para que lo entienda el Kernel de Linux, en lenguaje humano, utiliza los drivers de Windows para poder tener conexión wifi en nuestro equipo Linux(Debian Squeeze en mi caso).
Solo es conveniente utilizarlo cuando no hay otra alternatíva, ya que no se obtienen todas las funcionalidades
de una tarjeta Wifi.
Cabe aclarar, que a mi me funciona la wifi en Debian, por eso he tenido que anular la carga del modulo por defecto.
Es una buena práctica, así que voy a mostrar como hacerlo:
Debemos conocer nuestra versión del núcleo:
#uname -a
Ahora instalamos las cabeceras para nuestra versión del núcleo, en mi caso he descargado las cabeceras para 32 y 64 bits:
#aptitude install linux-headers-x.xx.x-all-amd64
#aptitude install linux-headers-x.xx.x-all
Vemos que están instaladas las cabeceras
ls /usr/src
Instalar aplicaciones de espacio:
#aptitude install ndiswrapper-utils-1.9
Si quisieramos mantener esta aplicación en nuestro equipo despues de actualizar el núcleo, debemos descargar
tambien el paquete:
#aptitude install ndiswrapper-dkms
Instalar el paquete module-assistant desde los repositorios:
#aptitude install module-assistan
Configurar:
#module-assistant
Elejímos la opción "PREPARE".
A continuación seleccionamos el paquete de módulo/fuente con la opción "SELECT".
Seleccionamos "ndiswrapper".
Ahora toca compilar los paquetes del módulo para el núcleo actual con la opción "BUILD".
El siguiente paso es Instalar los paquetes para el núcleo actual con la opción "INSTALL".
Ya lo tenemos instalado.
*Es importante aclarar que si estais utilizando apt-get o aptitude en otro terminal, no podréis llevar a cabo la instalación completa.*
Ahora toca descargarse el driver de la inalambrica para Windows(.inf) y el archivo .sys, en mi caso he utilizado Driver Genius para hacer un BackUp de mis drivers en Windows 7(BackUp Normal), y los he sacado de ahí.
El driver utilizado en mi caso es: netathwx.inf
Antes de trabajar con ndiswrapper, debemos agregar a una lista negra el modulo utilizado por nuestra tarjeta Wireless.
Hacemos un:
#ifconfig
Vemos el nombre de nuestra interfaz de red, en mi caso es la wlan0.
Para ver el modulo utilizado, ejecutamos
#basename `readlink /sys/class/net/wlan0/device/driver/module`
|-> Este es el nombre de mi interfaz Wireless
Este es el resultado:
ath9k
Bien, ahora toca agregarlo a la lista negra, la cual se encuentra en /etc/modprobe.d/blacklist.conf. La sintaxis utilizada es muy facil, solo hay que mirar los modulos que ya están anulados en el fichero:
#Wireless(wifi)
blacklist ath9k
Así queda mi entrada en la blaklist.
*Debemos reiniciar el equipo para que se guarden los cambios*
Como vemos ya no podemos visualizar las redes wifi que nos rodean, y si hacemos un "#ifconfig" vemos que no aparece la interfaz de red.
Pues nada, a intentar que ndiswrapper realize su papel. Para cargar el driver de Windows, debemos escribir en el terminal el siguiente comando:
#ndiswrapper -i [nombre del archivo .inf] ---> *Debemos estar en el directorio donde se encuentra el archivo o escribir la ruta*
Una vez instalado, cargamos el modulo al sistema:
#depmod -a
#modprobe ndiswrapper
Configuramos modprobe para que se cargue ndiswrapper cuando el interfaz de la tarjeta wireless este activada:
#ndiswrapper -m
Si queremos configurar nuestro sistema para que al arrancar cargue ndiswrapper, abrimos y editamos el siguiente archivo:
#nano /etc/modules
Añadimos ndiswrapper al final del archivo y guardamos.
Es posible que no tengamos la interfaz de red levantada. Para corroborarlo hacemos:
#iwconfig o #ifconfig
Si no está levantada, lo hacemos nosotros:
#ifup wlanX o #ifconfig wlanX up(en mi caso es wlan0).
Si hemos hecho todo correctamente, deberíamos tener nuestro modulo ndiswrapper cargado en memoria para poder utilizar nuestra tarjeta wifi. Para verificarlo, hacemos:
#lspci -v
Este es el resultado de efectuar este comando:
02:00.0 Network controller: Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express) (rev 01)
Subsystem: Device 1a3b:1089
Flags: bus master, fast devsel, latency 0, IRQ 17
Memory at fbff0000 (64-bit, non-prefetchable) [size=64K]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit-
Capabilities: [60] Express Legacy Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [140] Virtual Channel
Capabilities: [160] Device Serial Number 00-15-17-ff-ff-24-14-12
Capabilities: [170] Power Budgeting
---------------------------------
Kernel driver in use: ndiswrapper |---> Vemos como el driver utilizado es el ndiswrapper
---------------------------------
Ahora debemos corroborar que captamos las redes inalámbricas. Este paso, como buenos administradores que somos lo haremos por línea de comandos:
#iwlist scan
Está es parte de la salída del comando:
wlan0 Scan completed :
Cell 01 - Address: 00:21:91:56:88:CC
ESSID:"1asir"
Protocol:IEEE 802.11g
Mode:Managed
Frequency:2.422 GHz (Channel 3)
Quality:50/100 Signal level:-64 dBm Noise level:-96 dBm
Encryption key:on
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
12 Mb/s; 24 Mb/s; 36 Mb/s; 9 Mb/s; 18 Mb/s
48 Mb/s; 54 Mb/s
Extra:bcn_int=100
Extra:atim=0
IE: WPA Version 1
Group Cipher : TKIP
Pairwise Ciphers (1) : TKIP
Authentication Suites (1) : PSK
Como vemos, tenémos recepción.
Fin.
*Si instalas un controlador para la versión de 64 bits, el controlador debe ser de Windows de 64 bits o sino no funciona.*