Cómo cambiar el driver wifi BCM4313 Broadcom en Ubuntu 12.04

Después de instalar Ubuntu 12.04 pensé que el driver wifi funcionaba bien, ya que detectaba las redes y accedía a internet. Sin embargo, después de poco tiempo, funcionaba de manera muy lenta. Al investigar un poco me di cuenta que era algo común debido a que el driver brcmsmac utilizado para la tarjeta no es muy bueno.

¿Qué hardware tengo?

Ejecuta:

sudo lshw

Y revisa la salida en busca de la sección network. Por ejemplo:

*-network
                description: Wireless interface
                product: BCM4313 802.11b/g/n Wireless LAN Controller
                vendor: Broadcom Corporation

¿Qué driver estoy usando?
El comando lspci enlista todos los dispositivos pci del equipo y, entre otras cosas, los drivers utilizados. Ejecuta

lspci -k|grep brcmsmac

Si tu salida contiene lo siguiente, entonces estás utilizando el driver incorrecto:

Kernel driver in use: brcmsmac

Instalar un nuevo driver

Ejecuta:

sudo apt-get install bcmwl-kernel-source

Enseguida, agrega lo siguiente a /etc/modprobe.d/blacklist-bcm43.conf
(aunque puede que ya esté ahi):

blacklist brcmsmac
blacklist bcma

Reinicia y verifica que

lspci -k | grep wl

incluya:

Kernel driver in use: wl

Con esto el problema de wifi deberá estar solucionado.

¿Inconveniente?

El único inconveniente que tuve, al menos eso creo, es que el nombre de la interface cambia de wlan0 a eth0. Prueba con
ifconfig y revisa la salida.

Update

Otra alternativa, ahora gráfica, es verificar los drivers propietarios que nos sugiere Ubuntu desde:

Dash Home/System Settings/Additional Drivers

Enseguida, instala los que creas convenientes. En mi caso (después de haber seguido los pasos anteriores desde consola, se ha marcado automáticamente el driver de la tarjeta inalámbrica) están seleccionados el driver de la tarjeta inalámbrica y para el video.

Update: Drivers alternativos

Según esta pregunta en ask ubuntu, existen otras alternativas, quizá no tan buenas como el último driver disponible, pero pueden ser de utilidad en otros casos.

La lista de drivers son:

Además, existe una lista de drivers compatibles con la tarjeta descrita aquí. En el caso específico de la tarjeta bcm4313, existe el driver brcm80211.

Más info:
Does not compute
What hardware do I have?

26 comentarios en “Cómo cambiar el driver wifi BCM4313 Broadcom en Ubuntu 12.04

  1. Hola,

    Muchas gracias por este artículo.

    Lo hago todo exactamente igual y funciona bien, pero cuando reinicio, no usa el driver nuevo, y al haber “desactivado” el antiguo, no usa ninguno.

    Mi wifi es “Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller”.

    Me podéis ayudar? Gracias!

      1. También tengo el mismo problema con esta tarjeta en ubuntu 12.04. He actualizado desde 11.10 donde me funcionaba perfectamente

        lspci -k |grep wl	
        Subsystem: Hewlett-Packard Company Device 164f
        Subsystem: Hewlett-Packard Company Device 164f
        Subsystem: Hewlett-Packard Company Device 164f
        Subsystem: Hewlett-Packard Company Device 1623
        Subsystem: Hewlett-Packard Company Device 164f
        Subsystem: Hewlett-Packard Company Device 164f
        Subsystem: Hewlett-Packard Company Device 164f
        Subsystem: Hewlett-Packard Company Device 164f
        Subsystem: Hewlett-Packard Company Device 164f
        Subsystem: Hewlett-Packard Company Device 164f
        Subsystem: Hewlett-Packard Company Device 164f
        Subsystem: Hewlett-Packard Company Device 145c
        
        #contenido del fichero /etc/modprobe.d/blacklist-bcm43.conf
        
        # Warning: This file is autogenerated by bcmwl. All changes to this file will b$
        blacklist b43
        blacklist b43legacy
        blacklist ssb
        blacklist bcm43xx
        blacklist brcm80211
        blacklist brcmfmac
        blacklist brcmsmac
        blacklist bcma
        
      2. Lo que puede estar pasando es que no se cargue el módulo al iniciar el sistema. Prueba con

        modprobe wl 
        modinfo wl
        ifconfig
        

        También puedes agregar “wl” (sin comillas) al final del archivo /etc/modules.conf, para más información puedes leer este artículo

  2. Se podría cambiar el nombre de eth1 por wlan0 y que los parametros de nivel de señal y essid los muestre para luego exportarlo al conky??

  3. hola intente hacer lo q dices pero no me funciona, de seguro es por q aunq presento el mismo problema wifi lento el driver q uso es diferente tengo una laptop Acer Aspire 5742G-6426 y esto es lo q me tira la terminar del tipo de hardware q uso:

    *-network
    descripción: Interfaz inalámbrica
    producto: AR9287 Wireless Network Adapter (PCI-Express)
    fabricante: Atheros Communications Inc.
    id físico: 0
    información del bus: pci@0000:03:00.0
    nombre lógico: wlan0
    versión: 01
    serie: d0:df:9a:f5:45:33
    anchura: 64 bits
    reloj: 33MHz
    capacidades: pm msi pciexpress bus_master cap_list ethernet physical wireless
    configuración: broadcast=yes driver=ath9k driverversion=3.2.0-25-generic firmware=N/A ip=192.168.2.2 latency=0 link=yes multicast=yes wireless=IEEE 802.11bgn
    recursos: irq:17 memoria:d3800000-d380ffff

    te estare eternamente agradecido si me guias un poco de como serian los comandos en este caso… ya me canse del internet lento, q hasta me obliga a usar windows como sistema principal…

  4. Network controller: Broadcom Corporation BCM4311 802.11b/g WLAN (rev 01)

    lspci -k|grep brcmsmac
    (no hay contestacion)

    modprobe wl
    FATAL: Error inserting wl (/lib/modules/3.2.0-26-generic-pae/updates/dkms/wl.ko): Operation not permitted

    modinfo wl
    filename: /lib/modules/3.2.0-26-generic-pae/updates/dkms/wl.ko
    license: MIXED/Proprietary
    srcversion: D9C86A9C5C3D22E103EF402
    depends: lib80211
    vermagic: 3.2.0-26-generic-pae SMP mod_unload modversions 686
    parm: oneonly:int
    parm: piomode:int
    parm: instance_base:int
    parm: nompc:int
    parm: name:string

    ifconfig
    eth0 Link encap:Ethernet direcciónHW 00:16:d3:e0:c1:27
    ACTIVO DIFUSIÓN MULTICAST MTU:1500 Métrica:1
    Paquetes RX:0 errores:0 perdidos:0 overruns:0 frame:0
    Paquetes TX:0 errores:0 perdidos:0 overruns:0 carrier:0
    colisiones:0 long.colaTX:1000
    Bytes RX:0 (0.0 B) TX bytes:0 (0.0 B)
    Interrupción:16

    ¿Se te ocurre alguna solución?
    Tambien he probado a instalar el controlador privativo y tampoco reconoce la red inalambrica

  5. Con estos comandos ya reconoce la tarjeta, aunque no es buena la deteccion:

    sudo apt-get install firmware-b43-installer

    broadcom-wl-5.10.56.27.3_mipsel.tar.bz2” guardado [1596823/1596823]

    sudo modprobe b43

  6. Uso arch, pero tengo la misma tarjeta y funciona pésimo, lento y a veces sólo detecta las redes mas cercana (muy aleatorio el comportamiento). Cambié el driver a wl pero sigo teniendo el mismo mal rendimiento😦

    1. Yo hice lo siguiente y me funcionó:

      1. agregar en el archivo /etc/modprobe.d/blacklist-bcm43.conf lo siguiente:
      blacklist brcmsmac
      blacklist bcma

      2. Reinicié el sistema, y luego me conecté por cable e instale el driver privativo desde la notificación que aparece arriba en al panel.

      NOTA: Como lo dice en el post tambien funciona… pueden instalar el driver privativo antes de reiniciar la máquina, porque asi lo hice en Ubuntu 11.10.

  7. A los que reinician y no tienen internet porque deshabilitaron el driver, lo que tienen que hacer es despues del reinicio conectar la laptop por cable, bajar el driver privativo, y LISTO, ya tienen el driver del wifi funcionando de manera óptima, con bastante alcance. Saludos.

  8. Hola soy novata en esto como agrego
    blacklist brcmsmac
    blacklist bcma

    a /etc/modprobe.d/blacklist-bcm43.conf

    Probé con el comando echo pero dice q no tengo acceso al archivo, gracias.

    1. Escribe en la consola esto:

      sudo gedit /etc/modprobe.d/blacklist-bcm43.conf

      te va a pedir tu clave de usuario, la introduces y te concederá los permisos, luego se abre el archivo y copiarás esto dentro:

      blacklist brcmsmac
      blacklist bcma

  9. Muchas gracias, lamentablemente sigo sin wifi😦 pero lo bueno es q aprendí algo nuevo en Ubuntu q es nuevísimo para mi. Gracias otra vez😉

  10. He seguido todos los pasos y después de reiniciar sale lo que dices, pero el Wifi sigue sin funcionar😦 qué más puedo hacer? Tengo la Broadcom que indicas y acabo de instalar ubuntu 12.04 porque es un ordenador totalmente nuevo. ¡Gracias!

  11. Acabo de instalar Ubuntu 12.10 y se me presentó ese mismo problema… En el 12.04 se resolvió con lo que dice en este post, pero en el 12.10 se resolvió con esto:

    sudo modprobe -r b43 ssb wl
    sudo apt-get remove bcmwl-kernel-source 
    sudo apt-get install build-essential dkms linux-headers-generic
    sudo apt-get install bcmwl-kernel-source
    

    Les reconocerá la inalámbrica sin necesidad de reiniciar y con buena repeción. Espero que esto les sirva, Saludos.

    1. copié el primer comando y me salió lo siquiente:
      francisco@francisco-Satellite-L645:~$ sudo modprobe -r b43 ssb wl
      FATAL: Module wl not found.

      ¿Qué puede estar mal?

    2. Muchas gracias, me ha servido mucho, sin embargo cada que reinicio el equipo se vuelve lenta de nuevo y debo realizar los pasos 1, 2 y 4 para restablecer la velocidad. Alguna idea?

  12. problema resuelto con unas cuentas modificaciones en este post, al parecer no podia modificar el archivo /etc/modprobe.d/blacklist-bcm43.conf, cone l terminal entre a en modo super usuario , y cambie el permiso con chmod 777 para poder modificar ese archivo, luego ese archivo te muestra muchos dirves que estan en blocklist, lo que tenies que hacer es borrar todos eso y solamente dejar :

    blacklist brcmsmac

    blacklist bcma

    y listo problma resuelto solo reinicias el ordernador

  13. Todo debería ser más sencillo, los productores de hardware deberían ofrecer o:
    1) soporte para todo sistema operativo (dificil)
    2) GPL’ar todo las fuentes de sus drivers (facil) * Recomendado
    3) dejar de producir hardware (dificil) (No recomendado)

  14. sudo modprobe -r b43 ssb wl
    sudo modprobe wl

    Únicamente haciendo en consola cuando me reinicia es con lo que consigo activarla.

    Me podeis decir, como hago para ponerlo que se ejecute en cada arranque y no tener que escribirlo cada arranque?

    Muchas gracias…

    1. Es posible agregar comandos para ser ejecutados al arranque. Basta con agregarlo en /etc/rc.local. Sin embargo, creo que no requieres colocar sudo antes del comando. fuente

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s