Bug 296421 - kernel 2.6.22.5 breaks bcm4306 b43; 2.6.22.4 OK
Summary: kernel 2.6.22.5 breaks bcm4306 b43; 2.6.22.4 OK
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: 7
Hardware: i386
OS: Linux
low
medium
Target Milestone: ---
Assignee: John W. Linville
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2007-09-19 14:28 UTC by Chris Schanzle
Modified: 2007-11-30 22:12 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2007-10-01 18:19:55 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
lsmod 2.6.22.4 (3.25 KB, text/plain)
2007-09-20 03:08 UTC, Chris Schanzle
no flags Details
lsmod 2.6.22.5 (3.10 KB, text/plain)
2007-09-20 03:08 UTC, Chris Schanzle
no flags Details
lsmod of 2.6.22.6 (3.03 KB, text/plain)
2007-09-20 03:09 UTC, Chris Schanzle
no flags Details
bcm43xx-override (1.28 KB, text/plain)
2007-10-01 17:36 UTC, John W. Linville
no flags Details

Description Chris Schanzle 2007-09-19 14:28:19 UTC
Description of problem:
booting kernel 2.6.22.5-76.f7 breaks bcm4306 using b43 driver; booting
2.6.22.4-65.f7 works fine.

Additional Info:

lspci | egrep BCM
02:03.0 Network controller: Broadcom Corporation BCM4306 802.11b/g Wireless LAN
Controller (rev 02)

lspci -n
02:03.0 0280: 14e4:4320 (rev 02)

Nothing blacklisted, not using ndiswrapper

When 2.6.22.5 is booted, b43 is loaded, but no messages are displayed (even
after 'rmmod b43; modprobe b43').  On the first invocation of this, I did get
/var/log/messages:

kernel: ssb: Sonics Silicon Backplane found on PCI device 0000:02:03.0

Wild guess: PCI ID has been lost

Comment 1 Chuck Ebbert 2007-09-19 15:30:08 UTC
Can you test with kernel-2.6.22.6-81.fc7 from the updates-testing repository?


Comment 2 John W. Linville 2007-09-19 15:34:29 UTC
What firmware do you have?  Was it extracted with b43-fwcutter?  Or the older 
bcm43xx-fwcutter (note the name difference)?

Comment 3 Chris Schanzle 2007-09-19 17:56:13 UTC
I will test kernel-2.6.22.6-81.fc7 when I get home in about 7 hours.

I do not recall precisely which firmware cutter I used last, probably
bcm43xx-fwcutter, but I believe I downloaded the sources for b43-fwcutter too
when trying to initially get this card working.  In my notes I have:

sudo bcm43xx-fwcutter -w /lib/firmware/ broadcom-wl-4.00.53.0/kmod/wl_apsta.o

Which now seems to be in direct conflict with today's reading of
http://linuxwireless.org/en/users/Drivers/b43, which is very clear about using
the new cutter (b43-fwcutter) on the new v4 driver.

But do note that no messages were displayed about the inability to load firmware.

Thanks for your comments and suggestions!

Comment 4 John W. Linville 2007-09-19 18:14:44 UTC
Actually, for F7 bcm43xx-fwcutter is correct.  The command line you cited 
above should be fine.

Comment 5 John W. Linville 2007-09-19 18:16:04 UTC
Hmmm...well, almost fine.  I presume you meant to have 80 instead of 00...

http://downloads.openwrt.org/sources/broadcom-wl-4.80.53.0.tar.bz2

Comment 6 John W. Linville 2007-09-19 18:16:52 UTC
Also,  can you include the output of lsmod?

Comment 7 Chris Schanzle 2007-09-20 03:05:24 UTC
yes, it was broadcom-wl-4.80.53.0 - I must not have cut&pasted that one.

kernel-2.6.22.6-81.fc7 made no difference.

I downloaded the b43-fwcutter and ran:

sudo b43-fwcutter-008/b43-fwcutter -w /lib/firmware \
  broadcom-wl-4.80.53.0/kmod/wl_apsta.o

I have a new /lib/firmware/b43 directory well-populated.

No difference with any kernels.  E.g., 'iwconfig' showed no eth1 on > 2.6.22.4.

lsmods of each kernel will be attached.

Comment 8 Chris Schanzle 2007-09-20 03:08:08 UTC
Created attachment 200401 [details]
lsmod 2.6.22.4

Yes, nvidia is loaded, but this kernel's b43 works!  [will repeat w/o nvidia if
required]

Comment 9 Chris Schanzle 2007-09-20 03:08:58 UTC
Created attachment 200411 [details]
lsmod 2.6.22.5

(all of these run through sort for easier diffing)

Comment 10 Chris Schanzle 2007-09-20 03:09:32 UTC
Created attachment 200421 [details]
lsmod of 2.6.22.6

Comment 11 Konstantin Svist 2007-09-21 23:09:39 UTC
I also have a problem with .22.5
Did not try .22.6 yet

Other notes: in .22.4, the only way to make my adapter work is to extract
firmware using bcm43xx-fwcutter and then modprobe b43. Using bcm43xx module
doesn't work with bcm43xx-fwcutter; using b43-fwcutter doesn't work with b43 module.
I've asked guys over at bcm43xx project and they told me it must be something
messed up on Fedora side (and thus cannot help). According to them, b43 should
not work with bcm43xx-fwcutter.
I'm using their recommended firmware image

My lspci:
00:09.0 Network controller: Broadcom Corporation BCM4306 802.11b/g Wireless LAN
Controller (rev 02)

This is a mini-PCI card in HP laptop

Comment 12 Konstantin Svist 2007-09-22 00:23:59 UTC
No offense, but why is this low priority?
Any way it can be elevated?
Can I do something to fix the stuff, or at least help diagnosing/debugging it?

Comment 13 John W. Linville 2007-09-28 14:07:17 UTC
bcm43xx-fwcutter is the proper tool to use for F-7 kernels.  F-7 kernels have 
a patch to continue using the older firmware format.  The idea was to prevent 
breaking setups that were already working.

Please try the kernels here:

   http://koji.fedoraproject.org/koji/buildinfo?buildID=19787

They are very up-to-date w.r.t. the b43 driver.  Does the issue persist for 
you?

Comment 14 Chris Schanzle 2007-10-01 14:04:49 UTC
Yes, problems persist.

I do not think this is firmware issue.  I renamed /lib/firmware, 'modprobe -r
b43', messages said:
Oct  1 09:44:12 localhost kernel: ACPI: PCI interrupt for device 0000:02:03.0
disabled

'modprobe b43' logged just these two lines (repeat: /lib/firmware does not exist):

Oct  1 09:44:20 localhost kernel: ACPI: PCI Interrupt 0000:02:03.0[A] -> Link
[LNKD] -> GSI 11 (level, low) -> IRQ 11
Oct  1 09:44:20 localhost kernel: ssb: Sonics Silicon Backplane found on PCI
device 0000:02:03.0

That's it.  No complaints about unable to load firmware.

With an empty /lib/firmware directory, running 'bcm43xx-fwcutter -w
/lib/firmware broadcom-wl-4.80.53.0/kmod/wl_apsta.o' made
kernel-2.6.22.4-65.fc7.i686 happy.

Comment 15 John W. Linville 2007-10-01 14:39:42 UTC
Can you attach (or copy & paste) the output 
of 'cat /sys/bus/ssb/devices/ssb0\:0/uevent'?

I suspect you may have an usupported wireless core...

Comment 16 Chris Schanzle 2007-10-01 15:16:53 UTC
# cat /sys/bus/ssb/devices/ssb0\:0/uevent 
PHYSDEVBUS=ssb
MODALIAS=ssb:v4243id0812rev04


Comment 17 John W. Linville 2007-10-01 17:35:29 UTC
OK, so you have a device that is not supported by the b43 driver.  It should 
be supported by the b43legacy driver, but we do not have b43legacy enabled in 
F7.  So, you should be using the bcm43xx driver.  This requires a little 
preparation...

First, you need different firmware for that driver.  Download this file:

   http://downloads.openwrt.org/sources/wl_apsta-3.130.20.0.o

Then extract the firmware from it:

   bcm43xx-fwcutter -w /lib/firmware wl_apsta-3.130.20.0.o

Next you will need to take the file called "bcm43xx-override" (attached in 
next comment) and save it in /etc/modprobe.d before rebooting.  You may also 
want to remove any "alias wlan0" lines from /etc/modprobe.conf and possibly 
add "alias eth1 bcm43xx".

After rebooting, does wireless work better for you?

Comment 18 John W. Linville 2007-10-01 17:36:07 UTC
Created attachment 212481 [details]
bcm43xx-override

Comment 19 Chris Schanzle 2007-10-01 18:04:47 UTC
Yes, the above works - thanks.

I commented out an existing 'alias eth1 b43' from modprobe.conf and got success
without the suggested 'alias eth1 bcm43xx'.

What's a mortal user to do with changes like this mid-life in a release?

*shrug*

Could you reference more info about bcm43xx versus b43legacy drivers?

Comment 20 John W. Linville 2007-10-01 18:19:55 UTC
So are you saying that bcm43xx-mac80211 was working for you in the past?  When 
that driver became b43, the expectation was that anything that worked with 
that driver would work with b43 and that anything that didn't work with b43 
already required use of the bcm43xx driver.

As for the b43legacy driver, it is essentially the port of the bcm43xx driver 
to the new mac80211 infrastructure.  If/when you move the Fedora 8 you will 
have to use the b43legacy driver for your current hardware.  The b43 and 
b43legacy drivers in Fedora 8 both use the new firmware format, so if/when you 
move to Fedora 8 you will also need to re-extract the firmware using the 
b43-fwcutter utiltity.

Hth!  Closing as RAWHIDE, as that should load the correct (i.e. b43legacy) 
driver automatically.

Comment 21 Chris Schanzle 2007-10-01 18:33:32 UTC
Per comment #1, I'm saying the b43 driver was working for me with
kernel-2.6.22.4-65.f7 and it stopped working for newer kernel releases.  I
consider that a regression without warning.

Thanks for the driver explanation and a heads-up on F8 driver to use!


Note You need to log in before you can comment on or make changes to this bug.