Dienstag, 8. Mai 2012

Why b43 driver does not load, even though brcmsmac is blacklisted

Hello world!
For some time now, I am trying to switch from my Microsoft Windows installation to a Linux one, Fedora 17beta to be precise. I am progressing very fast, but here and there it takes some time to get some things working for which you had a tool on Windows that doesn't exist on linux and which is too sophisticated for wine.


The hardest issue so far was the following:
In Windows 7HP it is fairly easy to turn your laptop's wireless card into a hotspot and thus sharing its ethernet connection with some other devices, in my case my smartphone and tablet. This is somehow important to me, because my room is simply too remote from our usual router, and my devices running android's apps have to be updated regularly. For the task of turning my notebook into a hotspot there exist several tools, simply go to www.alternativeto.net and pick the one you like best. I personally got along best with Virtual Router, since it is open source, free, and somehow light-weight. I can also recommend Virtual Wifi Router Version 2, it doesn't even require an installation, but somehow there are some graphical glitches.


Ok, let's get back to the original topic. Under Linux, those tools do NOT exist, there is only one software package that I could find that provides this feature, but of course not with a nice graphical UI. It is called "hostapd". For more advanced users it should be easy to get it running and there are a lot of guides covering how to get it to work with different dhcp servers etc.


BUT that is not the initial problem. Wireless in Linux is a world for itself, and especially the drivers and their features vary like animals in a zoo. Hostapd needs special drivers complying with the new mac80211 stack, which provides host-mode functionality. My notebook includes a broadcom card called BCM43225, and the only driver that promised to have this feature was b43, only working with my card since kernel 3.2.


So I initiated everything - I installed the firmwarecutter (b43-fwcutter), blacklisted the originally used driver brcmsmac and since it did not work from the beginning (of course) I even posted stupid questions into a forum. Finally I decided to compile my own kernel, completely stripped of brcmsmac, which I assumed to be interfering with b43. And then --- boom! I stumbled upon this option in the kernel configuration tool
Wireless LAN --> Broadcom43xx wireless support --> Hardware support that overlaps with the brcmsmac driver
Screenshot of xconfig












I hope you see, what the point is. It is possible to disable b43's support for all cards that can be used with brcmsmac, and the developers of Fedora promptly used this "feature". But why would you do that??? I mean, read <<<HERE>>> and you will get the impression that the kernel hackers themself are more convinced with their own work than with the new driver programmed by Broadcom. Is it really so complicated to filter drivers so that only one is used at a time for the same hardware that you have to hardcode limitations into overlapping drivers?


I spent hours on searching the web for someone maybe having the same problem. "Why does b43 not feel responsible for BCM43225", "why doesn't it load automatically?" etc. The answer is: The distributors (I'm sure Ubuntu does the same) couldn't imagine someone wanting to have more features in the driver. Ok, I might be a bit demanding - for a product that I use for free and that is so great. Dear Linux community, you are awesome. And I have to apologize if I sound  reproaching. In the end it is Broadcom's fault, since they didn't cooperate and still do not add all the features to their drivers. Please consider this article as constructive criticism.


I hope that if there is someone out there that wants to do something similar will find this post so that he doesn't have to waste so much time.


Yours sincerly,
suluke

Keine Kommentare:

Kommentar veröffentlichen

Thanks for spending time on giving me feedback. I really appreciate it :)