Download your favorite Linux distribution at LQ ISO.
Go Back > Blogs > jimX86
User Name


Rate this Entry

Slackware64, BCM4312 LP PHY and proprietary Broadcom driver.

Posted 09-05-2009 at 09:45 PM by jimX86
Updated 10-17-2009 at 05:41 PM by jimX86 (changed to `uname -r`; noted addition of slackbuild)

Additional note: A broadcom-sta package has now been added to the Slackbuilds Repository. (It also appears that a patch is no longer necessary for the 2.6.29 kernels. I haven't tested this though... unless I upgrade kernels I'm leaving this alone.)

(Note: onebuck pointed out in the Slackware forum that Broadcom provides a patch for kernel 2.6.29. I had been having trouble finding the correct patches, so I was using the patched Debian source. That's pointless now, so I've deleted the earlier posts to avoid confusion.)

Why would you want to use the proprietary Broadcom driver?
In my case, I don't have much choice. I bought a 64-bit Acer Aspire 5515 notebook, and the wireless card is a low power device that isn't supported (yet) by the open source drivers. In the past I've used the open source drivers for other Broadcom cards, but the choice is yours. Maybe try both and see if there's any difference.

How do you know if your Broadcom device is supported by the open source drivers?
As root, run the following command: lspci -vnn | grep 14e4
You need the PCI-ID; it's the number inside the last brackets following 14e4. Check it against the chart at If your card is supported, follow the instructions on the same page to install the open source driver.

Installing the proprietary driver:

1. Make a new directory.
mkdir Broadcom
2. Download the driver and patch from Broadcom to your new directory. For Slackware64, you need the 64-bit driver and the patch for kernel 2.6.29. There's also a README-encrypted file, or you could just follow along here.
3. Unpack the driver:
tar xvfz hybrid*
4. Unpack the patch:
unzip *patch*
5. Apply the patch:
patch -p1 < patch*
6. It never hurts to play it safe, so let's clean up:
make -C /lib/modules/`uname -r`/build M=`pwd` clean
7. Build the module:
make -C /lib/modules/`uname -r`/build M=`pwd`
8. What you're looking for is the new module, wl.ko. Copy it to the appropriate directory for wireless modules. You'll need to be root for this:
cp wl.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless
9. Update the module list:
10. You need to be sure you're not running the open source modules. You can check by running lsmod. You're looking for b43, bcm43xx, or b43legacy. If any of them are loaded, use rmmod to unload them. (If you have to do that, you probably want to blacklist them in /etc/modprobe.d/blacklist.conf.)
11. Load the new module:
modprobe wl
12. If everything works, you may want to autoload the module by adding it to /etc/rc.d/rc.modules.
Posted in Uncategorized
Views 2729 Comments 0
« Prev     Main     Next »
Total Comments 0




All times are GMT -5. The time now is 02:43 AM.

Main Menu
Write for LQ is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration