HOWTO: Broadcom Wireless cards With Native Drivers

Issues Related to Networking (Wired and Wireless)

Moderator: Moderators

HOWTO: Broadcom Wireless cards With Native Drivers

Postby chickpea » Mon Feb 04, 2008 22:29

DEPRECATED (with update for 2.6.26)

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. :D

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 #
where # is = to the number of the 2.6.24 or higher kernel we identified in the first eselect command.

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
(remember we changed kernels there so this is necessary)

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
(Note NOT the -010 version, this is for kernels beginning 2.6.25 and up)

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
NOTE: ONLY wl_apsta_mimo.o will work, NOT wl_apsta.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 :( and your Broadcom 4311 rev 2 card should come up.
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 :oops:
spelling in title HA! :oops::oops:

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.
Last edited by chickpea on Mon Jul 21, 2008 17:05, edited 6 times in total.
chickpea
Sagely Hen
 
Posts: 1084
Joined: Fri Jan 05, 2007 15:08
Location: Washington, DC

Re: HOWTO: Broadcom Wireless cards With Native Drivers

Postby watson540 » Tue Feb 05, 2008 7:27

very interesting. thanks for taking the time to put that up. still i dont have much reason to use it, unless..that is...unless you can throw the packet injection patch on there as well and get it working :)
watson540
Simple Hen
 
Posts: 78
Joined: Tue Mar 13, 2007 7:28

Re: HOWTO: Broadcom Wireless cards With Native Drivers

Postby chickpea » Tue Feb 05, 2008 15:16

I'm just happy that I am able to finally use native linux drivers to run my card. Now you want package injection, geez. :wink:

BTW, I forgot that sabayon-sources is no longer the appropriate source package to install, but now linux-sabayon is the source package. With that I also noticed that linux-sabayon-2.6.24 exists. I am not sure if this source package already contains Larry Finger's patch for the bcm4311_2 cards. Give it a shot and report back, you may still be able to use linux-sabayon sources instead of the generic gentoo-sources.
chickpea
Sagely Hen
 
Posts: 1084
Joined: Fri Jan 05, 2007 15:08
Location: Washington, DC

Re: HOWTO: Broadcom Wireless cards With Native Drivers

Postby kal » Thu Feb 14, 2008 13:17

Have a broadcom 4318 board here.
Code: Select all
lspci -n | grep 14e4:43
0001:10:11.0 0280: 14e4:4318 (rev 02)

Had to use wl-apsta.o driver to get this to work. Trying to use wl-apsta.mimo.o did not work at all.
I am who I am because of who we all are.
If it moves, compile it.
kal
Baby Hen
 
Posts: 9
Joined: Tue Jan 01, 2008 5:48

Re: HOWTO: Broadcom Wireless cards With Native Drivers

Postby chickpea » Thu Feb 14, 2008 19:43

hmm, interesting. So it's working? Well, or poorly? What version driver tarball?
chickpea
Sagely Hen
 
Posts: 1084
Joined: Fri Jan 05, 2007 15:08
Location: Washington, DC

Re: HOWTO: Broadcom Wireless cards With Native Drivers

Postby kal » Sat Feb 16, 2008 6:53

chickpea wrote:hmm, interesting. So it's working? Well, or poorly? What version driver tarball?

Using Sabayon 3.5 loop 1
tarball version: 4.80.53.0
kernel: 2.6.24-gentoo-r2
Didn't bother to apply the patch file for broadcom 4311_2 seeing as I have a 4318
knetworkmanager reports the bandwidth at 54 Mb/s (yes it works with knetworkmanager :D ...it never did with the old bcm43xx driver)
Signal strength is at 70% but my computer is also 5 feet away from my access point (never worked with bcm43xx driver even with the access point right next to it)
Speed seems to be full speed. side by side with a "wired" windoze machine using firefox, pages seem to load about the same speed
http://www.speedtest.net shows me at full speed if that matters any.
Still trying to figure out why it won't work with the wl_apsta_mimo.o driver :?:
I also didn't bother to build the b43legacy module, just b43
I am who I am because of who we all are.
If it moves, compile it.
kal
Baby Hen
 
Posts: 9
Joined: Tue Jan 01, 2008 5:48

Re: HOWTO: Broadcom Wireless cards With Native Drivers

Postby chickpea » Sat Feb 16, 2008 16:20

Cool so it seems to be working well for you (comparatively). No idea why mimo.o is not the proper firmware you 4318 cards, but at least its working. The b43legacy won't load up UNLESS YOU NEED IT. The native modules are smart and know whether you need b43 or b43 legacy, the reason I told people to compile both in is a CYA move on my part, that way if someone has legacy card, they already have the legacy support built in and the module will auto select the appropriate module.
chickpea
Sagely Hen
 
Posts: 1084
Joined: Fri Jan 05, 2007 15:08
Location: Washington, DC

Re: HOWTO: Broadcom Wireless cards With Native Drivers

Postby Clayton » Fri Feb 29, 2008 4:09

I am trying to go through these steps and when i get to
Code: Select all
cp /where/ever/patch_2.6.24_for_4311_2/ /usr/src/linux


i get this
Code: Select all
localhost clayton # cp /where/ever/patch_2.6.24_for_4311_2/ /usr/src/linux
cp: cannot stat `/where/ever/patch_2.6.24_for_4311_2/': No such file or directory


any ideas of what to do?
Im dual booting Vista and Sabayon v.3.5
Clayton
Baby Hen
 
Posts: 14
Joined: Thu Feb 28, 2008 6:41
Location: New York

Re: HOWTO: Broadcom Wireless cards With Native Drivers

Postby chickpea » Fri Feb 29, 2008 4:16

You are taking my directions too literally. Use your head, did you read the file path?

/where/ever/patchfile.is ?

you need to replace that with the real file path where you really saved the patch.
chickpea
Sagely Hen
 
Posts: 1084
Joined: Fri Jan 05, 2007 15:08
Location: Washington, DC

Re: HOWTO: Broadcom Wireless cards With Native Drivers

Postby Clayton » Fri Feb 29, 2008 5:55

Ok Im to the part where I type in
Code: Select all
localhost clayton # b43-fwcutter -w /lib/firmware /home/clayton/Desktop/broadcom-wl-4.80.53.0/wl_apsta.o
Cannot open input file /home/clayton/Desktop/broadcom-wl-4.80.53.0/wl_apsta.o

Code: Select all
localhost clayton # b43-fwcutter -w /lib/firmware /home/clayton/Desktop/broadcom-wl-4.80.53.0/wl_apsta_mimo.o
Cannot open input file /home/clayton/Desktop/broadcom-wl-4.80.53.0/wl_apsta_mimo.o

Note: I extracted it onto my desktop, also if i use
Code: Select all
localhost clayton # b43-fwcutter -w /lib/firmware /home/clayton/Desktop/wl_apsta_mimo.o
Cannot open input file /home/clayton/Desktop/wl_apsta_mimo.o

Code: Select all
localhost clayton # b43-fwcutter -w /lib/firmware /home/clayton/Desktop/wl_apsta.o
Cannot open input file /home/clayton/Desktop/wl_apsta.o


Also note I could not
Code: Select all
localhost clayton # emerge -av =net-wireless/b43-fwcutter-011
These are the packages that would be merged, in order:
Calculating dependencies \
emerge: there are no ebuilds to satisfy "=net-wireless/b43-fwcutter-011".

so I just used
Code: Select all
localhost clayton # emerge -av =net-wireless/b43-fwcutter-009



Please help
Clayton
Baby Hen
 
Posts: 14
Joined: Thu Feb 28, 2008 6:41
Location: New York

Next

Return to Networking and Wireless

Who is online

Users browsing this forum: No registered users and 2 guests