Para conseguir solucionarlo debemos de aplicar al kernel un parche llamado "Compact wireless", cuya lista de versiones podemos encontrar pinchando aquí. A continuación voy a explicar cómo he solucionado yo este problema en mi Linux Mint 11 Katia (o lo que es lo mismo, un Ubuntu 11.04 Natty Narwhal) con un Kernel 2.6.38-8 Aunque el parche se encuentra explicado en varias webs me he decidido a usar esta como referencia, pese a que no usa la última versión de parche. Por lo que yo sé funciona perfectamente en ubuntu 10.04 Lucid Lynx, ubuntu 10.10 Maverick Meerkat y ubuntu 11.04 Natty Narwhal. Para parchear ubuntu 11.10 simplemente debemos cambiar de versión del parche.
Antes de aplicar el parche debemos de tener claro estas cosas:
1-El parche se ejecuta sobre la versión del kernel que tenemos instalada, de forma que si actualizamos el kernel nos encontraremos con que el programa vuelve a repetir el mismo error. A causa de esto podemos hacer unas de las dos siguientes cosas. La primera opción, la más sencilla, consiste en actualizar el kernel pero no borrar el anterior. De esta manera cada vez que queramos usar aircrack-ng podemos arrancar el sistema desde el viejo kernel. La segunda opción consiste en ir parcheando cada nueva versión del kernel que salga. En el caso del kernel 2 nos encontraremos con pocas o ninguna versión nueva, pero para los kernels 3 sí que hay actualizaciones más frecuentes con lo que habría que estar parcheándolo casi constantemente si queremos tener el último kernel parcheado.
2-El parche tarda un buen rato en aplicarse. No lo he cronometrado pero puede ser en torno a quince minutos en los que veremos que se suceden operaciones en nuestra terminal. Todo esto es normal y debemos de esperar al final del proceso con la confianza de que estamos haciendo lo correcto.
3-Antes de empezar debemos de estar seguros de tener instalados los headers. En caso contrario el parche no podrá realizarse correctamente. Para instalarlos deberemos ejecutar el siguiente comando desde nuestra terminal:
sudo apt-get install linux-headers-generic
Después de estas consideraciones previas paso a explicar el proceso que he realizado y que por lo menos es válido para ubuntu 10.04 Lucid Lynx, ubuntu 10.10 Maverick Meerkat y ubuntu 11.04 Natty Narwhal. Introducimos en nuestra terminal los siguientes comandos:
wget http://www.orbit-lab.org/kernel/compat-wireless-3.0-stable/v3.0/compat-wireless-3.0-rc4-1.tar.bz2 && tar -jxf compat-wireless-3.0-rc4-1.tar.bz2
cd compat-wireless-3.0-rc4-1
wget http://patches.aircrack-ng.org/channel-negative-one-maxim.patch
patch ./net/wireless/chan.c channel-negative-one-maxim.patch
Ahora es conveniente que editemos con gedit para comprobar el archivo. Lo haremos introduciendo este comando en la terminal
gedit scripts/update-initramfs
En el caso de que encontremos una línea que está al principio y que pone esto: "KLIB=/lib/modules/2.6.31-wl/build" debemos sustituirla por esto otro. "KLIB=/lib/modules/$(uname -r)/build". En mi caso, que como dije es el basado en ubuntu 11.04, no he tenido que rectificar nada ya que el único texto que había en el fichero era el segundo.
A continuación ponemos en la terminal:
make && sudo make install && sudo make unload
Esperamos los diez minutos que antes comentaba y, cuando termine, escribimos la última línea
sudo reboot
Hecho esto el ordendor debería reiniciarse y ahora se arrancará con el kernel parcheado. Lo que nos permitirá que aircrack funcione sin problemas.
En el caso de que estemos usando un Ubuntu 11.10 Oneiric Ocelot podemos seguir el proceso descrito aquí y que también se puede ver en el vídeo que está al final de este artículo. Es el que explico a continuación:
Creamos un fichero de texto (por ejemplo con gedit) y ponemos mtodas estas líneas:
#!/bin/bash
sudo apt-get install -y linux-headers-$(uname -r) patch
wget http://www.orbit-lab.org/kernel/compat-wireless-3.0-stable/v3.0.0/compat-wireless-3.0-2.tar.bz2
tar -jxf compat-wireless-3.0-2.tar.bz2
cd compat-wireless-3.0-2/
wget http://patches.aircrack-ng.org/channel-negative-one-maxim.patch
patch ./net/wireless/chan.c channel-negative-one-maxim.patch
make
sudo make install
sudo make unload
sudo reboot
Le damos a guardar. Después nos ponemos encima del fichero, lo renombramos con la extensión sh (por ejemplo: nombredelarchivoqueramos.sh) y le concedemos permisos (botón derecho del ratón, propiedades, permisos y seleccionamos "permitir ejecutar el archivo como un programa").
Después de esto sólo tenemos que pinchar en el fichero que hemos creado y él código que hemos intorducido se encargará de parchear todo de forma automática. El proceso es similar al descrito en la anterior opció del artículo, sólo que se realiza todo de golpe. Podemos ver cómo se hace de esta última forma en este vídeo:
2 comentarios:
Como comentario realice el procedimiento, pero a manera de nota una vez descargados los patch apaquen la targeta inhalambrica para que no les marque errores en la copilación debido a que marca varios warning xmodule en uso... OK termino excelente.
Funciona mi tarjeta usb ALFA con el chip RTL8187L lo reconoce pero ojo la targeta interna de mi lap muerta no la detecta el kernel al reiniciar y por lo tanto las banderas del dispositivo al ejecutar
sudo ifconfig wlan0 up
no se encuentran, o lo que es igual no funcionan...
tengan cuidado ahora me encuentro intentando solucionar esto con el driver de mi targeta y ndiswrapper o recompilando un nuevo kernel a patin..
Saludos... unomasloco
Reinstala el kernel y se te va a volver todo para atrás (se quita el parche).
Y si no te anda la wifi interna con esa versión de compat wireless puedes ver si hay otra que sí te ande.
Con las instrucciones que están acá lo que hacemos es instalar drivers wifi nuevos (de un kernel más nuevo) pero en vez de instalarlos con el kernel más nuevo los instalamos en el que ya tenemos.
A ese proceso se le llama "backport".
Asi que lo que estamos haciendo acá es un backport de los drivers wifi.
Publicar un comentario