You are not logged in.

#1 2009-11-26 11:23:10

pooflinger
Member
From: Sweden
Registered: 2007-10-05
Posts: 53

[SOLVED] Broadcom BCM4312 anomaly

I got a brand-spanking new Ideapad S12 (Atom) last week and promptly decided it should run Arch. I set it up with openbox as my working environ. All worked well except for the wireless. The connection would degrade over time as "transfer cutouts". At first I thought it was to do with bad DNS but even transmissions over a local network would "jam up". The cutout/jam frequency increased over time until I reconnected to the wireless router. Typically it woud last 5-20 seconds with no TCP coming through. The wireless network is wpa2, not hidden.

I was at a loss on how to pinpoint the problem and decided it was with the proprietary broadcom driver. I had installed this by building the broadcom-wl package from the AUR. So I proceeded to strip it out and try b43.

Nothing worked even a little, so I decided to go back to degradation over time for now (I need the laptop for work). I set it all up as I had before and was able to scan for networks, but when saying "netcfg DIR-635" ("DIR-635" being both the profile filename and the essid) it times out saying "- DHCP IP lease attempt failed.".

I've been stuck at this for the past three days now and I'm starting to feel the sting of defeat. The wireless router is in fact a d-Link DIR-635 that's worked like a dream for two years. I've changed nothing in its config that might case this.

Can anyone help me diagnose this problem? What should I log out while running netcfg? Any and all help is greatly appreciated.

Last edited by pooflinger (2010-02-10 23:12:06)

Offline

#2 2009-11-26 16:05:28

zenlord
Member
From: Belgium
Registered: 2006-05-24
Posts: 1,221
Website

Re: [SOLVED] Broadcom BCM4312 anomaly

I have the same chipset in my macbook pro IIRC and can connect to the same DIR-635 with WPA2-encryption using the broadcom-wl-driver.

Probably a misconfiguration error somewhere. I remember I used some of the DIR-635 advanced wireless settings and I couldn't connect using my Nokia E71 anymore. So I reran the wireless setupwizard and everything was A-OK...

Try dhclient with a timeout of 45 instead of dhcpcd.

If that doesn't work: post your netcfg-profile and your wpa_supplicant.conf.

Zl.

Last edited by zenlord (2009-11-26 16:06:02)

Offline

#3 2009-11-26 18:54:23

pooflinger
Member
From: Sweden
Registered: 2007-10-05
Posts: 53

Re: [SOLVED] Broadcom BCM4312 anomaly

Thanks zenlord, and good news!

I set my router to be open and tried again. No success, same dhcp error.

I did "iwconfig eth0 essid DIR-635" followed by "dhclient". Success! I was pinging google. This was a welcome break from three days of bottomless despair and hair-pulling big_smile

here's the netcfg-profile and wpa_supplicant(comments removed) in that order:

CONNECTION="wireless"
DESCRIPTION="A simple WPA encrypted wireless connection"
INTERFACE="eth0"
SECURITY="wpa"
ESSID="DIR-635"
KEY="sprayonbacon"
IP="dhcp"
ctrl_interface=/var/run/wpa_supplicant
eapol_version=1
ap_scan=1
fast_reauth=1

network={
    ssid="simple"
    psk="very secret passphrase"
    priority=5
}

network={
    ssid="second ssid"
    scan_ssid=1
    psk="very secret passphrase"
    priority=2
}

network={
    ssid="example"
    proto=WPA
    key_mgmt=WPA-PSK
    pairwise=CCMP TKIP
    group=CCMP TKIP WEP104 WEP40
    psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
    priority=2
}

network={
    ssid="example"
    proto=WPA
    key_mgmt=WPA-PSK
    pairwise=TKIP
    group=TKIP
    psk="not so secure passphrase"
    wpa_ptk_rekey=600
}

network={
    ssid="example"
    proto=RSN
    key_mgmt=WPA-EAP
    pairwise=CCMP TKIP
    group=CCMP TKIP
    eap=TLS
    identity="user@example.com"
    ca_cert="/etc/cert/ca.pem"
    client_cert="/etc/cert/user.pem"
    private_key="/etc/cert/user.prv"
    private_key_passwd="password"
    priority=1
}

network={
    ssid="example"
    key_mgmt=WPA-EAP
    eap=PEAP
    identity="user@example.com"
    password="foobar"
    ca_cert="/etc/cert/ca.pem"
    phase1="peaplabel=1"
    phase2="auth=MSCHAPV2"
    priority=10
}

network={
    ssid="example"
    key_mgmt=WPA-EAP
    eap=TTLS
    identity="user@example.com"
    anonymous_identity="anonymous@example.com"
    password="foobar"
    ca_cert="/etc/cert/ca.pem"
    priority=2
}

network={
    ssid="example"
    key_mgmt=WPA-EAP
    eap=TTLS
    identity="user@example.com"
    anonymous_identity="anonymous@example.com"
    password="foobar"
    ca_cert="/etc/cert/ca.pem"
    phase2="auth=MSCHAPV2"
}

network={
    ssid="example"
    key_mgmt=WPA-EAP
    eap=TTLS
    # Phase1 / outer authentication
    anonymous_identity="anonymous@example.com"
    ca_cert="/etc/cert/ca.pem"
    # Phase 2 / inner authentication
    phase2="autheap=TLS"
    ca_cert2="/etc/cert/ca2.pem"
    client_cert2="/etc/cer/user.pem"
    private_key2="/etc/cer/user.prv"
    private_key2_passwd="password"
    priority=2
}

network={
    ssid="example"
    bssid=00:11:22:33:44:55
    proto=WPA RSN
    key_mgmt=WPA-PSK WPA-EAP
    pairwise=CCMP
    group=CCMP
    psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
}

network={
    ssid=00010203
    psk=000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
}

network={
    ssid="eap-sim-test"
    key_mgmt=WPA-EAP
    eap=SIM
    pin="1234"
    pcsc=""
}

network={
    ssid="eap-psk-test"
    key_mgmt=WPA-EAP
    eap=PSK
    anonymous_identity="eap_psk_user"
    password=06b4be19da289f475aa46a33cb793029
    identity="eap_psk_user@example.com"
}


network={
    ssid="1x-test"
    key_mgmt=IEEE8021X
    eap=TLS
    identity="user@example.com"
    ca_cert="/etc/cert/ca.pem"
    client_cert="/etc/cert/user.pem"
    private_key="/etc/cert/user.prv"
    private_key_passwd="password"
    eapol_flags=3
}


network={
    ssid="leap-example"
    key_mgmt=IEEE8021X
    eap=LEAP
    identity="user"
    password="foobar"
}

network={
    ssid="ikev2-example"
    key_mgmt=WPA-EAP
    eap=IKEV2
    identity="user"
    password="foobar"
}

network={
    ssid="eap-fast-test"
    key_mgmt=WPA-EAP
    eap=FAST
    anonymous_identity="FAST-000102030405"
    identity="username"
    password="password"
    phase1="fast_provisioning=1"
    pac_file="/etc/wpa_supplicant.eap-fast-pac"
}

network={
    ssid="eap-fast-test"
    key_mgmt=WPA-EAP
    eap=FAST
    anonymous_identity="FAST-000102030405"
    identity="username"
    password="password"
    phase1="fast_provisioning=1"
    pac_file="blob://eap-fast-pac"
}

network={
    ssid="plaintext-test"
    key_mgmt=NONE
}


network={
    ssid="static-wep-test"
    key_mgmt=NONE
    wep_key0="abcde"
    wep_key1=0102030405
    wep_key2="1234567890123"
    wep_tx_keyidx=0
    priority=5
}


network={
    ssid="static-wep-test2"
    key_mgmt=NONE
    wep_key0="abcde"
    wep_key1=0102030405
    wep_key2="1234567890123"
    wep_tx_keyidx=0
    priority=5
    auth_alg=SHARED
}


network={
    ssid="test adhoc"
    mode=1
    frequency=2412
    proto=WPA
    key_mgmt=WPA-NONE
    pairwise=NONE
    group=TKIP
    psk="secret passphrase"
}


network={
    ssid="example"
    scan_ssid=1
    key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE
    pairwise=CCMP TKIP
    group=CCMP TKIP WEP104 WEP40
    psk="very secret passphrase"
    eap=TTLS PEAP TLS
    identity="user@example.com"
    password="foobar"
    ca_cert="/etc/cert/ca.pem"
    client_cert="/etc/cert/user.pem"
    private_key="/etc/cert/user.prv"
    private_key_passwd="password"
    phase1="peaplabel=0"
}

network={
    ssid="example"
    key_mgmt=WPA-EAP
    eap=TLS
    proto=RSN
    pairwise=CCMP TKIP
    group=CCMP TKIP
    identity="user@example.com"
    ca_cert="/etc/cert/ca.pem"
    client_cert="/etc/cert/user.pem"

    engine=1

    # The engine configured here must be available. Look at
    # OpenSSL engine support in the global section.
    # The key available through the engine must be the private key
    # matching the client certificate configured above.

    # use the opensc engine
    #engine_id="opensc"
    #key_id="45"

    # use the pkcs11 engine
    engine_id="pkcs11"
    key_id="id_45"

    # Optional PIN configuration; this can be left out and PIN will be
    # asked through the control interface
    pin="1234"
}

network={
    ssid="example"
    key_mgmt=WPA-EAP
    eap=TTLS
    identity="user@example.com"
    anonymous_identity="anonymous@example.com"
    password="foobar"
    ca_cert="blob://exampleblob"
    priority=20
}

blob-base64-exampleblob={
SGVsbG8gV29ybGQhCg==
}


network={
    key_mgmt=NONE
}

Two questions:
1. How do I use dhclient with netcfg?
2. How do I use wpa with iwconfig?

Offline

#4 2009-11-26 19:51:03

vacant
Member
From: downstairs
Registered: 2004-11-05
Posts: 816

Re: [SOLVED] Broadcom BCM4312 anomaly

I find the wl driver works reliably for me. I also tried ndiswrapper but the windows driver gave a weaker signal (apparently, according to wicd). However, maybe it would be more resilient on your system?

Offline

#5 2009-11-26 20:16:02

pooflinger
Member
From: Sweden
Registered: 2007-10-05
Posts: 53

Re: [SOLVED] Broadcom BCM4312 anomaly

vacant wrote:

I find the wl driver works reliably for me. I also tried ndiswrapper but the windows driver gave a weaker signal (apparently, according to wicd). However, maybe it would be more resilient on your system?

Yes maybe, I'll try it as a last resort. Having to run a windows driver is just so embarrassing.

Offline

#6 2009-11-26 21:36:53

pooflinger
Member
From: Sweden
Registered: 2007-10-05
Posts: 53

Re: [SOLVED] Broadcom BCM4312 anomaly

Oh the plight! Now my ethernet interface is exhibiting the same behaviour! This really is one of those bugs...

I have a theory about it all, and I'd love to hear what you think. I think it's to do with the atom processor.

I noticed while installing arch as netinst that while downloading the packages, the system would "soft-freeze" every now and then and stop downloading. Any user input like a simple alt or shift keypress would instantly unfreeze it and downloading would resume. I've detected the same thing later on causing scp to hang and the likes. Is this an intel atom "feature" per chance?

If so, can it be disabled, hanged, drawn and quartered by any means? I doubt we can coexist peacefully...

To make matters even more interesting, this behaviour by the laptop in question has managed to b0rk the router too. On its last f-up the router was left in a hung state. A reboot cured it, but that almost NEVER happens. Is all this thanks to atom?

Please weigh in on this with your thoughts.

Offline

#7 2009-11-26 21:47:23

Dheart
Member
From: Sofia, Bulgaria
Registered: 2006-10-26
Posts: 956

Re: [SOLVED] Broadcom BCM4312 anomaly

I also have a BCM 4312, I have no such problems.
However my NETGEAR router is unsecured and it DOES freeze quite often and I have to restart it (plug unplug the power supply of the router)
I blame netgear for this one, not the wireless card, since it does it all the time, not only with my notebook. (and other routers never gave me such troubles.)


My victim you are meant to be
No, you cannot hide nor flee
You know what I'm looking for
Pleasure your torture, I will endure...

Offline

#8 2009-11-28 15:29:07

zenlord
Member
From: Belgium
Registered: 2006-05-24
Posts: 1,221
Website

Re: [SOLVED] Broadcom BCM4312 anomaly

pooflinger wrote:

Two questions:
1. How do I use dhclient with netcfg?
2. How do I use wpa with iwconfig?

1. Just add
DHCLIENT="yes"
to your netcfg-profile

2. I guess you just use the wpa_supplicant-tool to authenticate if you want to connect manually, so:
# ifconfig wlan0 up // bring the dev up
# iwconfig ESSID // connect to the network
# wpa_supplicant -Dwext -(see other parameters) // authenticate on the network
# dhclient wlan0 // get a dhcp-address
should do the trick.

/EDIT:
If you want to use netcfg with wpa2, I always set
SECURITY
to "wpa-config"
and

to "/etc/wpa_supplicant.conf"

Last edited by zenlord (2009-11-28 15:55:43)

Offline

#9 2009-11-30 08:43:15

pooflinger
Member
From: Sweden
Registered: 2007-10-05
Posts: 53

Re: [SOLVED] Broadcom BCM4312 anomaly

Thanks zenlord, dhcp works again. Now if only I didn't have to reconnect my wireless ever 20min.

Offline

#10 2009-12-01 10:27:10

zenlord
Member
From: Belgium
Registered: 2006-05-24
Posts: 1,221
Website

Re: [SOLVED] Broadcom BCM4312 anomaly

Hmmm... That's odd. Is that caused by a weak signal strength?

Offline

#11 2009-12-02 01:46:44

pooflinger
Member
From: Sweden
Registered: 2007-10-05
Posts: 53

Re: [SOLVED] Broadcom BCM4312 anomaly

zenlord wrote:

Hmmm... That's odd. Is that caused by a weak signal strength?

No, it's all in my 2-room apt. I've had the router for at least 2 years and I know it thoroughly. It's never given me any hassle with any other driver/hardware combo.

Random possible far-fetched reasons:

- conflicting with the broadcom ethernet controller, rc.conf says ( ... !b43 wl b43 ... ). Only works like this, documented in the wiki.
- not using net-auto, whatever that is
- dodgy driver software
- intel atom's "deeper sleep" soft-suspend clobbers it

My best workaround so far is to cron a "netcfg -r DIR-635" every 15 minutes. This is especially much fun when streaming a movie from my fileserver. Might be able to campensate by a crazy-large buffer though.

EDITED for accuracy

Last edited by pooflinger (2009-12-02 01:49:50)

Offline

#12 2009-12-02 18:18:13

zenlord
Member
From: Belgium
Registered: 2006-05-24
Posts: 1,221
Website

Re: [SOLVED] Broadcom BCM4312 anomaly

That's not my experience. Something I know I saw in the wiki and not in your posts is that 'ssb' should be blacklisted in your MODULES=() in /etc/rc.conf: http://wiki.archlinux.org/index.php/Broadcom_BCM4312 (there is also another module listed there)

This morning I got around my problem with my bluetooth-device. The solution was to use rfkill to unblock the bluetooth-device. The reason I'm telling you this is that I got wifi-disconnects at that moment. Could be coincidence though. On the other hand, it is an easy test to use rfkill to block other wireless stuff like bluetooth...

Looking over your config files again, I notice that your /etc/wpa_supplicant.conf doesn't mention any settings for your 'DIR-635'-essid. I don't think you can connect without this information?


/EDIT: added wiki page

Last edited by zenlord (2009-12-02 18:37:29)

Offline

#13 2009-12-15 17:20:09

AtomicBiped
Member
From: behind you!
Registered: 2009-12-15
Posts: 5

Re: [SOLVED] Broadcom BCM4312 anomaly

pooflinger wrote:
zenlord wrote:

Hmmm... That's odd. Is that caused by a weak signal strength?

No, it's all in my 2-room apt. I've had the router for at least 2 years and I know it thoroughly. It's never given me any hassle with any other driver/hardware combo.

Random possible far-fetched reasons:

- conflicting with the broadcom ethernet controller, rc.conf says ( ... !b43 wl b43 ... ). Only works like this, documented in the wiki.
- not using net-auto, whatever that is
- dodgy driver software
- intel atom's "deeper sleep" soft-suspend clobbers it

My best workaround so far is to cron a "netcfg -r DIR-635" every 15 minutes. This is especially much fun when streaming a movie from my fileserver. Might be able to campensate by a crazy-large buffer though.

EDITED for accuracy

I am seeing this with my Lenovo IdeaPad S10. After a certain amount of time with no network activity, the connection is lost, and dhcpcd has to reacquire its lease. It is like the driver has powered down the wifi card.

What I do to keep from losing my wifi connection is ping my router once every 90 seconds (ping -i 90 192.168.1.1). That has worked so far.

Offline

#14 2010-02-10 23:14:04

pooflinger
Member
From: Sweden
Registered: 2007-10-05
Posts: 53

Re: [SOLVED] Broadcom BCM4312 anomaly

So it's solved then. Changed my router setting from wpa2 tkip/aes to wpa2 aes. Works as it should.

Offline

Board footer

Powered by FluxBB