# Wireless Broadcom Driver not working

## nullstone

Hello Gentoo community! First of all I want to tell you that you have all my respects for this free amazing community!

I'm new in Gentoo world, but I want to learn a lot on this part.

Ok, now my problem, which just damned my brain.

I install Calculate Linux on my laptop, but wireless doesn't work.

I tried everything from this; http://wiki.gentoo.org/wiki/Wifi

http://wireless.kernel.org/en/users/Drivers/b43#Gentoo

I've searched for help on Calculate Linux forums, but no success.

A result after lscpi | grep -i network:

 *Quote:*   

> stone@calculate ~/files $ sudo lspci | grep -i network
> 
> 03:00.0 Network controller: Broadcom Corporation BCM43227 802.11b/g/n
> 
> 

 

After lspci -nn | grep -i network:

 *Quote:*   

> 03:00.0 Network controller [0280]: Broadcom Corporation BCM43227 802.11b/g/n [14e4:4358]

 

The result when I try to emerge net-wireless/broadcom-sta with argument -av:

 *Quote:*   

> 
> 
> Local copy of remote index is up-to-date and will be used.
> 
>  * IMPORTANT: config file '/etc/portage/package.keywords/custom' needs updating.
> ...

 

Please help me, because I need the wireless these days.

Thanks a lot, and again, all my regards!

~ nullstone

----------

## Logicien

Hi,

you are on the good way I think. No in Linux kernel tree Broadcom drivers support your BCM43227 802.11b/g/n [14e4:4358] card. According to http://wireless.kernel.org/, b43, b43legacy, brcmsmac and brcmfmac does not support it.

So, you compile the net-wireless/broadcom-sta package who add the wl module to your running kernel modules. wl should be available now to use. But emerge show that broadcom-sta complain about some options who are activated in the Linux kernel that can cause problems to the wl module.

You have to disable the b43 (B43), ssb (SSB), mac80211 (MAC80211) support and set the PREEMPT_RCU option to something else than "Preemptible Kernel" in the kernel configuration. Than recompile the kernel and reboot. Reinstall the broadcom-sta package after that to see if there's no complain.

You can try to use the wl module without reconfigure and recompile the kernel, but I would do it anyway. Be sure only one Broadcom kernel module driver is load at a time between wl, b43, b43legacy and brcmsmac.

Execute the

```
dispatch-conf
```

command to update your configuration files. After that, you should be ready to load the wl module

```
modprobe wl
```

You should have a new wireless network interface that you can use when you do

```
ifconfig -a
```

----------

## nullstone

Thanks for the answer.

I disabled I think the MAC80211 from Kernel Configuration, from Devices Driver -> Wireless (something like that), but I don't find the others.

here is the lsmod result, I wish it could be useful:

 *Quote:*   

> stone@calculate ~ $ lsmod
> 
> Module                  Size  Used by                        
> 
> ecryptfs               72814  0        
> ...

 

----------

## Logicien

The Broadcom wireless kernel support is at Devices drivers/Network devices support/Wireless LAN/. There you can disable everything. The proprietary Broadcom kernel module wl dont need that.

You can make a search in the kernel tree if you type the / character. Than you can use a keyword and press Enter. Everything who match will be displayed with a path to the option.

I do not see any Broadcom module with lsmod. They can be compiled in the kernel, or in modules and not loaded, or not compiled at all. Normally the kernel load the appropriate module who should be wl for your card.

----------

## nullstone

I disabled MAC80211 from kernel configuration, but after a boot up if the ethernet cable is plugged in, the screen is stucked... then, I must to re-enable it.

I didn't understand very well what you said in ^ post. With which command can I search for a module in the kernel?

----------

## Logicien

When you are in the Linux kernel menu configuration, if you press the slash (/) character, than a search dialog box will appear. You can enter a keyword to find kernel options in the menu related to that keyword. Than the result in displayed in a window who list all kernel options related with the keyword. You have the path to the options in the Linux kernel menu configuration and other informations.

----------

## nullstone

So, I have to disable each one? Because the MAC*, if is disabled, when I plug the Ethernet Cable, the screen got stucked.

----------

## Logicien

It's look like you have an other problem to resolv than the wireless support. Did you install the linux-firmware package? Some nic's need the firmwares of this package to work properly.

----------

## nullstone

 *Quote:*   

> calculate stone # emerge --ask linux-firmware
> 
> Local copy of remote index is up-to-date and will be used.
> 
>  * IMPORTANT: config file '/etc/portage/package.keywords/custom' needs updating.
> ...

 

It seems that is installed correctly.

ps. An wireless adapter may solve this problem?

----------

## nullstone

Any another suggestions?  :Sad: 

----------

## HerrSchafer

Hi! I also have a BROADCOM wireless hardware. In this thread the community has helped me. After that, I intalled WICD and all things works fine; see the part of kernel config, it may help you.

----------

## nullstone

^ thanks for the answer. 

I've read the topic.. but I didn't understand too good how you solve it... after you modified the kernel configuration? 

Thanks again.  :Smile: 

----------

## HerrSchafer

 *nullstone wrote:*   

> ^ thanks for the answer. 
> 
> I've read the topic.. but I didn't understand too good how you solve it... after you modified the kernel configuration? 
> 
> Thanks again. 

 

It's quite simple (after a huge headache  :Razz: ):

I have emerged wicd and my wireless start working.

----------

## nullstone

Ahrm.. I emerged wcid, then I /etc/init.d/wcid start-it, it's ok... but the wireless networks still don't appear.

----------

## Logicien

Wicd, NetworkManager and other network tools like them manage the Internet connectivity and TCP/IP protocols configuration. They do not manage the hardware detection and support. They are userspace tools. The hardware detection and support is done by the Linux kernel.

nullstone, I told you in my first post, unless something I miss, your Broadcom wireless card [14e4:4358] is not supported by any native Linux kernel driver. I haven't found any reference to [14e4:4358] at http://linuxwireless.org/ . You have to use the broadcom-sta package from Portage that provide the wl module.

----------

## nullstone

I've tried again to emerge the broadcom-sta, but the same errors, such as:

 *Quote:*   

>  *   B43: If you insist on building this, you must blacklist it!
> 
>  *   SSB: If you insist on building this, you must blacklist it!
> 
>  *   MAC80211: If you insist on building this, you must blacklist it!
> ...

 

And yes, I tried to blacklist them, to remove them from kernel configuration, and same thing...

----------

## Logicien

It may be just a warning with consequences only if one or more of the b43, ssb and mac80211 modules are loaded during the wl module try to load. The same problem can arrive if their support are in the kernel image itself.

Obviously, if you disable completely B43, SSB and MAC80211 in the kernel they will not be in the kernel image and in modules. So, that way, no problem can arrive. For sure they must not be in the kernel image, but, you can keep them as modules if you blacklist them to prevent their load.

Blacklist modules do not prevent them for being loaded all the time. I would prefer in the presence of the b43, ssb and mac80211 modules to create or edit the file /etc/modprobe.d/modprobe.conf with the lines

```
Install b43 /bin/true

Install ssb /bin/true

Install mac80211 /bin/true
```

This prevent those modules form being loaded all the time unless you use the -i or --ignore-install option of modprobe. After check with lsmod and unload the b43, ssb and mac80211 modules if needed, you should be ready for

```
modprobe wl
```

and add wl to /etc/conf.d/modules.

----------

## raddaqii

This thread is old, but I had solved this ages ago, and work happily with an Acer Travelmate 8573T and the BCM43227. I see the confusion around 

CONFIG_MAC80211 which is rarely needed for consumer grade devices once in a while, so thought I'd share.

You have this:

```

#  lspci -nn | grep -i network

02:00.0 Network controller [0280]: Broadcom Corporation BCM43227 802.11b/g/n [14e4:4358]

```

and you want wireless to work. No need to emerge net-wireless/broadcom-sta! Disable B43, SSB; I pasted the .config file for sys-kernel/gentoo-sources-3.14.8 here: http://dpaste.com/2WW3TYH. 

Instead I use:

```
linux # modinfo wl

filename:       /lib/modules/3.14.8-gentoo/net/wireless/wl.ko

license:        Mixed/Proprietary

alias:          pci:v*d*sv*sd*bc02sc80i*

depends:        

vermagic:       3.14.8-gentoo SMP mod_unload modversions 

parm:           wl_txq_thresh:int

parm:           oneonly:int

parm:           piomode:int

parm:           instance_base:int

parm:           nompc:int

parm:           intf_name:string

```

I have no blacklist entries for modules whatsoever.

Hope this helps.

Edit: typofix and purged all references to a 3.15.0-r1 kernel, where compiling would fail every time. Fix up wrong MAC80211 hints.Last edited by raddaqii on Wed Jun 25, 2014 6:27 am; edited 2 times in total

----------

## khayyam

 *raddaqii wrote:*   

> I see the confusion around CONFIG_MAC80211 which is rarely needed for consumer grade devices [...]

 

raddaqii ... that is incorrect, CONFIG_MAC80211 is the "hardware independent IEEE 802.11 networking stack", its needed for all in kernel wireless drivers using NL80211 (whatever the "grade"). The broadcom-sta driver is out of tree and so doesn't use the kernels wireless infrastructure.

best ... khay

----------

## raddaqii

khayyam, thanks for clarifying. Indeed I had that mixed up.

----------

