1. Firstly, we must find out what exactly wireless device we own, you can use lspci to list all devices,
# lspci
00:18.2 Host bridge: Advanced Micro Devices [AMD] Family 11h Processor DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] Family 11h Processor Miscellaneous Control
00:18.4 Host bridge: Advanced Micro Devices [AMD] Family 11h Processor Link Control
01:05.0 VGA compatible controller: ATI Technologies Inc RS780M/RS780MN [Radeon HD 3200 Graphics]
02:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8042 PCI-E Fast Ethernet Controller (rev 10)
06:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g LP-PHY (rev 01)
Here is my wireless device information: Broadcom Corporation BCM4312 802.11b/g, then we can search the drivers in www.broadcom.com, and download the suitable drivers for your devices, the following is my devices drivers download links.
32bit: http://www.broadcom.com/docs/linux_sta/hybrid-portsrc_x86-32_v5.60.246.6.tar.gz
64bit: http://www.broadcom.com/docs/linux_sta/hybrid-portsrc_x86-64_v5.60.246.6.tar.gz
readme: http://www.broadcom.com/docs/linux_sta/README.txt
2. Compile the drivers
# tar xvf hybrid-portsrc_x86-64_v5.60.246.6.tar.gz
# ls
lib Makefile README.txt src
# make
# ls
built-in.o Makefile Module.symvers src wl.ko.unsigned wl.mod.o
lib modules.order README.txt wl.ko wl.mod.c wl.o
When make completes, It will produce a wl.ko file in the top level directory.
3. Find out what wireless driver are using now, and install the new driver
# lspci -k
06:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g LP-PHY (rev 01)
Subsystem: Hewlett-Packard Company Device 1508
Kernel driver in use: ssb
Kernel modules: ssb
# cp wl.ko /lib/modules/`uname -r`/kernel/net/wireless/
# depmon
# modprove wl
# echo “blacklist ssb” >> /etc/modprobe.d/blacklist.conf
# mkinitrd /boot/initrd-`uname -r`.img `uname -r`
# cat >> /boot/grub/grub.conf <
> title Red Hat Enterprise Linux (with wireless)
> root (hd0,6)
> kernel /vmlinuz-2.6.32-71.el6.x86_64 ro root=UUID=276d526c-8edb-4e6b-8c74-00b40d10544b rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet
> initrd /initrd-2.6.32-71.el6.x86_64.img
> EOF