Compilar Driver Broadcom para tarjeta Wireless en una Netbook con Linux
Despues de mucho tiempo de trabajar con Debian … decidi volver a recompilar el kernel de Linux. Proceso que llevó su tiempo.
Cuando terminé la compilación para tener soporte de Atom en la netbook y limpiarlo de módulos que jamas voy a usar… reinicié … y … no tenia driver de red wireless!
Asi que procedi a instalarlo de la siguiente manera:
La tarjeta placa wireless es un Broadcom 4313 y el código fuente del driver se descargo de este enlace:
http://www.broadcom.com/support/802.11/linux_sta.php
Recordar que tenemos que descargar el parche para versiones mayores de 2.6.32
Descargamos el código fuente y los descomprimimos en nuestra carpeta de trabajo HOME.
Cambiamos a usuario root y ejecutamos el siguiente comando para verificar si nuestra tarjeta wireless es compatible con dicho driver.
Si el comando muestra resultados entonces estamos en buen camino.
# lspci -n | grep 14e4
Vamos a ver que kernel tenemos compilado
# uname -r
2.6.39
Ahora si, estamos listos para empezar a compilar nuestro driver.
Ingresamos directorio del código fuente del driver que descargamos, instalamos primero el parche para kernels mayores de 2.6.32
patch -p0 < 5_100_82_38.patch
Si es la primera vez ejecutamos el comando make, en caso sea la segunda o más veces que compilemos ejecutamos primero el comando make clean y luego el comando make.
# make clean
# make
La compilación no llevará mucho tiempo, así que terminada la ejecución del comando make se creará el archivo wl.ko.
Ahora probaremos el nuevo driver y los cargaremos como un módulo dentro del Kernel, para ello ejecutamos el siguientes comando:
# modprobe lib80211
Si mostrara algún error entonces probamos con el siguiente comando:
# modprobe ieee80211_crypt_tkip
Ahora si, procedemos a cargar el nuevo driver como un módulo del Kernel.
# insmod wl.ko
Si todo esta correcto entonces el sistema debería reconocer la tarjeta, para comprobarlo ejecutamos el comando: iwconfig
Si el sistema cargó correctamente el nuevo módulo de la placa veremos la siguiente salida.
# iwconfig
lo no wireless extensions.
eth0 no wireless extensions.
eth1 IEEE 802.11bg ESSID:"Fibertel WiFi"
Mode:Managed Frequency:2.437 GHz Access Point: E0:CB:4E:6E:73:84
Bit Rate=48 Mb/s Tx-Power:24 dBm
Retry min limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Managementmode:All packets received
Link Quality=4/5 Signal level=-60 dBm Noise level=-57 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Ahora procederemos a instalar el módulo para que se cargue cada vez que el sistema inicie. Copiamos el archivo generado wl.ko a la carpeta de drivers del Kernel.
# cp wl.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless
donde uname -r es la versión de nuestro Kernel.
Copiado el archivo wl.ko ejecutamos el comando:
# depmod -a
!Listo!, ya tenemos instalado el driver, así que al reiniciar el equipo el sistema cargara el nuevo driver.