These chipsets are not natively supported by CentOS.
- Download Redhat Network & Wireless Cards Drivers
- Redhat Network Configuration
- Network Card Driver Install
This page is currently maintained by: Miloš Blažević
NOTE: This manual is primarily intended for EL6 and EL7. If you are running EL 5, 6, or 7, instead of compilation, you can opt to build your own kABI-compatible binary RPM package of the driver which is reusable after kernel updates. For more info, please refer to ELRepo kmod-wl page. Also, it's been reported that the this driver doesn't work with all chips, so kindly provide feedback on your experiences with Broadcom Wireless, so this manual can be kept up to date and further improved. | |
NOTE: Due to an excessively restrictive license accompanying this Broadcom driver, the ELRepo repository developers have refrained from supplying it via an rpm package - hence this manual was created with the purpose of providing a single comprehensive driver installation manual. | |
NOTE: Please note that this Wiki may not apply to some older kernel (and/or driver) versions, due to the changes between versions made to the driver, and recent kernels. With that said, we can guarantee compilation of only the latest driver and kernel(s). |
- These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms.
- D-Link DWA-525 Wireless N 150 PCI Adapter. D-Link DWA-525 Wireless N 150 PCI Adapter for Windows 2000/XP/Vista/7 32/64-bit. Editor's rating.
- Copy the driver name from the command prompt screen and do a Google search. Download the latest available driver for your wireless (WiFi) adapter from the manufacturer's website. In the example above, go to the Download Center for Intel and choose the driver for the Windows version you are running.
Download Wireless Card Driver. The first thing you need to do is figure out what wireless card you have. There are a couple ways to do this and some involve finding the device chipset and others involve scouring through system logs. The easiest method is to just look at the device itself, if you have an external wireless card, or search your.
Contents
- Broadcom Corporation BCM4311, BCM4312, BCM4313, BCM4321, BCM4322, BCM43224, BCM43225, BCM43227 and BCM43228 Based Wireless NICs
In order to install Broadcom BCM4311, BCM4312, BCM4313, BCM4321 or BCM4322, BCM43224, BCM43225, BCM43227, or BCM43228 based wireless network cards, the next steps should be followed:
Step 1: Determining WLAN chip and installing dependencies
First of all, make sure you are the 'proud owner of Broadcom BCM43xx wireless card':
After the WLAN chip model was determined, make sure you have no missing packages needed at compile-time and install them if you do:
Of course, if you're compiling the driver for Xen kernel (i.e. kernel-xen), you should install kernel-xen-devel instead of kernel-devel.
Step 2: Downloading and extracting Broadcom driver archive
Download the Broadcom BCM43xx linux driver archive from Broadcom Official website - you'll find it as in the search results list as either Linux® STA 32-bit driver or Linux® STA 64-bit driver - to your machine and extract it to /usr/local/src/hybrid-wl and feel free to change the ownership of the directory and it's contents to some unprivileged user
NOTE: Why not extract it to arbitrary location and leave the ownership it is? |
Step 3a: Compiling the Broadcom driver module (on EL6 and EL7)
Driver module can be compiled as follows:
Mind the quotes (i.e. back quotes).
Now, with the current driver (version 6.30.223.271) it's almost certain you'll get an error message instead of compiled driver module (in fact, different scenario other that this error message is unknown to the author). The message might/will vary depending on the kernel and OS version, but on CentOS 6 it should look something like this:
NOTE: This is where the instructions for EL6 and EL7 part ways. So, for EL6, you should follow through step 3a, while for EL7, you need to apply only the patch from step 3a, and patches/sed commands from step 3b, applicable to EL7 only, and compile it as shown in this step (3a). So yes, for EL7, skip the 'sed' commands in step 3a. |
On EL6, the driver won't compile because of the if-then-else clause for kernel version checking in file wl_cfg80211_hybrid.c. To remedy this, we'll run the following sed replacement commands:
Just these 'sed' replacements are not enough to ensure proper driver compilation. So, we also need to apply the following patch wl-kmod-fix-ioctl-handling.patch prior to actually compiling the driver. Download it to /usr/local/src and run the following command to patch the driver source code:
Now, try compiling the driver module again:
and the compile output should look something like this:
{{{make: Entering directory `/usr/src/kernels/2.6.32-573.7.1.el6.x86_64' CFG80211 API is prefered for this kernel version Using CFG80211 API
- LD /usr/local/src/hybrid-wl/built-in.o CC [M] /usr/local/src/hybrid-wl/src/shared/linux_osl.o CC [M] /usr/local/src/hybrid-wl/src/wl/sys/wl_linux.o CC [M] /usr/local/src/hybrid-wl/src/wl/sys/wl_iw.o CC [M] /usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.o
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:1802: warning: initialization from incompatible pointer type
- LD [M] /usr/local/src/hybrid-wl/wl.o Building modules, stage 2.
CFG80211 API is prefered for this kernel version Using CFG80211 API
- MODPOST 1 modules CC /usr/local/src/hybrid-wl/wl.mod.o LD [M] /usr/local/src/hybrid-wl/wl.ko.unsigned NO SIGN [M] /usr/local/src/hybrid-wl/wl.ko
make: Leaving directory `/usr/src/kernels/2.6.32-573.7.1.el6.x86_64' }}} The module, once built, can be stripped of unnecessary symbols:
What you will notice, is that driver module file size reduces (from 8.2MB to 7.2MB). And yes, your driver module works
Step 3b: Compiling the Broadcom driver module (specifics required for EL7)
NOTE: Lately, it's required to apply the patches before the sed statements, which may not always be the case, so if the compilation fails, try doing things other way around, i.e. sed before you patch. |
Depending on EL7 point release (or better yet, the kernel version you're running), sub-set of sed replacements to apply will differ. So, stock kernels shipped with EL 7.0 (i.e. kernel-3.10.0-123.X), don't require running any of the commands below, EL 7.1 (i.e. kernel-3.10.0-229.X) require the first two, EL 7.2 (i.e. kernel-3.10.0-327.X), require first four 'sed' commands, EL 7.3 requires first 6 executed, EL7.4 first 7, and for EL 7.5 all 'sed' commands are required so as to make the code compile (along with the one from step 3a):
Again, esp. if you're running EL 7.3, or one of its kernels, you'll have to apply the following patches wl-kmod-01_kernel_4.7_IEEE80211_BAND_to_NL80211_BAND.patchwl-kmod-02_kernel_4.8_add_cfg80211_scan_info_struct.patchwl-kmod-03_fix_kernel_warnings.patchwl-kmod-04_kernel_4.11_remove_last_rx_in_net_device_struct.patchwl-kmod-05_kernel_4.12_add_cfg80211_roam_info_struct.patchBEFORE you apply the above sed replacement commands (otherwise, compilation won't work). Also, don't forget the patch from step 3a:
After applying these to the source code, just follow through the reminder of step 3a - compile the driver, and strip debugging info from it. Again, kernel builds =>229 require first two commands ONLY, builds => 327 require running first four sed replacements, builds >=514 require 6, builds >=693 require 7, and for builds >=862 all sed replacements are needed for driver to compile
Step 4a: Loading the driver module into kernel
Having successfully compiled the driver module, you can now load it into kernel, and eventually set up automatic driver load on system boot (to do all this, you'll have to assume root privileges). Of course, driver module loading can be done only after you remove the existing/conflicting wireless driver modules from kernel (in case these are loaded):
copy the driver module file to a location where kernel can find it:
to be consistent with all other external modules that have been / may be installed from a kmod packages (e.g. fuse, ntfs-3g, etc.)
Next, run:
in order to create a list of module dependencies, and now load the driver module:
If no error was reported, the driver module is now successfully loaded and ready to use. The 'ndiswrapper' kernel module can be removed, provided you don't use it for anything else but wireless driver - but this is not necessary.
Step 4b: Loading the driver module into kernel on boot time
Couple of more steps are needed to get your module load every time the system boots. First, edit the /etc/modprobe.d/blacklist.conf file adding the lines:
By doing so, you're preventing these modules from being loaded into kernel at boot time and conflicting with the wl module. Second, in order to load the wl module into the kernel on boot time, create/edit the file /etc/sysconfig/modules/kmod-wl.modules and copy-paste the following contents into it:
Your driver should now load every time you reboot (except of course, when you install the new kernel, in which case the driver has to be re-compiled for it following these same steps).
Appendix A: Broadcom chip models tested and reported (by community members) as working
Chip tested | EL version | Kernel | Arch | VendorID:DeviceID | Driver version | |||||
BCM4311 | CentOS 7.1 | 3.10.0-229.el7 | x86_64 | N/A | 6_30_223_248 | |||||
BCM4312 | CentOS 6.6 | Unknown | Unknown | Unknown | 6_30_223_248 | |||||
BCM4313 | CentOS 6.6 | 2.6.32-504.16.2.el6 | x86_64 | 14e4:4727 | 6_30_223_248 | |||||
BCM4321 | CentOS 7.3 | 3.10.0-514.2.2.el7 | x86_64 | 14e4:4328 | 6_30_223_271 | |||||
BCM4322 | CentOS 7.1 | 3.10.0-229.7.2.el7 | x86_64 | 14e4:432b | 6_30_223_248 | |||||
BCM43142 | CentOS 6.6 | Unknown | Unknown | 14e4:4365 (Unconfirmed) | 6_30_223_248 | |||||
BCM43224 | ||||||||||
BCM43225 | ||||||||||
BCM43227 | ||||||||||
BCM43228 | CentOS 7.1 | 3.10.0-229.4.2.el7 | x86_64 | 14e4:4359 | 6_30_223_248 | |||||
BCM4352 | CentOS 7.1 | 3.10.0-229.7.2.el7 | x86_64 | 14e4:43b1 | 6_30_223_248 | |||||
CentOS 6.8 | 2.6.32-642.15.1 | x86_64 | 14e4:43b1 | 6_30_223_271 |
ATTENTION: This driver module is NOT persistent across kernel upgrades (i.e. when you update the kernel, and boot the newly installed one, you'll have to do this over again). And again, this is why you placed the archive contents in /usr/local/src/hybrid-wl and changed the ownership of the directory and it's contents. | |
NOTE: After successful setup of the driver, users new to wireless often report problems like 'Error for wireless request 'Set Encode' (8B2A): SET failed on device.... Quick and easy solution is to configure NetworkManager service to manage your network connections instead of the network service. This used to be the case on CentOS 5, but has not happened (or reported to have happened) on CentOS 6. |
Download Redhat Network & Wireless Cards Drivers
Appendix B: Broadcom chip intermittent problems
This driver module, in author's experience, is sometimes known to require multiple reboots to make the WiFi work. In layman's terms, the WiFi card, finds the AP(s), but fails to associate it with the driver. I've made numerous attempts to make the card/driver work without a reboot, to no avail. Starting/stopping wpa_supplicant service, turning WiFi on/off, (un)loading the driver, ...etc. Sometimes it would only start working after several reboots.
From /var/log/wpa_supplicant.log:
and in /var/log/messages:
Rumour has it, this is caused by 'improper' loading of the WiFi card firmware on boot, hence, only rebooting the system fixes it.
Another problem (probably caused by improperly loaded firmware) is choppy/flaky network connectivity. The cards appears to have associated to the AP, but shows poor signal quality even though you're in the same room with the AP. even pings are dropping, and bottom line - connection is useless. Again, this should be resolved by repeated reboots until the firmware is loaded properly.
What's new
See the release notes and the readme.txt file for installation instructions, supported hardware, what's new, bug fixes, and known issues.
Overview
This download installs base drivers, Intel® PROSet for Windows* Device Manager, and Intel® PROSet Adapter Configuration Utility for Intel® Network Adapters with Windows® 10.
Which file should you download?
Note:10-GbE adapters (those that support Windows 10) are only supported by 64-bit drivers.
- PROWin32.zipfor 32-bit (x86) editions of Windows*
- PROWinx64.zipfor 64-bit (x64) editions of Windows
How to use this download
Download the self-extracting archive and run it. It will extract the files to a temporary directory, run the installation wizard, and remove the temporary files when the installation is complete. All language files are embedded in this archive. You don't need to download an extra language pack.
Redhat Network Configuration
Supported devices
This software may also apply to Intel® Ethernet Controllers. Support for built-in network connections is provided by the system or board manufacturer.
About Intel® drivers
The driver or software for your Intel® component might have been changed or replaced by the computer manufacturer. We recommend you work with your computer manufacturer before installing our driver so you don’t lose features or customizations.
Network Card Driver Install
See a list of manufacturers’ Support websites.