En Fedora los drivers para las tarjetas de red inalámbricas de broadcom suelen ser los que proporcionan los paquetes broadcom-wl, kmod-wl, akmod o los que se instalan con b43-fwcutter. Sin embargo sigue habiendo algunos que para instalarlos debemos compilarlos nosotros mismos como es el caso de los drivers para la broadcom BCM43142.

Para poder instalar los drivers de esta tarjeta inalámbrica en Fedora tenemos que descargar el paquete wireless-bcm43142-dkms_6.20.55.19-1_amd64.deb, extraerlo con dpkg y recompilarlo para Fedora.

Antes de ponernos paso a paso a recompilar tenemos que instalar los paquetes necesarios.

[usuario@equipo ~]$ su -c 'yum install dpkg kernel-devel kernel-headers gcc'

Con los paquetes necesarios ya instalados procedemos a descargar el archivo .deb en el directorio home de nuestro usuario.

[usuario@equipo ~]$ cd ~
[usuario@equipo ~]$ wget http://jas.gemnetworks.com/debian/pool/main/w/wireless-bcm43142/wireless-bcm43142-dkms_6.20.55.19-1_amd64.deb

Creamos una carpeta donde extraer el paquete .deb y lo extraemos usando dpkg.

[usuario@equipo ~]$ mkdir bcm43142
[usuario@equipo ~]$ dpkg-deb -x wireless-bcm43142-dkms-6.20.55.19_amd64.deb bcm43142

Antes de ponernos a compilar hay que editar uno de los archivos de código fuente para que no incluya la libreria asm/system.h. El archivo en cuestión es wl_linux.c que se encuentra en ~/bcm43142/usr/src/wireless-bcm43142-oneiric-dkms-6.20.55.19~bdcom0602.0400.1000.0400/src/wl/sys.

En ese archivo hay que eliminar la linea que pone #include <asm/system.h> (se encuentra en la linea 51 mas o menos).

[usuario@equipo ~]$ nano ~/bcm43142/usr/src/wireless-bcm43142-oneiric-dkms-6.20.55.19~bdcom0602.0400.1000.0400/src/wl/sys/wl_linux.c

Después de editar el fichero nos movemos a donde se encuentra el Makefile y compilamos.

[usuario@equipo ~]$ cd ~/bcm43142/usr/src/wireless-bcm43142-oneiric-dkms-6.20.55.19~bdcom0602.0400.1000.0400
[usuario@equipo ~]$ make

En este punto si todo ha ido bien deberíamos tener el módulo wl.ko y solo nos queda moverlo (o copiarlo) a la correspondiente carpeta de módulos, pero antes conviene eliminar el paquete broadcom-wl para evitar conflictos.

[usuario@equipo ~]$ su -c 'yum remove broadcom-wl'

Ahora como usuario root copiamos el módulo a la carpeta que debe estar.

[usuario@equipo ~]$ su
[root@equipo ~]# mkdir -p /lib/modules/$(uname -r)/extra/wl
[root@equipo ~]# cp wl.ko /lib/modules/$(uname -r)/extra/wl
[root@equipo ~]# exit

Finalmente cargamos el módulo al kernel.

[usuario@equipo ~]$ su -c 'modprobe wl'

Con esto ya deberíamos poder ver la tarjeta wifi y conectar con ella.