• Sumo

Fedora 15: Lenovo G450 and Wireless Broadcom BCM4312 802.11b/g

Finish download and install Fedora 15, I get a problem for my wireless connection. I install Fedora 15 on Lenovo G450 laptop.
After login to Gnome 3 shell, on Network Manager my wireless status is “missing firmware” and I need install firmware driver for this wireless card.

Ok, now time to open gnome-terminal (ALT + F2 and type gnome-terminal), run lspci command to check your wireless card chipset

[anif@anif ~]$ lspci
04:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g LP-PHY (rev 01)

From lspci output, my Lenovo G450 using Broadcom BCM4312 chipset for wireless card.
I have two choices, install from RPM Fusion repository or install from source, and my decision install from source hehehe…

Connect to wired network and download the source code driver from broadcom website.

1. Check your kernel with uname -r command

[anif@anif ~]$ uname -r
2.6.38.6-26.rc1.fc15.i686.PAE

2. For installation from source, need install development tools, kernel-header and kernel-devel package. Use rpm -qa to query this package already installed or not:

[anif@anif ~]$ rpm -qa | grep kernel
kernel-headers-2.6.38.6-26.rc1.fc15.i686
kernel-PAE-devel-2.6.38.6-26.rc1.fc15.i686

[anif@anif ~]$ rpm -qa | grep gcc
libgcc-4.6.0-7.fc15.i686
gcc-c++-4.6.0-7.fc15.i686
gcc-4.6.0-7.fc15.i686
gcc-gfortran-4.6.0-7.fc15.i686

[anif@anif ~]$ rpm -qa | grep make
automake-1.11.1-5.fc14.noarch
automake17-1.7.9-14.fc15.1.noarch
automake15-1.5-29.fc13.1.noarch
automake16-1.6.3-18.fc13.1.noarch
cmake-2.8.4-1.fc15.i686
automake14-1.4p6-21.fc15.noarch
make-3.82-4.fc15.i686

3. If you can not find output from rpm -qa above, install this package with yum (connect using wired to internet)

[anif@anif ~]$ su –
Password:
[root@anif ~]# yum install kernel-PAE-devel
[root@anif ~]# yum install kernel-headers
[root@anif ~]# yum groupinstall “Development Tools”

4. Download source code for BCM4312 here, choose 32 bit or 64 bit depend on your kernel version. And download patch for this source code too 5_100_82_38.patch

[anif@anif ~]$ mkdir bcm4312
[anif@anif ~]$ cd bcm4312/
[anif@anif bcm4312]$ wget -c http://www.broadcom.com/docs/linux_sta/hybrid-portsrc_x86_32-v5_100_82_38.tar.gz
[anif@anif bcm4312]$ wget -c http://www.broadcom.com/docs/linux_sta/5_100_82_38.patch

Now extract hybrid-portsrc_x86_32-v5_100_82_38.tar.gz using this command

[anif@anif bcm4312]$ tar -zxvf hybrid-portsrc_x86_32-v5_100_82_38.tar.gz

Apply patch file with this command

[anif@anif bcm4312]$ patch -p0 < 5_100_82_38.patch

Compile source:

[anif@anif bcm4312]$ make clean

[anif@anif bcm4312]$ make

Install new module for BCM4312 with this command:

[anif@anif bcm4312]$ su -c ‘make install’

or

[anif@anif bcm4312]$ su -c ‘cp wl.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless’

Check module b43, ssb, wl with this command:

[anif@anif bcm4312]$ lsmod | grep “b43\|ssb\|wl”

b43 264346 0

mac80211 201962 1 b43

cfg80211 116073 2 b43,mac80211

ssb 40469 1 b43

mmc_core 61566 2 b43,ssb

Now before we load new compiled module, we must remove old module first, from gnome-terminal run

[anif@anif bcm4312]$ su -c ‘rmmod b43’

[anif@anif bcm4312]$ su -c ‘rmmod ssb’

[anif@anif bcm4312]$ su -c ‘rmmod wl’

ERROR: Module wl does not exist in /proc/modules

Next step, run depmod -a before modprobe wl to load new module

[anif@anif bcm4312]$ su -c ‘depmod -a’

[anif@anif bcm4312]$ su -c ‘modprobe lib80211’

[anif@anif bcm4312]$ su -c ‘modprobe wl’

Now if you look on Network Manager, you will see wireless network already detected by Fedora 15

To make sure wl module loaded by Fedora 15 after reboot, first add b43 and ssb to /etc/modprobe.d/blacklist.conf

[anif@anif bcm4312]# su –
[root@anif bcm4312]# echo “blacklist ssb” >> /etc/modprobe.d/blacklist.conf
[root@anif bcm4312]# echo “blacklist b43” >> /etc/modprobe.d/blacklist.conf

Now add modprobe wl into /etc/rc.local

[root@anif bcm4312]# echo “modeprobe wl” >> /etc/rc.local

Reboot your system and after finish reboot, Network Manager will detect your wireless card.

Later if you update Fedora 15 with “yum update” command, you need recompile module again using new kernel

[anif@anif bcm4312]$ make clean
[anif@anif bcm4312]$ make
[anif@anif bcm4312]$ su -c ‘make install’

[anif@anif bcm4312]$ su -c ‘rmmod b43’
[anif@anif bcm4312]$ su -c ‘rmmod ssb’
[anif@anif bcm4312]$ su -c ‘rmmod wl’

[anif@anif bcm4312]$ su -c ‘depmod -a’
[anif@anif bcm4312]$ su -c ‘modprobe wl’

Next time I’ll explain how to config wireless connection on Fedora 15 🙂

For install Broadcom BCM4312 802.11b/g chipse using RPM Fusion repository click here