Ubuntu

Post-Hardy regression: b43 and bcm94311 disconnects due to PHY transmission error

Reported by MAIKO on 2008-08-30
24
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Linux
Fix Released
Medium
linux (Ubuntu)
Medium
Unassigned
Nominated for Intrepid by Nick Steeves
Nominated for Jaunty by Nick Steeves
Nominated for Karmic by Nick Steeves

Bug Description

as the title i have that kind of problems... i'm testing it on this kernel version: linux-image-2.6.27-* .
the speed is ok, but problems of disconnection far away from access point and if i disconnect and try to reconnect it doesn't allow that.
greetings

-----

From dmesg:

b43-phy0 ERROR: PHY transmission error

Thank you for taking the time to report this bug and helping to make Ubuntu better. This bug did not have a package associated with it, which is important for ensuring that it gets looked at by the proper developers. You can learn more about finding the right package at https://wiki.ubuntu.com/Bugs/FindRightPackage. I have classified this bug as a bug in linux.

Please include the output of the command 'uname -a' in your next response. It should be one, long line of text which includes the exact kernel version you're running, as well as the CPU architecture.
2. Please run the command 'dmesg > dmesg.log' and attach the resulting file 'dmesg.log' to this bug report.
3. Please run the command 'sudo lspci -vvnn > lspci-vvnn.log' and attach the resulting file 'lspci-vvnn.log' to this bug report.
For your reference, the full description of procedures for kernel-related bug reports is available at https://wiki.ubuntu.com/KernelTeamBugPolicies . Thanks in advance!

i'm here again...i have been testing more and i get the same problem. I noticed that i can't install b43 firmware by restricted driver on adminstration menu...i installed it manually. here there are the outputs:

Linux ruggiero-laptop 2.6.27-3-generic #1 SMP Wed Sep 10 16:02:00 UTC 2008 i686 GNU/Linux

MAIKO (maikko) wrote :
ARCKEDA (arckeda) wrote :

I just upgraded to intrepid, although I can't get my wifi's bitrate to go above 36M, the connection is stable and realtivly quick, I would hope that it got improved, but I am having no trouble connecting to my WPA2 access point.

jc1985 (jc1985) wrote :

I confirm that bug, I'm a few meters away from my access point, and the connexion is random.
Linux jcb-desktop 2.6.27-3-generic #1 SMP Wed Sep 10 16:02:00 UTC 2008 i686 GNU/Linux

jc1985 (jc1985) wrote :
description: updated
Changed in linux-restricted-modules:
importance: Undecided → Medium
status: Incomplete → Triaged

I had the same problem with Intrepid final version with a BCM4318 card on an Asus A6R laptop, random disconnection from Access Point and no way to reconnect without rebooting the system. (Network Manager said me the WEP key was wrong, althought it was the right one)

I came back on Hardy.

Mike Homer (homerhomer) wrote :

I had the same issue with my BCM4318 [AirForce One 54G - rev 02 ] card with the release of Intrepid. My connection would work for about 1 minute and then crap out. I was able to get it to work by using a different firmware that was already extracted.

I got the working firmware from http://www.omattos.com/broadcom/

So the easy was to remove the older firmware from /lib/firmware/b43 and copy the attached firmware into this directory.

Hope this helps

Djainette (djainette) wrote :

Similar problem with bcm4312 (rev 02) and restricted driver.
See attached file.

Same here with BCM4306 on Dell Latitude C610 with Kubuntu 8.04
I have updated the kernel from Intrepid-proposed and used the firmware mentioned by Mike (two posts back). For me the number of transmission errors makes no difference with the former -much newer- version of the firmware i used.

uname -a:
Linux latitude2 2.6.27-10-generic #1 SMP Fri Nov 21 12:00:22 UTC 2008 i686 GNU/Linux

Next I'll post the dmesg and lspci logs.

depe (depe-ubuntu) wrote :

Hello,

I have the same here with BCM4318 on Linksys card with Ubuntu 9.04 64bits.
In fact I get this since 8.10 and usage of b43-fwcutter.
Before that on 8.04 + ndiswapper, it was working fine.

uname -a:
Linux denon-desktop 2.6.28-11-generic #42-Ubuntu SMP Fri Apr 17 01:58:03 UTC 2009 x86_64 GNU/Linux

I will try the working firmware from Mike Homer and see if it works better

depe (depe-ubuntu) wrote :

Before updating b43 firmware folder to the one from http://www.omattos.com/broadcom/, I made sure to wait until I got hundreds of "b43-phy0 ERROR: PHY transmission error" (which I always had at startup, even if connexion was established for hours after it).
The problems appeared few minutes after I did connect to a VPN.

After updating b43 firmware, I didn't get any error (even at startup), see attached dmesg

One difference is that "updated" folder contains older firmware 351.126 (2006-07-29 05:54:02), while the original ubuntu 9.04 folder contains firmware 410.2160 (2007-05-26 15:32:10)

Buzz (buzz-piersol) wrote :

No problems until now (9.04). I don't ever recall using fwcutter. Wireless has just "worked" for me. I guess it's automatic as I use GNOME->System->Administration->Hardware Drivers.

My wireless mostly works (e.g. now), but it is intermittent.

uname -a
   Linux buzz-CP-ubuntu 2.6.27-7-generic #1 SMP Tue Nov 4 19:33:06 UTC 2008 x86_64 GNU/Linux

lspci -vvnn |grep Broad -A10
  {attached}

sdato (sebastian-dato) wrote :

I was having the same problem on Ubuntu 8.10, kernel 2.6.27-11-generic, the problem was solved after replacing the b43 and b43 legacy directories from /lib/firmware with the firmware on http://www.omattos.com/broadcom/

Nick Steeves (nick-0) wrote :

My Linksys PCI BCM4318 NIC worked flawlessly with 8.04, with the b43 driver. After upgrading to 9.04, dmesg is flooded with

b43-phy0 ERROR: PHY transmission error

and the system becomes unresponsive. Additionally, auto rate doesn't work, and the radio always chooses 1M...although I can manually set it to 54M. I've tried all the alternate firmware "solutions" to no avail.

I manually configure the NIC in /etc/network/interfaces with WPA2 and a static IP. I still have a backup of my 8.04 installation, but I'd much rather help to debug this regression.

description: updated
summary: - b43 and bcm94311 disconnects due to PHY transmission error
+ Post-Hardy regression: b43 and bcm94311 disconnects due to PHY
+ transmission error
Nick Steeves (nick-0) wrote :

Here's an update: I tried this with the live cd, linux-image 2.6.28-11...same problem. Tried linux-backports-modules-2.6.28-11...same problem as 2.6.28-13.

linux-backports-modules-2.6.28-13 makes things even worse...

for some reason pcmcia is now loaded!?!?! SSB didn't need it before...

While the PHY transmission errors disappear, there is no IP link to speak of. No ping, "route" times out, etc. Here's the log:

[ 452.500105] cfg80211: Using static regulatory domain info
[ 452.500109] cfg80211: Regulatory domain: US
[ 452.500111] (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 452.500114] (2402000 KHz - 2472000 KHz @ 40000 KHz), (600 mBi, 2700 mBm)
[ 452.500117] (5170000 KHz - 5190000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[ 452.500120] (5190000 KHz - 5210000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[ 452.500122] (5210000 KHz - 5230000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[ 452.500125] (5230000 KHz - 5330000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[ 452.500128] (5735000 KHz - 5835000 KHz @ 40000 KHz), (600 mBi, 3000 mBm)
[ 452.524465] cfg80211: Calling CRDA for country: US
[ 452.546217] b43-pci-bridge 0000:02:01.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22
[ 452.608095] ssb: Sonics Silicon Backplane found on PCI device 0000:02:01.0
[ 452.618062] b43-phy0: Broadcom 4318 WLAN found (core revision 9)
[ 452.685664] phy0: Selected rate control algorithm 'minstrel'
[ 452.686443] Broadcom 43xx driver loaded [ Features: PMLR, Firmware-ID: FW13 ]
[ 483.436419] input: b43-phy0 as /devices/virtual/input/input9
[ 483.540034] b43 ssb0:0: firmware: requesting b43/ucode5.fw
[ 483.544039] b43 ssb0:0: firmware: requesting b43/pcm5.fw
[ 483.549884] b43 ssb0:0: firmware: requesting b43/b0g0initvals5.fw
[ 483.586507] b43 ssb0:0: firmware: requesting b43/b0g0bsinitvals5.fw
[ 483.708030] b43-phy0: Loading firmware version 410.2160 (2007-05-26 15:32:10)
[ 483.753759] Registered led device: b43-phy0::tx
[ 483.753781] Registered led device: b43-phy0::rx
[ 483.753803] Registered led device: b43-phy0::radio
[ 483.777403] b43-phy0: Radio turned on by software
[ 483.777568] ADDRCONF(NETDEV_UP): wlan0: link is not ready
[ 485.696351] wlan0: authenticate with AP de63b6b8
[ 485.697947] wlan0: authenticated
[ 485.697949] wlan0: associate with AP de63b6b8
[ 485.720638] wlan0: RX AssocResp from dec9603e (capab=0x431 status=0 aid=10)
[ 485.720643] wlan0: associated
[ 485.721337] ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[ 496.628012] wlan0: no IPv6 routers present

MAIKO (maikko) wrote :

i wonder when this problem of compatibility between ubuntu and bcm94311 wifi module will be solved... :(

Nick Steeves (nick-0) wrote :

Well, I compiled a custom 2.6.30.3 kernel, just to see if the current b43 driver works with the firmware Jaunty's fw-cutter downloads. It does work. Perfectly. As I've tried multiple other firmware sources, it seems evident to me this is an Intrepid and Jaunty bug -- I'll have to test a Karmic alpha one of these days to see if it's something which has been resolved. I'm running 32bit x86, P4 on a d865perl motherboard.

So here are some facts:

linux-image-2.6.24-24-generic ***works
linux-image-2.6.30.3-vanilla ***works

linux-image-2.6.28-11-generic ***flaky, and not usable
linux-image-2.6.28-13-generic ***flaky, and not usable
linux-backports-modules-jaunty ***completely broken, and b43 depends on pcmcia for this one?!

Next I'll try 2.6.28.10 vanilla and post logs. If you would prefer for me to test a different 2.6.28.xy please mention which revision.

Then I'll post logs for linux-image-2.6.28-13-generic with linux-backports-modules installed.
And then without. All comments will contain:

1. `uname -a`
2. `dmesg > dmesg.log`
3. `lspci -vvnn > lspci-vvnn.log` (as root)

'hopefully the logs from all of these will encircle and help us to isolate where exactly the problem is. Please advise me which debugging opions I ought to enable. A few backtraces would probably make it much easier, but I don't know anything about kernel-specific debugging...

bugs 405712, 297959, and 263106 all look like b43 kernel module problems (as opposed to firmware problems)
I'm not sure if they're simply duplicates, or some other type of relation...

At any rate...

1. 1. Linux DigitalMercury.dynalias.net 2.6.30.3-digitalmercury #1 Tue Jul 28 11:58:06 MDT 2009 i686 GNU/Linux
2. dmesg.log

Nick Steeves (nick-0) wrote :

3. lspci-vvnn.log

Nick Steeves (nick-0) wrote :

...that's odd... The linux-backports-modules-jaunty b43 driver is working!!! And better than linux-image 2.6.28-13, despite loading that pcmcia, and pcmcia_core -- are we using the pcmcia module as a shim between the updated kernel interface that the updated ssb needs, and the old interface the kernel provides?

But why does it take over 30 seconds to log in with SSH? It should take less than one. This is so slow that nautilus times out when trying to connect with sftp. I tried disabling ipv6 with sysctl for linux-image-2.28-13. I did disable IPv6 in my kernel...

The attachments I'm posting are for linux-backports-modules-2.6.28-13-generic, on top of its matching kernel.

Linux DigitalMercury.dynalias.net 2.6.28-13-generic #45-Ubuntu SMP Tue Jun 30 19:49:51 UTC 2009 i686 GNU/Linux

logs will follow momentarily...

Nick Steeves (nick-0) wrote :
Nick Steeves (nick-0) wrote :
Nick Steeves (nick-0) wrote :
Nick Steeves (nick-0) wrote :

vanilla linux-2.6.28.10, with my minimal baseline config has the
b43-phy0 ERROR: PHY transmission error
and the 30 second lag to log into ssh...and I suspect the connection will soon die

but it has the normal lsmod | grep b43 output
b43 99996 0
mac80211 111884 1 b43
led_class 3844 1 b43
ssb 27396 1 b43

Proposed resolution: backport b43 as close to linux-2.6.30.3 as possible

Nick Steeves (nick-0) wrote :

...and the connection just died. I didn't let the backports system run long enough to see if it would, but the vanilla linux-2.6.28.10 b43 driver crashed my wireless router. As the backports one still has 30 second TCP delays, it's also useless to me.

MAIKO (maikko) wrote :

thanks you for your work... i would be glad to help you...but i'm not able to compile a custom kernel..once i tried,but ubuntu didn't start :D
if u need anything as for example installing a karmic alpha and sending logs or jaunty or others..i'll be glad to do...those are things im able to do :)
greetings

Nick Steeves (nick-0) wrote :

For everyone who's following this thread, this message contains instructions for what is either an instant solution, or failing that: the very-near-future solution.

No worries Mark! Honestly, this sort of thing drives me up the wall...a "computer", by definition, is supposed to take input from somewhere, feed it into an equation, and then *always* output the correct result. Computers just aren't computers anymore, when they fail us... So for myself, it's back to a custom kernel, like the "old" times in the '90s. As for everyone else:

If your NIC worked in Hardy, it will work in Karmic, just about guaranteed. Karmic is linux-2.6.31, and b43 works just fine in linux-2.6.30. As linux-2.6.31 is still in pre-release, I wouldn't recommend tracking the Koala's kernels... There's still one thing I haven't tried -- The soon-to-be-released Jaunty 2.6.28-14:

http://archive.ubuntu.com/ubuntu/pool/main/l/linux/linux-image-2.6.28-14-generic_2.6.28-14.47_i386.deb

I'm linking to them directly so that no one has to enable to "proposed" repository. These kernels are currently in jaunty-proposed. I haven't looked at the 2.6.28-13 to 2.6.28-14 patch very closely, so I don't know if the B43 driver in this kernel is from linux-2.6.30; however the kernel team is working hard to backport a functional b43 driver! Now is the perfect time to test this new kernel, and help the kernel team shake out any remaining bugs with the backport of a better b43 driver.

Oh yeah, here's the hack I use, because I don't use Network Manager:

1. put b43 in your /etc/modules. My BCM4318 takes so long to initialise after it gets the firmware that it ignores the networking commands it gets from /etc/rcS.d/S40networking.... But /etc/modules is the easiest place to load the firmware early (trust me, I've been tinkering with custom initrd images for the last hour)
2. You're half-way there. If you use Network Manager, than that's it! 'hope it works for you.
3. If you don't use Network Manager, wicd, etc, and have your networking info permanently stored in /etc/network/interfaces (this is the opposite of a "roaming" network profile), then you might want to try making these modifications to /etc/rc.local

first, remove that exit 0 line if you still have it -- it's no longer useful.
then add the following towards the end of the file:
ifdown wlan0; sleep 2; ifup wlan0 &

Obligatory car analogy: when you jump in your car in the morning in the middle of winter, turn the key, and your car doesn't start -- oh, your hear the engine try, but it turns over just once before going back to sleep...well, the "ifdown wlan0" is when you back off on the starter, "sleep 2" waits for two seconds, and then "ifup wlan0" gives it another go. Yeah, it's a hack, but at least it works reliably for me... 'hope it works for you.

WHOA!?! Jaunty-auto-update popup. linux-image-2.6.28-14 was just released...if it didn't fix b43, make post the latest of all the logs you're supposed to. Last-minute post-release minor bugfixes are quite common 2.6.28-14.46 to .47, and maybe a .48 if it's needed.

Nick Steeves (nick-0) wrote :

hopefully 2.6.28-14 will resolve this bug!

Changed in linux (Ubuntu):
assignee: nobody → Ubuntu Kernel Network Team (ubuntu-kernel-network)
Nick Steeves (nick-0) wrote :

regrettably, linux-image-2.6.28-14 seems to behave identically to 2.6.28-13...

MAIKO (maikko) wrote :

i just made a fresh installation of ubuntu 9.04 and then an upgrade..here there are results after installed restricted drivers:

Linux marke-laptop 2.6.28-14-generic #47-Ubuntu SMP Sat Jul 25 00:28:35 UTC 2009 i686 GNU/Linux

MAIKO (maikko) wrote :
MAIKO (maikko) wrote :
MAIKO (maikko) wrote :

all these logs are done without installing linux-backports-modules-jaunty . the result is that the authentication times out for some reason that i have no idea

Aníbal Deboni Neto (adneto) wrote :

I'm running Ubuntu Jaunty on my Dell Inspiron 1525.
lspci gives me:
0b:00.0 Network controller: Broadcom Corporation BCM4312 802.11a/b/g (rev 01)

But apparently my wifi card is working fine besides I get the same error: (from dmesg)
[ 3016.369750] b43-phy0 ERROR: PHY transmission error

Nick Steeves (nick-0) wrote :

Mark, thanks again for your logs!
adneto: does your connection remain stable over time? After 15min to an hour, kernels which produce those PHY transmission error crash my wireless router.

I'm posting some links to some kernels which might work. Please do not enable the PPA, as synaptic will push multiple kernel upgrades onto your system over time.

Here's a link to the Ubuntu kernel team's build of the 2.6.30-series kernel that works flawlessly for me:
http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.30.4/linux-image-2.6.30-02063004-generic_2.6.30-02063004_i386.deb
and the headers
http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.30.4/linux-headers-2.6.30-02063004-generic_2.6.30-02063004_i386.deb

I'm currently very busy with work, and the end of my summer term, if anybody has an hour or so of free time, would they please consider running these tests to begin to pinpoint which kernel version fixed this bug?:

First, confirm that the above linked kernel works. Then try this one:
http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.29.6/linux-image-2.6.29-02062906-generic_2.6.29-02062906_i386.deb
and the headers
http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.29.6/linux-headers-2.6.29-02062906-generic_2.6.29-02062906_i386.deb

and then this one
http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.29/linux-image-2.6.29-020629-generic_2.6.29-020629_i386.deb
and the headers
http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.29/linux-headers-2.6.29-020629-generic_2.6.29-020629_i386.deb

linux-2.6.28.10 still has the bug. Once we find the kernel closest to Jaunty's which has a functional b43 driver, it should be possible to backport a fix. I'm going to open a bug at bugzilla.kernel.org after we've assembled enough information for them to be able to fix it.

Fact: not all the Ubuntu CDs that Joe-random-new-user finds are going to be the Hardy release. Just the other day I saw Jaunty CDs in the faculty of *English Literature* department lounge at my university. There's a fair chance Joe-random-new-user's NIC won't work, and he'll have a bad first experience with Ubuntu. Asking him (or her) why he didn't use another release won't mean anything to him, because he doesn't yet know anything about Ubuntu...

Please test these three kernels (2.6.30.4, 2.6.29.6, and 2.6.29) and report back with what works. Don't worry about logs for this yet, it's just a pragmatic test to find out when b43 started to work again.

Thanks!

Nick Steeves (nick-0) wrote :

I found some time to test this. 2.6.29-series kernels have the same bug. I'm going to work through the 2.6.30-rcX (very quickly, complements of those mainline kernel images) and then try to further isolate the patch that with git bisect after that...well, that is, if I find the time to later this week. I probably won't get that much more done tonight.

Changed in linux:
status: Unknown → Confirmed
Nick Steeves (nick-0) wrote :

Mark,

Could you please test 2.6.30-rc1 to see if it still has this timeout bug on your hardware?

http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.30-rc1/linux-headers-2.6.30-020630rc1-generic_2.6.30-020630rc1_i386.deb
http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.30-rc1/linux-headers-2.6.30-020630rc1_2.6.30-020630rc1_all.deb
http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.30-rc1/linux-image-2.6.30-020630rc1-generic_2.6.30-020630rc1_i386.deb

rc1 was the first kernel release which fixed my bug, but I did note a timeout bug after a fresh boot. The workaround was to unload the b43 module after booting, then reload it.

As it stands, it looks like we're going to need a backport of the b43 driver from linux-2.6.30.x

It looks like Mark's BCM4311, Adneto's BCM4312, and my BCM4318 are all affected...maybe all b43-driven chipsets?

Nick Steeves (nick-0) wrote :

I'm willing to consider this bug closed, because of improvements to the mainline Linux kernel.

The latest debs of a 2.6.30-series kernel can be found here:

http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.30.8/

You'll need the linux-image i386, linux-headers i386, and linux-headers all. What is more, my NIC works great with the Karmic beta. I'm un-subscribing from this bug now.

Best regards,
Nick

Changed in linux:
status: Confirmed → Fix Released
Jeremy Foshee (jeremyfoshee) wrote :

This bug report was marked as Triaged a while ago but has not had any updated comments for quite some time. Please let us know if this issue remains in the current Ubuntu release, http://www.ubuntu.com/getubuntu/download . If the issue remains, click on the current status under the Status column and change the status back to "New". Thanks.

[This is an automated message. Apologies if it has reached you inappropriately; please just reply to this message indicating so.]

Changed in linux:
importance: Unknown → Medium
Jeremy Foshee (jeremyfoshee) wrote :

closing as Released as this should have made it in via rebase or stable updates. If this is in error, please reopen the issue and state your case.

Thanks!

~JFo

Changed in linux (Ubuntu):
status: Triaged → Fix Released
assignee: Ubuntu Kernel Network Team (ubuntu-kernel-network) → nobody
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.