Due to the advent of the 2.6.25 kernel, this howto is no longer needed (Thanks to the Linuxwireless folks. For detailed (and easier to follow instructions on how to get these cards working please follow http://www.linuxwireless.org/en/users/D ... stallation these instructions (the "bleeding edge" instructions are for >=2.6.25 kernels). Note: you will still need to make sure that the kernel is properly configured to use the b43 and NOT the bcm43xx drivers.
Just tried the 2.6.26-gentoo-sources kernel. In a word, fabulous. b43 is much more stable, faster, and less buggy in this kernel. wpa_supplicant has continued to cause problems, although I am not sure where the issue lies (openrc, kernel drivers, networkmanager, wpa_supplicant?). Again, depending on your Broadcom card chipset, YMMV.
UPDATED AGAIN!!
UPDATED!
With the advent of the 2.6.25 kernel (which is coming soon to a portage near you) you will no longer need to patch the kernel to get B43 working for BCM4311 rev 2 cards, in fact bcm43xx is now deprecated and will no longer be included in the new kernels. So, this whole painful process just got a LOT easier for newbies. You will need to do nothing more than make sure your 2.6.25 kernel has B43 compiled in as a module and install the necessary firmware with b43-fwcutter-011. I expect that lxnay will be incorporating this new kernel in post 3.5 releases and having it work OOTB, but for those waiting for 3.5 to fix this issue, I am afraid it is probably going to miss this release cycle (I haven't spoken to lxnay about this, it's just my uninformed impression about where lxnay will probably concentrate his efforts (and upgrading to the latest kernel release midway through the beta stage, is probably not what he wants to do). Thus, for those of us who need this HOWTO, you will either need to patch your linux-sabayon-2.6.24-rX kernel or run a gentoo-sources-2.6.25 kernel until the linux-sabayon-2.6.25 kernel gets released. Exciting things for these problematic cards in the near future!
As many of you have come to notice, ndiswrapper no longer works for the Broadcom cards, as the module ssb grabs the wireless card and won't let go, even with vigorous rmmodding. So what to do? Until now, BCM4311 rev 2 cards did not work with the native bcm43xx drivers. Now, with the advent of the new b43 driver and some tweaking, we can get NATIVE linux wireless goodness.
So first, we need to install a 2.6.24 kernel. So first
UPDATE! For kernels 2.6.25+ the following steps are no longer necessary. If you are upgrading your kernel from a version <2.6.25 then you will need to follow all the step to configure and install the new 2.6.25 kernel, but skipping those steps concerning PATCHING the kernel. After 2.6.25 the patch is no longer required
- Code: Select all
emerge -av =sys-kernel/linux-sabayon-2.6.24
Or =sys-kernel/linux-sabayon-2.6.25 or =sys-kernel/gentoo-sources-2.6.25 as they become available
Now we need to update the kernel symlink:
- Code: Select all
eselect kernel list
find the 2.6.24 (or 2.6.25 if using that kernel) kernel in the list, and
- Code: Select all
eselect kernel set #
UPDATE the following step is NOT NECESSARY if you are running a kernel >2.6.24-rX
Now we need to download the proper patchfile:
get it from:
http://linuxwireless.org/download/b43/p ... for_4311_2
- Code: Select all
cp /where/ever/patch_2.6.24_for_4311_2/ /usr/src/linux
Now:
- Code: Select all
cd /usr/src/linux
patch -p1 <patch_2.6.24_for_4311_2
(Ps I used this Gentoo post as my source for this info http://forums.gentoo.org/viewtopic-p-46 ... ml#4666274)
Now we build the new kernel:
PICKUP from here if you are using a kernel >2.6.24-rX
- Code: Select all
zcat /proc/config.gz > /usr/src/config
and then
- Code: Select all
genkernel --kernel-config=/usr/src/config --xconfig --bootloader=grub --splash=sabayon all
if you manually partitioned.
or
- Code: Select all
genkernel --kernel-config=/usr/src/config --xconfig --bootloader=grub --splash=sabayon --lvm all
if you used the partitioner with the installer
Some of you will notice that I chose to use xconfig and not menu config, this is because I think it's easier to find which wireless driver to use.
Then when xconfig comes up, Go to Wireless Lan. Then unselect the FIRST broadcom entry, if you read the explanation of the module, it will say "bcm43xx", next select the next Broadcom driver down (the explanation will be "B43", and also enable debugging support, along with the next drivers down B43 legacy.)
Now save, the config and quit. You kernel will now compile and happily install itself.
Once that is finished, don't forget to run
- Code: Select all
module-rebuild rebuild
Now we need the appropriate firmware and firmware installer.
UPDATE! For the new 2.6.25+ kernels you will use the b43-fwcutter-011 with a DIFFERENT tarball. Please see http://linuxwireless.org/ for more details and to get the appropriate firmware tarball
- Code: Select all
emerge -av =net-wireless/b43-fwcutter-009
EDIT: Linuxwireless webpage has changed and now states that the b43-fwcutter-011 version is the appropriate fwcutter version. I have not tried this new version and I cannot verify that it works with 2.6.24 kernels. I do know that previously version -010 did NOT work with 2.6.24 kernels. Try out the -011 version and report back if it works.
Now we need to download the appropriate firmware tarball. Go to http://linuxwireless.org/en/users/Drive ... cefirmware
Download the broadcom-wl-4.80.53.0.tar.bz2 tarball, NOT the broadcom-wl-4.150.10.5.tar.bz2 NOTE: Use the higher numbered tarball if you are using a kernel >2.6.24-rX (of course, if you need legacy card support download the appropriate legacy tarball).
Now, untar it somewhere you can find it. (I don't untar things in the commandline, I just use right click, extract here.)
Now do this:
- Code: Select all
b43-fwcutter -w /lib/firmware /location/of/driver/wl_apsta_mimo.o
EDIT: Linuxwireless has updated the website and now states that with fwcutter versio-011 and 2.6.24 kernels you should use the wl_apsta.o file and not the mimo file. At the time this HOWTO was written it was not possible to use the wl_apsta.o file (I know I tried and failed to use that file). I do not know the difference between the two, so if someone more knowledgeable in this area were to post a reply/explanation that would be helpful. One user has reported that wl_apsta_mimo.o will NOT work for 4318 rev 2 cards. So BCM4318 rev 2 card users may need to use wl_apsta.o and not the _mimo.o version.
Ok now lets do this
- Code: Select all
echo "b43" >> /etc/modules.autoload.d/kernel-2.6
Now reboot (hopefully, your new kernel boots
Gentoo has some good info on these cards and what works, what doesn't. In my experience, this patched kernel, the LED does work (yeah!)
See it here:
http://forums.gentoo.org/viewtopic-t-54 ... t-b43.html
I have not tested this howto on anything other than a BCM94311 rev 2 wireless card, if yours is something different, I have NO IDEA this will work for you.
I was forced to do this because ndiswrapper refused to work anymore. Luckily even the problematic BCM4311 cards now work with the new b43 drivers in 2.6.24. Of course, if it doesn't work for you check the websites, I linked to, they may have better information on your exact card.
Cheers.
EDIT: fixed one errant command
spelling in title HA!
EDIT: linux-sabayon sources work with patch, so I changed it, no longer necessary to use the gentoo-sources (means we get the good lxnay lovin on the patches!)
EDIT: fixed for new kernel 2.6.25 and updated kernel module info.
