Hace dos días instalé Fedora 17 y en vez de actualizar el sistema usando preupgrade decidí hacer una copiad de seguridad y sustituir el sistema operativo completo. Cuando terminé de instalar el nuevo sistema y quise conectarme para instalar las posibles actualizaciones vi que me faltaban los drivers de la tarjeta de red inalámbrica broadcom bcm4312, así que tire un cable de red desde el ordenador al router y me puse a instalar los drivers.

Lo primero es asegurarse de la tarjeta que tenemos. Podemos utilizar el programa lshw o lshw con su interfaz gráfica.

Instalamos ambos paquetes:

[root@localhost ~]# yum install lshw lshw-gui

Ahora desde el terminal miro que tarjeta tengo:

[root@localhost ~]# lshw

Nos mostrará toda la información que ha recopilado referente al hardware. Ahora buscamos en dónde tenemos conectada la tarjeta y ahí nos muestra la información. Mi tarjeta esta conectada en una ranura pci así que miré directamente en esa sección:

*-pci:1
  description: PCI bridge
  product: 82801H (ICH8 Family) PCI Express Port 2
  vendor: Intel Corporation
  physical id: 1c.1
  bus info: pci@0000:00:1c.1
  version: 02
  width: 32 bits
  clock: 33MHz
  capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
  configuration: driver=pcieport
  resources: irq:41 ioport:2000(size=4096) memory:fe700000-fe7fffff ioport:f0200000(size=2097152)
  *-network
    description: Network controller
    product: BCM4312 802.11b/g LP-PHY
    vendor: Broadcom Corporation
    physical id: 0
    bus info: pci@0000:0b:00.0
    version: 01
    width: 64 bits
    clock: 33MHz
    capabilities: pm msi pciexpress bus_master cap_list
    configuration: driver=b43-pci-bridge latency=0
    resources: irq:17 memory:fe7fc000-fe7fffff

Para instalar estos drivers hay dos paquetes para fedora que nos permite hacerlo. El primero es kmod-wl que es el método más sencillo y el segundo método es descargar los drivers, usar b43-fwcutter para copiar el firmware y finalmente cargar el modulo al kernel.

La principal diferencia que hay entre un paquete y otro es que el driver que instala kmod-wl no nos permite trabajar bien en modo monitor mientras que con los drivers que descargamos e instalamos con b43-fwcutter no vamos a tener ese problema. Si solo vamos a conectarnos a una red con el paquete kmod-wl nos bastará pero si por ejemplo necesitamos hacer auditorías de seguridad de redes wifi tendremos que instalar los drivers con bc43-fwcutter.

Para instalar kmod-wl:

[root@localhost ~]# yum install kmod-wl

Para instalar el driver con b43-fwcutter primero tenemos que instalar b43-fwcutter que se encuentra en los repositorios:

[root@localhost ~]# yum install b43-fwcutter

Después descargamos el driver desde http://downloads.openwrt.org/sources/ con wget, descomprimimos el archivo con tar, copiamos el firmware con b43-fwcuttery cargamos el módulo al kernel:

[root@localhost ~]# wget http://downloads.openwrt.org/sources/broadcom-wl-4.150.10.5.tar.bz2
[root@localhost ~]# tar xjf broadcom-wl-4.150.10.5.tar.bz2
[root@localhost ~]# cd broadcom-wl-4.150.10.5/driver
[root@localhost driver]# b43-fwcutter -w /lib/firmware/ wl_apsta_mimo.o
[root@localhost driver]# rmmod b43
[root@localhost driver]# modprobe b43

Con esto ya tenemos la tarjeta broadcom funcionando de forma normal y con la posibilidad de ponerla en modo monitor y trabajar sin problemas.