# bcm4312 SSB not getting unset in .config

## yinrunning

I did some system updates ~12 months ago and my bcm4312 card stopped working.  I didn't need it and hadn't payed attn to it.  Trying to get it up and running again.

I've tried the b43 kernel module and got "Unsupported PHY" errors which I couldn't find an answer to, so I'm attempting the broadcom-sta route.  However I can't get SSB to turn off and I can't figure out where it would be in menuconfig.  Even if I unset it in .config it still comes back every time I make menuconfig or make && make modules_install.  b43 is off.

----------

## Rexilion

Look at the SSB line and then look for the "Selected by" line and check if all of those are deactivated.

----------

## yinrunning

k, I found it, and I can't unset it.  I have a Broadcom wired ethernet controller.  Wifi did work with the broadcom-sta but I can't not have the wired connection.   :Neutral: 

So I'm back to this with the b43 kernel driver:

```
# dmesg | grep b43

[    0.313124] b43-pci-bridge 0000:0c:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17

[    0.313282] b43-pci-bridge 0000:0c:00.0: setting latency timer to 64

[    3.749322] b43-phy0: Broadcom 4312 WLAN found (core revision 15)

[    3.764108] b43-phy0 ERROR: FOUND UNSUPPORTED PHY (Analog 6, Type 5, Revision 1)

[    3.764152] b43: probe of ssb0:0 failed with error -95
```

Going to try to re-cut the firmware and see if that get me anywhere...

----------

## Rexilion

You probably have a b44 kernel driver based network card which you just deactivated. Is that possible?

----------

## yinrunning

Yeah.  That's back up and fine.  Can't get rid of the unsupported PHY though.  No idea, and can't find any help for it.    :Evil or Very Mad: 

----------

## Rexilion

So, you need to re-enable SSB to let the message go away as far as I can see   :Wink: 

----------

## ewaller

Recent kernels have native support for your wireless chip.  You should no longer need broadcom-sta at all.

You will need to re-cut the firmware with the latest version of firmware cutter.

----------

## Rexilion

You sure?:

# dmesg | grep b43

[    0.313124] b43-pci-bridge 0000:0c:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17

[    0.313282] b43-pci-bridge 0000:0c:00.0: setting latency timer to 64

[    3.749322] b43-phy0: Broadcom 4312 WLAN found (core revision 15)

[    3.764108] b43-phy0 ERROR: FOUND UNSUPPORTED PHY (Analog 6, Type 5, Revision 1)

[    3.764152] b43: probe of ssb0:0 failed with error -95

----------

## ewaller

ewaller@odin /usr/share/qt4/examples/opengl/textures $ dmesg | grep b43

[    0.757711] b43-pci-bridge 0000:02:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18

[    0.757830] b43-pci-bridge 0000:02:00.0: setting latency timer to 64

[    7.939505] b43-phy0: Broadcom 4312 WLAN found (core revision 15)

[    7.963855] Registered led device: b43-phy0::tx

[    7.963871] Registered led device: b43-phy0::rx

[    7.963887] Registered led device: b43-phy0::radio

[   14.182173] b43 ssb0:0: firmware: requesting b43/ucode15.fw

[   14.257917] b43 ssb0:0: firmware: requesting b43/lp0initvals15.fw

[   14.265382] b43 ssb0:0: firmware: requesting b43/lp0bsinitvals15.fw

[   14.405197] b43-phy0: Loading firmware version 410.2160 (2007-05-26 15:32:10)

ewaller@odin /usr/share/qt4/examples/opengl/textures $ sudo lspci | grep Broadcom

Password: 

02:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g (rev 01)

ewaller@odin /usr/share/qt4/examples/opengl/textures $ uname -a

Linux odin 2.6.33-gentoo #5 SMP Sat Feb 27 15:29:24 PST 2010 x86_64 Intel(R) Core(TM)2 Duo CPU T6400 @ 2.00GHz GenuineIntel GNU/Linux

----------

## yinrunning

You're on .33 kernel, I'm only on .31.  Is .33 stable?...

I did try a couple of the firmware options.  One was listed specifically for the 4312, but didn't list the 4315 chip as supported.

# uname -r

2.6.31-gentoo-r6

# lspci -vnn

<snip>

0c:00.0 Network controller [0280]: Broadcom Corporation BCM4312 802.11b/g [14e4:4315] (rev 01)

        Subsystem: Dell Wireless 1395 WLAN Mini-Card [1028:000b]

        Flags: bus master, fast devsel, latency 0, IRQ 17

        Memory at fe8fc000 (64-bit, non-prefetchable) [size=16K]

        Capabilities: [40] Power Management version 3

        Capabilities: [58] Vendor Specific Information <?>

        Capabilities: [e8] MSI: Enable- Count=1/1 Maskable- 64bit+

        Capabilities: [d0] Express Endpoint, MSI 00

        Capabilities: [100] Advanced Error Reporting

        Capabilities: [13c] Virtual Channel <?>

        Capabilities: [160] Device Serial Number 61-98-44-ff-ff-c1-00-16

        Capabilities: [16c] Power Budgeting <?>

        Kernel driver in use: b43-pci-bridge

        Kernel modules: wl

----------

## ewaller

 *Quote:*   

> Is .33 stable?... 

 

Well, Gentoo has it masked -- but I find it to be very stable  :Very Happy: 

I have been using Arch Linux for a few months with both the .32 and .33 kernels and have no issues with either one.

Since I have returned to Gentoo, I've been using ~amd64 which currently selects 2.6.33 

IIRC, the native support for Broadcom 4312 first appeared in 2.6.32

----------

## yinrunning

Upgraded to .33 did it.  Now I just have to find an access point I can actually use... Hah.

Thx much.

For reference: Specifically Low Level Phy support needs to be available and turned on for the newer b43 cards, like this one.

```
# dmesg | grep b43

[    0.351751] b43-pci-bridge 0000:0c:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17

[    0.351980] b43-pci-bridge 0000:0c:00.0: setting latency timer to 64

[    3.956296] b43-phy0: Broadcom 4312 WLAN found (core revision 15)

[    3.991613] Registered led device: b43-phy0::tx

[    3.991628] Registered led device: b43-phy0::rx

[    3.991645] Registered led device: b43-phy0::radio

[   21.845296] b43 ssb0:0: firmware: requesting b43/ucode15.fw

[   21.937821] b43 ssb0:0: firmware: requesting b43/lp0initvals15.fw

[   21.942768] b43 ssb0:0: firmware: requesting b43/lp0bsinitvals15.fw

[   22.077297] b43-phy0: Loading firmware version 410.2160 (2007-05-26 15:32:10)

# iwconfig wlan0

wlan0     IEEE 802.11bg  Mode:Managed  Access Point: Not-Associated

          Tx-Power=off

          Retry  long limit:7   RTS thr:off   Fragment thr:off

          Encryption key:off

          Power Management:off

```

----------

## yinrunning

Yeah so this is good in theory except that w/ 2.6.33 autoconf.h got moved from linux/ to generated/, so now other packages fail.  In my case namely virtualbox-modules.   :Neutral: 

There's a "patch" file out on the bugs list, but I have no idea how to apply it...

https://bugs.gentoo.org/show_bug.cgi?id=297424#c16

----------

## yinrunning

Just in case someone else gets here regarding the autoconf.h issue:

```
# cd /usr/src/linux/include/linux/

# ln -s ../generated/autoconf.h autoconf.h
```

Ugly but it works.

----------

## hampel

Sry for digging out this old thread... 

I'm trying to set up my wifi. I have exact the same wifi card and getting the exact same error as in Post 8. 

I'm running on 2.6.34-gentoo-r6 with b43-fwcutter-013 and b43-firmware-4.174.64.19 (tried frimware-4.150.10.5 as well, but getting the same error). 

Pls ask for any other info  :Wink: 

----------

## thinker7

 *hampel wrote:*   

> Sry for digging out this old thread... 
> 
> I'm trying to set up my wifi. I have exact the same wifi card and getting the exact same error as in Post 8. 
> 
> I'm running on 2.6.34-gentoo-r6 with b43-fwcutter-013 and b43-firmware-4.174.64.19 (tried frimware-4.150.10.5 as well, but getting the same error). 
> ...

 

I came to this thread with the same issue for BCM4322 (14e4:432b). The b43 driver doesn't support my chipset "BCM4322 a/b/g/n - These device have unsupported N-PHYs. We are working on it.". The Broadcom STA driver (wl) does support it, however with 2.6.34 ssb is included in the kernel if b44/b43 is enabled. So blacklisting ssb won't help, it binds to the device first. You can recompile the kernel without ssb support - if you're a massochist. Alternatively, search for "Manual driver binding and unbinding" http://lwn.net/Articles/143397/.

I added the following to /etc/modprobe.d/wl

```
install wl echo -n 0000\:08\:00.0 > /sys/bus/pci/drivers/b43-pci-bridge/unbind; /sbin/modprobe --ignore-install wl
```

Where 0000:08:00.0 is the bus id of my card, found as a symbolic link in /sys/bus/pci/drivers/b43-pci-bridge.

At boot time, ssb (b43_pci_bridge) binds to the device as per usual (see 'lspci -k' output), however when we load wl, we manually unbind it first, allowing wl to take over.

Hopes this workaround is of use to someone; it would have saved me more than a few hours...

----------

