WelcomeWelcome | FAQFAQ | DownloadsDownloads | WikiWiki

Author Topic: Broadcom Confusion [solved]  (Read 3183 times)

Offline richardh

  • Newbie
  • *
  • Posts: 17
Broadcom Confusion [solved]
« on: July 23, 2010, 06:40:54 AM »
(Having re-read this I realise this it could be misinterpreted as a rant (which is not intended) and that it end up asking more than one question (which is not ideal) but it seems to be the best way to handle my confusion. I have trawled the forums but the posts that I found were not able to educate me...).

OK Here goes. I first used TinyCore about a week ago under version 2. Wireless was simple. Having acquired the relevant extentions the kernel automatically loaded: wl, lib80211_crypt_tkip and lib80211. One of these created a new interface eth1. I simply added wicd-start to bootlocal.sh and then wicd-gtk was able to do the rest. The entire process took a few minutes (thanks partly to TCs wonderfully fast boot! ;D) and worked first time. For my 6 days of TC2 it was great.

Now that I've moved to TC3 (which seems mostly great by the way) wireless has 'broken'... wl, lib80211_crypt_tkip and lib80211 are no longer loaded, instead being replaced by b43,cfg80211 and mac80211. One of these has created a wlan0 interface but ifconfig cannot bring the interface up (presumably because of missing firmware - noted below). Adding wl, lib80211_crypt_tkip and lib80211 no longer produces eth1 however dmesg informs me that wl has 'tainted' the kernel and that b43 requires firmware to be cut from other sources.

So; the actual questions:

1. What has actually happenned here and why? If wl etc was working why has b43 appeared to break things?

2. It appears that I have a choice of using wl or b43. Which is correct/preferred/recommended?

3. I've heard of blacklisting modules but I've never had to do so before. With TCs extention system should I be adding /etc/modprobe.d/blacklist.conf to my .filetool.lst or should it be included as a .tcz extention in its own right? I also noticed a blacklist= bootcode mentioned in the TC3 announcement. Is this the preferred method?

(btw; blacklist= doesn't seem to be in the bootcodes faq. Might be worth adding that?).

Thanks in advance, Richard
« Last Edit: July 23, 2010, 11:28:19 AM by richardh »

Offline Juanito

  • Administrator
  • Hero Member
  • *****
  • Posts: 14815
Re: Broadcom Confusion
« Reply #1 on: July 23, 2010, 07:24:09 AM »
You quite possibly have three choices to get wifi working in tc-3 (all three work for my broadcom chipset):

1. b43 & firmware
2. wl
3. ndiswrapper

For both wl and ndiswrapper, you would need to add "blacklist=ssb blacklist=b43" to your bootcodes in order for them to work.

I believe (I could be wrong) that using b43 gives the most functionality, but you would need to obtain the firmware and make your own personal extension out of it - this is what I've done.

There are instructions on how to obtain the correct firmware here:

http://linuxwireless.org/en/users/Drivers/b43

Offline richardh

  • Newbie
  • *
  • Posts: 17
Re: Broadcom Confusion
« Reply #2 on: July 23, 2010, 08:32:28 AM »
Having played a little further, I think the solution for me is definitely to blacklist the two modules and let wl etc work its magic.

One thing that does stick in my mind is that I don't understand the difference between wl and b43 and the dozen or so sites I have visited do not explain this (at least not that I can understand). If anyone can give an idiot's explanation I would be very grateful.

Thanks again, Richard.

Offline Juanito

  • Administrator
  • Hero Member
  • *****
  • Posts: 14815
Re: Broadcom Confusion [solved/worked around]
« Reply #3 on: July 23, 2010, 08:51:48 AM »
As far as I understand, broadcom cannot give linux developers the details required to develop a kernel module for their hardware due to the nature of their contract with microsoft - I could easily be mistaken.

The above (or something of a similar nature) means that linux developers have been obliged to reverse engineer a module to get broadcom hardware to work with linux - this module is b43.

At some point after work was started on reverse engineering the b43 module, broadcom released their own proprietry linux module - wl - possibly to encourage the reverse engineering efforts to cease...

Edit: ..and thus the true linux dude should probably use the b43 module, but whatever  ;)
« Last Edit: July 23, 2010, 08:59:20 AM by Juanito »

Offline richardh

  • Newbie
  • *
  • Posts: 17
Re: Broadcom Confusion [solved/worked around]
« Reply #4 on: July 23, 2010, 11:27:59 AM »
One last question before I leave this alone...

It seems that b43 will force/urge me to use cfg80211 and mac80211, whereas wl was using lib80211_crypt_tkip and lib80211. I also gathered from somewhere (don't ask me where - I've been trawling dozens of sites for this info) that cfg80211 etc are the 'new and therefore recommended' wireless modules. With that in mind, does this mean that lib80211_crypt_tkip and lib80211 will be deprecated/obsoleted in the future and I will be forced into taking the b43 driver?

Whether I get an answer for that one or not, I'll call this one solved. Thanks again for the help.

Offline curaga

  • Administrator
  • Hero Member
  • *****
  • Posts: 11044
Re: Broadcom Confusion [solved]
« Reply #5 on: July 23, 2010, 11:32:05 AM »
Yes, the old wireless stack will be deprecated and then removed at some point. After that, unless Broadcom updates the wl module, you'd be forced to use kernels before the removal.

Kinda-forced.
The only barriers that can stop you are the ones you create yourself.

aus9

  • Guest
Re: Broadcom Confusion [solved]
« Reply #6 on: July 23, 2010, 08:45:20 PM »
hi

I have no such device but a diff distro has links to this if interested?

http://www.ing.unibs.it/openfwwf/


aus9

  • Guest
Re: Broadcom Confusion [solved]
« Reply #7 on: August 16, 2010, 08:35:53 AM »
in case you need to blacklist a module, I discovered and succeeded with some sound modules but IMHO you may like to test?

use root powers to edit /opt/bootlocal.sh

for each module have a line that reads

/sbin/modprobe -r modulename

good luck