# Cannot setup wireless with Broadcom STA (need help!)

## ColinMc

I just finished my install of Gentoo yesterday. I have spent over 12 hours trying to get wireless up and running. I configured the kernel to properly install the wl module and renamed eth1 to wlan0 using the udev rules. My problem is when I use

```
iwconfig
```

it returns my wireless connection fine but it does not associate an IP address or Subnet Mask or anything.

```
wlan0 IEEE 802.11abg ESSID:off/any

                    Mode:Managed Access Point: Not-Associated Tx -Power = 200dBm

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

                    Encryption key:off

                    Power Management:off
```

My /etc/conf.d/net file:

```
config_eth0="dhcp"

          modules=("wpa_supplicant")

          config_wlan0=("dhcp")

          wpa_supplicant_wlan0="-Dbroadcom"
```

My /etc/wpa_supplicant/wpa_supplicant.conf file:

```
ctrl_interface=/var/run/wpa_supplicant

          ctrl_interface_group=wheel

          ap_scan=0

          network={

              ssid="foo"

              scan_ssid=1

              proto=RSN

              pairwise=CCMP

              key_mgmt=WPA-PSK

              psk="password"

              priority=5

          }
```

Forgot to mention, I am using kernel version 3.6.11

Edit: Here is what is displayed for my Network Controller.

```

0c:00.0 Network controller: Broadcom Corporation BCM43228 802.11a/b/g/n

        Subsystem: ASUSTeK Computer Inc. Device 850c

        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-

        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-

        Latency: 0, Cache Line Size: 64 bytes

        Interrupt: pin A routed to IRQ 19

        Region 0: Memory at f7100000 (64-bit, non-prefetchable) [size=16K]

        Capabilities: [40] Power Management version 3

                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)

                Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=2 PME-

        Capabilities: [58] Vendor Specific Information: Len=78 <?>

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

                Address: 0000000000000000  Data: 0000

        Capabilities: [d0] Express (v1) Endpoint, MSI 00

                DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited

                        ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-

                DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-

                        RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-

                        MaxPayload 128 bytes, MaxReadReq 128 bytes

                DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-

                LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L1, Latency L0 <4us, L1 <64us

                        ClockPM+ Surprise- LLActRep+ BwNot-

                LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk-

                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-

                LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-

        Capabilities: [100 v1] Advanced Error Reporting

                UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-

                UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-

                UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-

                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-

                CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+

                AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-

        Capabilities: [13c v1] Virtual Channel

                Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1

                Arb:    Fixed- WRR32- WRR64- WRR128-

                Ctrl:   ArbSelect=Fixed

                Status: InProgress-

                VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-

                        Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-

                        Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=01

                        Status: NegoPending- InProgress-

        Capabilities: [160 v1] Device Serial Number 00-00-c9-ff-ff-9f-94-db

        Capabilities: [16c v1] Power Budgeting <?>

        Kernel driver in use: wl

        Kernel modules: wl

```

Last edited by ColinMc on Thu Dec 27, 2012 9:58 pm; edited 2 times in total

----------

## Gusar

Don't use -Dbroadcom, use -Dwext. Where did you read -Dbroadcom anyway?

----------

## ColinMc

 *Gusar wrote:*   

> Don't use -Dbroadcom, use -Dwext. Where did you read -Dbroadcom anyway?

 

Shows it in the man page for drivers. I tried -Dwext no difference.

----------

## Gusar

What exactly does "no difference" mean? Without info, no one here can provide help.

Connect on the commandline instead of using the /etc/init.d/ script. By that I mean run wpa_supplicant directly. Don't use the background switch and use the debug switch. This will tell you what exactly goes on. If wpa_supplicant manages to connect, start a dhcp client in a different terminal. Also, before you even start, check dmesg to see if the wl driver even loaded correctly.

----------

## ColinMc

 *Gusar wrote:*   

> What exactly does "no difference" mean? Without info, no one here can provide help.
> 
> Connect on the commandline instead of using the /etc/init.d/ script. By that I mean run wpa_supplicant directly. Don't use the background switch and use the debug switch. This will tell you what exactly goes on. If wpa_supplicant manages to connect, start a dhcp client in a different terminal. Also, before you even start, check dmesg to see if the wl driver even loaded correctly.

 

In dmesg for eth1 which I have identified as wireless shows this:

```
eth1: Broadcom BCM4359 802.11 Hybrid Wireless Controller 5.100.82.112

          e1000e 0000:00:19.0: eth1: (PCI Express:2.5GT/s:Width x1) c8:60:00:a4:9f:33

          e1000e 0000:00:19.0: eth1: Intel(R) PRO/1000 Network Connection

          e1000e 0000:00:19.0: eth1: MAC: 10, PHY 11, PBA No: FFFFFF-0FF
```

Why does it say Broadcom BCM4359 when using lspci it is BCM43228?

running wpa_supplicant from command line:

```
wpa_supplicant -dd -c /etc/wpa_supplicant/wpa_supplicant.conf -iwlan0

Initializing interface 'wlan0' conf '/etc/wpa_supplicant/wpa_supplicant.conf' driver 'default' ctrl_interface 'N/A' bridge 'N/A'

Configuration file '/etc/wpa_supplicant/wpa_supplicant.conf' -> '/etc/wpa_supplicant/wpa_supplicant.conf'

Reading configuration file '/etc/wpa_supplicant/wpa_supplicant.conf'

ctrl_interface='/var/run/wpa_supplicant'

ctrl_interface_group='wheel'

ap_scan=0

Line: 10 - start of a new network block

ssid - hexdump_ascii(len=3):

      4d 43 51 48 4f 4d 45           foo

scan_ssid=1 (0x1)

proto: 0x2

pairwise: 0x10

key_mgmt: 0x2

PSK (ASCII passphrase) - hexdump_ascii(len=3): [REMOVED]

priority=5 (0x5)

PSK (from passphrase) - hexdump(len=32): [REMOVED]

Priority group 5

   id = 0 ssid='foo'

WEXT: cfg80211-based driver detected

SIOCGIWRANGE: WE(compiled)=22 WE(source)=21 enc_capa=0xf

  capabilities: key_mgmt 0xf enc 0xf flags 0x0

netlink: Operstate: linkmode=1, operstate=5

Own MAC address: 94:db:c9:9f:4c:49

wpa_driver_wext_set_key: alg=0 key_idx=0 set_tx=0 seq_len=0 key_len=0

wpa_driver_wext_set_key: alg=0 key_idx=1 set_tx=0 seq_len=0 key_len=0

wpa_driver_wext_set_key: alg=0 key_idx=2 set_tx=0 seq_len=0 key_len=0

wpa_driver_wext_set_key: alg=0 key_idx=3 set_tx=0 seq_len=0 key_len=0

wpa_driver_wext_set_countermeasures

RSN: flushing PMKID list in the driver

Setting scan request: 0 sec 100000 usec

EAPOL: SUPP_PAE entering state DISCONNECTED

EAPOL: Supplicant port status: Unauthorized

EAPOL: KEY_RX entering state NO_KEY_RECEIVE

EAPOL: SUPP_BE entering state INITIALIZE

EAP: EAP entering state DISABLED

EAPOL: Supplicant port status: Unauthorized

EAPOL: Supplicant port status: Unauthorized

ctrl_interface_group=10 (from group name 'wheel')

Added interface wlan0

RTM_NEWLINK: operstate=0 ifi_flags=0x11043 ([UP][RUNNING][LOWER_UP])

RTM_NEWLINK, IFLA_IFNAME: interface 'wlan0' added

RTM_NEWLINK: operstate=0 ifi_flags=0x11043 ([UP][RUNNING][LOWER_UP])

RTM_NEWLINK, IFLA_IFNAME: interface 'wlan0' added

Wireless event: cmd=0x8b06 len=12

RTM_NEWLINK: operstate=0 ifi_flags=0x11043 ([UP][RUNNING][LOWER_UP])

RTM_NEWLINK, IFLA_IFNAME: interface 'wlan0' added

Wireless event: cmd=0x8b1a len=16

RTM_NEWLINK: operstate=0 ifi_flags=0x11003 ([UP][LOWER_UP])

RTM_NEWLINK, IFLA_IFNAME: interface 'wlan0' added

EAPOL: disable timer tick

EAPOL: Supplicant port status: Unauthorized

```

Still shows the same information for wlan0 as the beginning of the post for iwconfig.

----------

## ColinMc

I am wondering after installing the wl module from Broadcom-STA is there any firmware I need to install to get wireless working? I am completely stumped on where to go now.

----------

## Gusar

The firmware is already part of the wl driver, no need to install it separately.

That wpa_supplicant output looks incomplete. Is that really all? There's not even an attempt at connecting. You didn't add -Dwext to the commandline, do things change if you do? Post your kernel config, but not directly here, use pastebin please.

----------

## ColinMc

 *Gusar wrote:*   

> The firmware is already part of the wl driver, no need to install it separately.
> 
> That wpa_supplicant output looks incomplete. Is that really all? There's not even an attempt at connecting. You didn't add -Dwext to the commandline, do things change if you do? Post your kernel config, but not directly here, use pastebin please.

 

Adding -Dwext to the commandline made no changes. When posting kernel config on pastebin, do you want me to post the whole config file or specific portions?

Here is the whole file for the kernel configurations:

http://pastebin.com/wSJZzJGt

Just for the sake of it my router is Linksys WRT54G.

Edit: Also adding to wpa_supplicant ap_scan=1 causes a segmentation fault.

----------

## ColinMc

So I was able to get my wireless working by creating a local overlay following this url:

https://forums.gentoo.org/viewtopic-t-827407-start-0.html

Got the ebuild and patches for broadcom-sta from this site:

http://data.gpo.zugaina.org/dustin/net-wireless/broadcom-sta/

Learned the ebuild command to use to build the manifest from this url:

https://forums.gentoo.org/viewtopic-t-939648-highlight-broadcom.html

Then I went to the kernel menu and made IEEE 802.11xxxx TKIP, CCMS section a module and modules underneath. Now it shows wlan0 and an IP address that DHCP assigned to me. The only con I have right now is that dhcp does not assign me an ip when loading up Gentoo even after I log in. After I log in it takes a few seconds until I get an IP address. I think it is because I do not have dhcpcd in the default runlevels.

Here is the URL for my kernel configurations:

http://pastebin.com/fy4H0ij7

Thanks to all the people that helped or tried to help me, I appreciate it!  :Smile: 

----------

