
Hace un par de días me decidí a instalar la última versión del S.O. Ubuntu (Hardy Heron 8.04) en mi nuevo portátil (HP Compaq Presario modelo V6518ES). Tras liberar espacio e instalarlo en cuatro particiones distintas (/, /boot, /home, swap) comprobé que Ubuntu no reconocía la tarjeta de red inalámbrica que tenía el portátil, es decir, no reconocía mi Broadcom Corporation BCM94311MCG wlan mini-PCI (rev-02) aunque, según lo leído por ahí, este mismo problema puede hacerse extensible a todas las tarjetas wlan de la marca Broadcom Corporation BCM943XX.
Tras buscar por internet e intentar un par de soluciones probé la siguiente solución que me dio resultado. Como la página está en inglés y puede ser útil tenerla en español voy a resumir/traducir los pasos que realicé por si alguien más tiene el mismo problema y no domina la lengua de Shakespeare.
Instruccciones
No se trata de un script por lo que debes introducir los comandos uno por uno en un terminal. Ten en cuenta que se puede copiar y copiar online y así se facilitaría tu trabajo. (Para copiar del navegador pulsa CTRL+C y para pegarlo dentro del terminal pulsa CTRL+MAYUS+V).
Paso 1: Instalar ndiswrapper y llevar a blacklist el driver nativo
Teclea los siguientes comandos uno por uno en un terminal de tu equipo:
echo 'blacklist bcm43xx' | sudo tee -a /etc/modprobe.d/blacklist
sudo apt-get install ndiswrapper-utils-1.9
mkdir ~/bcm43xx; cd ~/bcm43xx
Paso 2: Bajar y extraer los drivers
Lo primero que necesitamos es identificar que chipset tenemos, para ello ejecuta en un terminal:
lspci -n | grep '14e4:43'
Tras lo cual obtendrás algo como esto (en mi caso):
xx:xx.x xxxx: 14e4:4311 (rev 02), donde x puede ser cualquier número según tu equipo pero lo que nos interesa es lo que viene después y que está en negrita.
En mi caso tengo el Chipset PCI ID 14e4:4311 (rev 02). Este post, por tanto, seguirá con los pasos a seguir para este Chipset (Step 2ª). En el caso de que tú tengas cualquier otro Chipset, con esa información debemos irnos a la página del post original y buscar el identificador en la columna Chipset PCI ID y seguir los pasos en el orden que se indique en la tabla correspondiente con la información que aparece bajo la tabla.
Paso 2a: Driver sp24152
sudo apt-get install cabextract
wget ftp://ftp.compaq.com/pub/softpaq/sp34001-34500/sp34152.exe
cabextract sp34152.exe
Paso 3: Configurar ndiswrapper y WPA Supplicant
sudo ndiswrapper -i bcmwl5.inf
ndiswrapper -l
sudo depmod -a
sudo modprobe ndiswrapper
sudo cp /etc/network/interfaces /etc/network/interfaces.orig
echo -e 'auto lo\niface lo inet loopback\n' | sudo tee /etc/network/interfaces
sudo ndiswrapper -m
echo 'ndiswrapper' | sudo tee -a /etc/modules
echo 'ENABLED=0' | sudo tee -a /etc/default/wpasupplicant
Si has seguido estos pasos deberías tener configurado y funcionando tu tarjeta de red inalámbrica. Pero… puede haber un problema tal y como yo (¡cómo no!) lo tuve.
Ejecuta el siguiente comando:
lshw -C network | grep module
Si tras ejecutar el anterior comando ves en pantalla ‘module=ssb’ en lugar de ‘module=ndiswrapper’…, ¡lo siento!, estás en mi misma situación y eres víctima de un bug de la versión Hardy Heron de Ubuntu. Este error es debido, grosso modo, a que el modulo que toma el control es ssb en lugar de ndiswrapper. Pero no todo está perdido, hay unos sencillos pasos que te pueden ayudar a solucionarlo y que los listo tras el cuarto y último paso.
Paso 4: Borra el directorio
Hay que borrar la información que hemos ido guardando en el directorio, para ello ejecuta el siguiente comando:
rm -Rf ~/bcm43xx
Paso extra: Solución posible al bug del módulo ssb
Antes de hacer cambios definitivos vamos a introducir los siguientes comandos:
sudo rmmod b43
sudo rmmod b44
sudo rmmod b43legacy
sudo rmmod ssb
sudo rmmod ndiswrapper
sudo modprobe ndiswrapper
sudo modprobe ssb
sudo modprobe b44
Ahora, si tras ejecutar el siguiente comando:
lshw -C network | grep module
ves ‘module=ndiswrapper’ estás de enhorabuena y puedes hacer los cambios definitivos con el siguiente comando (en una sólo línea):
echo -e '# Fix para el bug en ssb/ndiswrapper de Hardy\ninstall ndiswrapper modprobe -r b43 b44 b43legacy ssb; modprobe --ignore-install ndiswrapper $CMDLINE_OPTS; modprobe ssb; modprobe b44;' | sudo tee -a /etc/modprobe.d/ndiswrapper
Desgraciadamente, si esto no te funciona deberás ir a la página original en inglés y observar el hilo de las actualizaciones para ver si alguien ha resuelto este problema ya que, a fecha de hoy, hay unas cuantas soluciones pero no están del todo testadas.
