bcm4306, bcm4309, bcm4311, bcm4312 with b43 : Authentication with AP doesn't work.

Bug #182716 reported by Christophe Giboudeaux on 2008-01-13
124
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Linux
Invalid
Undecided
Unassigned
Ubuntu
Undecided
Unassigned
Nominated for Hardy by Marco Cimmino
linux (Baltix)
Undecided
Unassigned
linux (Mandriva)
New
Undecided
Unassigned
linux (Ubuntu)
Medium
Unassigned
Nominated for Hardy by Marco Cimmino
linux-source-2.6.22 (Ubuntu)
Undecided
Unassigned
Nominated for Hardy by Marco Cimmino

Bug Description

Note to Triage Team : This bug is NOT about Ndiswrapper, NOT about bcm43xx and NOT about conflicts users may have with SSB.

This bug is about timeout when authenticating with AP when using a bcm4306 rev. 03 card and b43 module.

Dist : Hardy 8.04
$ uname -a
Linux mokona 2.6.24-4-generic #1 SMP Thu Jan 10 23:30:27 UTC 2008 i686 GNU/Linux

Concerned hardware :
02:09.0 Network controller [0280]: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller [14e4:4320] (rev 03)
        Subsystem: Linksys Unknown device [1737:0013]
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
        Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
        Latency: 32
        Interrupt: pin A routed to IRQ 19
        Region 0: Memory at fdffe000 (32-bit, non-prefetchable) [size=8K]

The concerned card is a Linksys WMP-54g
After upgrading from Gutsy to Hardy, I blacklisted the ndiswrapper module and the bcm43xx one to try the b43 one (I used b43-fwcutter and the correct file to extract firmware).

After rebooting, the network doesn't work and only does if I unload ohci-hcd, ssb, b43 and modprobe bcm43xx.

If I unload everything and modprobe b43 :
[ 1696.188497] ACPI: PCI Interrupt 0000:02:09.0[A] -> Link [APC4] -> GSI 19 (level, low) -> IRQ 19
[ 1696.226619] ssb: Sonics Silicon Backplane found on PCI device 0000:02:09.0
[ 1696.254937] b43-phy0: Broadcom 4306 WLAN found
[ 1696.342897] phy0: Selected rate control algorithm 'simple'
[ 1696.472470] udev: renamed network interface wmaster0 to eth1
[ 1696.549096] input: b43-phy0 as /devices/virtual/input/input5
[ 772.133199] ADDRCONF(NETDEV_UP): wlan0: link is not ready

ifconfig -a returns :
# ifconfig -a
eth1 Link encap:UNSPEC HWaddr 00-0F-66-F2-8E-4A-40-E2-00-00-00-00-00-00-00-00
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          Packets reçus:0 erreurs:0 :0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000
          Octets reçus:0 (0.0 B) Octets transmis:0 (0.0 B)

wlan0 Link encap:Ethernet HWaddr 00:0f:66:f2:8e:4a
          UP BROADCAST MULTICAST MTU:1500 Metric:1
          Packets reçus:0 erreurs:0 :0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000
          Octets reçus:0 (0.0 B) Octets transmis:0 (0.0 B)

lshw -C network returns :
 *-network
       description: Network controller
       product: BCM4306 802.11b/g Wireless LAN Controller
       vendor: Broadcom Corporation
       physical id: 9
       bus info: pci@0000:02:09.0
       version: 03
       width: 32 bits
       clock: 33MHz
       capabilities: bus_master
       configuration: driver=b43-pci-bridge latency=32 module=ssb
  *-network
       description: Wireless interface
       physical id: 1
       logical name: wlan0
       serial: 00:0f:66:f2:8e:4a
       capabilities: ethernet physical wireless
       configuration: broadcast=yes multicast=yes wireless=IEEE 802.11g

At this point, restarting the network gives :

Internet Systems Consortium DHCP Client V3.0.6
Copyright 2004-2007 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/

eth1: unknown hardware address type 801
eth1: unknown hardware address type 801
Listening on LPF/wlan0/00:0f:66:f2:8e:4a
Sending on LPF/wlan0/00:0f:66:f2:8e:4a
Sending on Socket/fallback
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 7
[cut]
No DHCPOFFERS received.
No working leases in persistent database - sleeping.

and dmesg :
[ 2165.226966] wlan0: Initial auth_alg=0
[ 2165.226977] wlan0: authenticate with AP <the router MAC>
[cut 2 lines]
[ 2165.826050] wlan0: authentication with AP <the router MAC> timed out
--

Now, if I modprobe -r b43 && modprobe bcm43xx :

# lshw -C network
  *-network
       description: Wireless interface
       product: BCM4306 802.11b/g Wireless LAN Controller
       vendor: Broadcom Corporation
       physical id: 9
       bus info: pci@0000:02:09.0
       logical name: wlan0
       version: 03
       serial: 00:0f:66:f2:8e:4a
       width: 32 bits
       clock: 33MHz
       capabilities: bus_master ethernet physical wireless
       configuration: broadcast=yes driver=bcm43xx driverversion=2.6.24-4-generic ip=192.168.15.1 latency=32 link=yes module=bcm43xx multicast=yes wireless=IEEE 802.11b/g

Dmesg output :
[ 2286.617516] ACPI: PCI interrupt for device 0000:02:09.0 disabled
[ 2286.684085] bcm43xx driver
[ 2286.695657] ACPI: PCI Interrupt 0000:02:09.0[A] -> Link [APC4] -> GSI 19 (level, low) -> IRQ 19
[ 2286.746964] udev: renamed network interface eth0 to wlan0
[ 2286.747605] prism2usb_init: prism2_usb.o: 0.2.8 Loaded
[ 2286.747611] prism2usb_init: dev_info is: prism2_usb
[ 2286.747653] usbcore: registered new interface driver prism2_usb
[ 2286.995489] bcm43xx: Radio enabled by hardware
[ 2287.207872] ADDRCONF(NETDEV_UP): wlan0: link is not ready
[ 2287.500654] bcm43xx: Radio enabled by hardware
[ 2287.716373] ADDRCONF(NETDEV_UP): wlan0: link is not ready

and I have a working network (and reload ohci-hcd).
---
Last attempt then : blacklist b43, add bcm43xx in /etc/modules and reboot and it doesn't work. lshw returns «configuration: driver=b43-pci-bridge latency=32 module=ssb».

It is working if I blacklist b43 in /etc/modprobe.d and (very very badly) blacklist ssb (renaming ssb.ko). Only trouble then, ohci-hcd can't load :

[ 22.523070] usbcore: registered new interface driver usbfs
[ 22.526435] usbcore: registered new interface driver hub
[ 22.536698] usbcore: registered new device driver usb
[ 22.541300] ohci_hcd: Unknown symbol ssb_device_disable
[ 22.545038] ohci_hcd: Unknown symbol ssb_admatch_base
[ 22.548913] ohci_hcd: Unknown symbol ssb_device_enable
[ 22.552850] ohci_hcd: Unknown symbol ssb_driver_unregister
[ 22.556937] ohci_hcd: Unknown symbol __ssb_driver_register
[ 22.561268] ohci_hcd: Unknown symbol ssb_admatch_size

--

I hope this is clear enough :-)

Christophe Giboudeaux (krop) wrote :

dmesg output. Only ndiswrapper was blacklisted.

Changed in linux:
assignee: nobody → ubuntu-kernel-team
importance: Undecided → Medium
status: New → Triaged

$sudo mv etc/udev/rules.d/70-persistent-net.rules
/etc/udev/rules.d/70-persistent-net.rules.old

References:
http://bugzilla.kernel.org/show_bug.cgi?id=9402#c12
http://bugzilla.kernel.org/show_bug.cgi?id=9402#c14

Changed in linux:
status: Unknown → Fix Released
Christophe Giboudeaux (krop) wrote :

It didn't change anything. (to be sure, I tried the extracted firmwares from wl_apsta_mimo.o then wl_apsta.o)

Attachment : dmesg after rebooting, lshw, ifconfig and network restart output.

Christophe Giboudeaux (krop) wrote :
Christophe Giboudeaux (krop) wrote :
Christophe Giboudeaux (krop) wrote :

hi,
today I upgraded my notebook to hardy (kernel 2.6.24-5.8) and I saw that putting my pcmcia broadcom 4306 card results in a 100% lockup system.
I haven't blacklisted anything and no firmware downloaded yet, anyway the lock shouldn't happen imo isn't?

hi all,

I've installed kubuntu hardy in my hp tx1000z notebook after installing in gutsy gibbon. In gutsy I got my wireless working after following this thread to use ndiswrapper:
http://ubuntuforums.org/showthread.php?t=297092

But in gutsy it didn't work. The problem was that ssb module was loaded. To rmmod it I had to rmmod ohci_hcd first. Then I reloaded ndiswrapper and it worked.

The problem is that I have to do that every time I start the computer, cause blacklist is not working to inhibit ssb loading. I tried $sudo mv etc/udev/rules.d/70-persistent-net.rules /etc/udev/rules.d/70-persistent-net.rules.old
and restarting, I've got this file changed, invoking ndiswrapper as driver, but ssb is in the middle all the way and I have to rmmod it to get wireless working.

Here my /etc/modprobe.d/blacklist, Hope it helps :) :

RedBass (redbass) wrote :

I had open a thread on:
https://bugs.launchpad.net/ubuntu/+source/ndiswrapper/+bug/188621

To resolve the problem i crate a boot script using this steps:

1) U must create a file in /etc/init.d/ndiswrapper:

sudo nano /etc/init.d/ndiswrapper

1.a) and paste in it this text:

#! /bin/sh
### BEGIN INIT INFO
# Provides: ndiswrapper
# Required-Start:
# Required-Stop:
# Default-Start: S
# Default-Stop:
# Short-Description: enable to load ndiswrapper
# Description: enable to load ndiswrapper
### END INIT INFO

rmmod ohci_hcd
rmmod ssb
rmmod ndiswrapper
modprobe ndiswrapper
modprobe ssb
modprobe ohci_hcd

############# end file ############

2) then set file access permissions:

sudo chmod 755 /etc/init.d/ndiswrapper

3) check if permissions are ok. Type:

ls -l /etc/init.d/ndiswrapper

[... ]
-rwxr-xr-x 1 root root 4388 2008-02-03 14:57 /etc/init.d/ndiswrapper
[... ]

4) last, create a symbolic link call S99ndiswrapper in the folder /etc/rc2.d, from /etc/init.d/ndiswrapper:

sudo ln -s /etc/init.d/ndiswrapper /etc/rc2.d/S99ndiswrapper

5) unplug your usb devices and pcmicia card and then reboot your machine.
6) when GDM start (the login screen), plug all USB device and pcmica cards that U want.

I had put in blacklist b43legacy and bcm43xx

If i try to use b43legacy the machine stop and i can't log the dmsg

Christophe Giboudeaux (krop) wrote :

Please Guys, this bug report is not about Ndiswrapper or system lockup.

Different troubles = Different bug reports. Thank you.

Raymond Slieff (archgriffin) wrote :

I wonder if this is close to what I have going on. Although the original poster has done far more then I could have guessed, so I need to try some of that and see if I get similar results at all.

My wireless worked under 7.10, although I would have to tell it to connect 3 or 4 times before it finally would, but once on it was fine.

However after I upgraded to 8.04 it did not even find the card. A few days ago more updates were released, and it then found the card, but it does not see any of the 4 wireless networks around me (I only ever used my own, but I could always at least see others).

I don't want to waste people's time, but I can't imagine that the issue I am having is mine alone. If there is something for me to post that might help connect it to this issue, or would tell if I should submit a separate bug report please let me know. I've just started trying to help out with bug reporting.

I've never used ndiswrapper either btw.

Andreas Gnau (rondom) wrote :

krop, from my understanding this bug always occurs i.e. no matter if you are using ndiswrapper or the native drivers. You could replace ndiswrapper with b43 in the example above and it should work.

Adam Williamson (awilliamson) wrote :

Duplicating my comments from 188621...

Regarding the ohci_hcd / ssb issue, the required fix is CONFIG_USB_OHCI_HCD_SSB=n in kernel build config. This option, when enabled, makes ohci_hcd depend on ssb, but is only needed to support a USB controller that is found only in embedded devices (so not relevant to standard Ubuntu). As long as that option's set to y, ssb will be loaded whenever ohci_hcd is loaded, regardless of blacklisting or anything else.

In Mandriva's case, ohci_hcd was being loaded on all systems (even systems with no USB controller requiring the ohci_hcd driver) due to a change in mkinitrd. I don't know if this part also affects Ubuntu, but regardless, the above fixes the problem. Bug should be sent to your kernel devs.

The boot script from RedBass don't solve everything...
I have a bcm4306 wireless card in my Dell Inspiron 5150 laptop and with the script, it solve my wireless problem (using ndiswrapper by the way).

BUT: i have b44 module used to manage my wired ethernet port that is no more loaded because of the script...

Had to modify the script like this to correct my problem:

#! /bin/sh
### BEGIN INIT INFO
# Provides: ndiswrapper
# Required-Start:
# Required-Stop:
# Default-Start: S
# Default-Stop:
# Short-Description: enable to load ndiswrapper
# Description: enable to load ndiswrapper
### END INIT INFO

rmmod b44
rmmod ohci_hcd
rmmod ssb
rmmod ndiswrapper
modprobe ndiswrapper
modprobe ssb
modprobe ohci_hcd
modproble b44

############# end file ############

C (ubuntu-caranfil) wrote :

I can confirm that in Hardy Alpha 5 the problem that Adam is mentioning two comments above this one ( https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.24/+bug/182716/comments/13 ) IS STILL PRESENT !!! (that approach managed to fix the same problem under Mandriva so I guess the same workaround could be used in Ubuntu too)

Changed in linux:
status: Unknown → Fix Released

I would like to CONFIRM that this bug still persists even with all Hardy updates as of today...

Hi All,

Just adding some extra info. The current Hardy kernel config shows the following. I'll have the kernel team to take a look to consider changing. Thanks.

:~/ubuntu-hardy/debian/config$ grep -rn "CONFIG_USB_OHCI_HCD_SSB" *
amd64/config:2784:CONFIG_USB_OHCI_HCD_SSB=y
hppa/config:1247:CONFIG_USB_OHCI_HCD_SSB=y
i386/config.386:1912:CONFIG_USB_OHCI_HCD_SSB=y
i386/config.generic:1908:CONFIG_USB_OHCI_HCD_SSB=y
i386/config.server:1914:CONFIG_USB_OHCI_HCD_SSB=y
ia64/config:2259:CONFIG_USB_OHCI_HCD_SSB=y
lpia/config:2566:CONFIG_USB_OHCI_HCD_SSB=y
powerpc/config:2430:CONFIG_USB_OHCI_HCD_SSB=y
sparc/config:1894:CONFIG_USB_OHCI_HCD_SSB=y

Changed in linux:
assignee: ubuntu-kernel-team → colin-king
status: Triaged → In Progress
Changed in linux:
status: In Progress → Fix Committed
Launchpad Janitor (janitor) wrote :
Download full text (4.6 KiB)

This bug was fixed in the package linux - 2.6.24-12.18

---------------
linux (2.6.24-12.18) hardy; urgency=low

  [Amit Kucheria]

  * Move Marvell 8686 and 8688 to LUM
  * Poulsbo: Sync patches with moblin/ume-hardy tree
  * Break if a patch fails to apply
  * SAUCE: implement smarter atime updates support
    - LP: #199427
  * Enable USB_PERSIST to allow devices with /root on usb to work with
    suspend
  * Enable USB_PERSIST across the board

  [Ben Collins]

  * build/config: Really fix ide on smp ppc configs
  * build/configs: Enable relatime config option for all flavors
  * build/abi: Ignore ide-core module for ppc, moved to built-in

  [Colin Ian King]

  * fix reversed logic for bbuild check leads to -j1 default
    - LP: #197040
  * Enable IDE_PMAC for powerpc-smp
    - LP: #196686
  * Disable CONFIG_USB_OHCI_HCD_SSB
    - LP: #182716
  * SAUCE: fix arcmsr + archttp64 calls dma_free_coherent() with irqs
    disabled - dmesg filled with warnings
    - LP: #194207

  [Jorge Boncompte [DTI2]]

  * Fix Messed multicast lists after dev_mc_sync/unsync
    - LP: #193468

  [Stefan Bader]

  * Add support for Apple Aluminium keyboards.
    - LP: #162083
  * SAUCE: Restore VT fonts on switch

  [Upstream Kernel Changes]

  * [NET]: Messed multicast lists after dev_mc_sync/unsync
  * KVM: x86 emulator: add support for group decoding
  * KVM: x86 emulator: group decoding for group 1A
  * KVM: x86 emulator: Group decoding for group 3
  * KVM: x86 emulator: Group decoding for groups 4 and 5
  * KVM: x86 emulator: add group 7 decoding
  * KVM: constify function pointer tables
  * KVM: Only x86 has pio
  * KVM: x86 emulator: group decoding for group 1 instructions
  * KVM: MMU: Decouple mmio from shadow page tables
  * KVM: Limit vcpu mmap size to one page on non-x86
  * KVM: VMX: Enable Virtual Processor Identification (VPID)
  * KVM: Use CONFIG_PREEMPT_NOTIFIERS around struct preempt_notifier
  * KVM: Disable pagefaults during copy_from_user_inatomic()
  * KVM: make EFER_RESERVED_BITS configurable for architecture code
  * KVM: align valid EFER bits with the features of the host system
  * KVM: allow access to EFER in 32bit KVM
  * kvm: i386 fix
  * KVM: export information about NPT to generic x86 code
  * KVM: MMU: make the __nonpaging_map function generic
  * KVM: export the load_pdptrs() function to modules
  * KVM: MMU: add TDP support to the KVM MMU
  * KVM: x86 emulator: Fix 'jmp abs'
  * KVM: x86 emulator: fix group 5 decoding
  * KVM: Fix kvm_arch_vcpu_ioctl_set_sregs so that set_cr0 works properly
  * KVM: Make the supported cpuid list a host property rather than a vm
    property
  * KVM: emulate access to MSR_IA32_MCG_CTL
  * KVM: remove the usage of the mmap_sem for the protection of the memory
    slots.
  * KVM: SVM: allocate the MSR permission map per VCPU
  * KVM: make MMU_DEBUG compile again
  * KVM: paravirtualized clocksource: host part
  * KVM: Add missing semicolon
  * KVM: x86 emulator: add ad_mask static inline
  * KVM: x86 emulator: make register_address, address_mask static inlines
  * KVM: x86 emulator: make register_address_increment and JMP_REL static
    inlines
  * KVM: Add API to retrieve the number of supported...

Read more...

Changed in linux:
status: Fix Committed → Fix Released
Christophe Giboudeaux (krop) wrote :

For what I can see with 2.6.24-12.20, SSB is still loaded when modprob'ing b43. Even with the latest kernel version, I can't use b43 to connect to my AP.

Gert Kulyk (gkulyk) wrote :

@krop
This will never change because b43 needs ssb.

Do you have proper firmware-files installed (do you have b43 and b43legacy directories in /lib/firmware)? If so, can you test the file-permissions (hardy b43-fwcutter-package did not fix file-permissions until recent upload of version 011). If this does not change anything or you do not have the required firmware, can you try to install latest b43-fwcutter-package and re-run /usr/share/b43-fwcutter/install_bcm43xx_firmware.sh as root manually?

Christophe Giboudeaux (krop) wrote :
Download full text (4.9 KiB)

Here's the result after running this script (the directory has the correct permissions in /lib/firmware) :

root@mokona:~# rmmod bcm43xx
root@mokona:~# modprobe b43
root@mokona:~# dmesg
[cut]
[360324.734065] ACPI: PCI Interrupt 0000:02:09.0[A] -> Link [APC4] -> GSI 19 (level, low) -> IRQ 19
[360324.754205] ssb: SPROM revision 1 detected.
[360324.771029] ssb: Sonics Silicon Backplane found on PCI device 0000:02:09.0
[360324.783051] b43-phy3: Broadcom 4306 WLAN found
[360324.858103] phy3: Selected rate control algorithm 'simple'
[360324.983406] udev: renamed network interface wlan0 to eth0
[360325.047452] input: b43-phy3 as /devices/virtual/input/input11
[360326.687343] Registered led device: b43-phy3:tx
[360326.688405] Registered led device: b43-phy3:rx
[360326.689284] Registered led device: b43-phy3:radio
[360327.675103] eth0: Initial auth_alg=0
[360327.675114] eth0: authenticate with AP 7a:7c:62:6a:c2:b4

root@mokona:~# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:0f:66:f2:8e:4a
          UP BROADCAST MULTICAST MTU:1500 Metric:1
          Packets reçus:0 erreurs:0 :0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000
          Octets reçus:0 (0.0 B) Octets transmis:0 (0.0 B)

lo Link encap:Boucle locale
          inet adr:127.0.0.1 Masque:255.0.0.0
          UP LOOPBACK RUNNING MTU:16436 Metric:1
          Packets reçus:13596 erreurs:0 :0 overruns:0 frame:0
          TX packets:13596 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:0
          Octets reçus:6626713 (6.3 MB) Octets transmis:6626713 (6.3 MB)

wmaster0 Link encap:UNSPEC HWaddr 00-0F-66-F2-8E-4A-00-00-00-00-00-00-00-00-00-00
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          Packets reçus:0 erreurs:0 :0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000
          Octets reçus:0 (0.0 B) Octets transmis:0 (0.0 B)

root@mokona:~# iwconfig
lo no wireless extensions.

wmaster0 no wireless extensions.

eth0 IEEE 802.11g ESSID:"freebox"
          Mode:Managed Frequency:2.447 GHz Access Point: 7A:7C:62:6A:C2:B4
          Tx-Power=27 dBm
          Retry min limit:7 RTS thr:off Fragment thr=2346 B
          Encryption key:off
          Link Quality:0 Signal level:0 Noise level:0
          Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
          Tx excessive retries:0 Invalid misc:0 Missed beacon:0

root@mokona:~# /etc/init.d/networking restart
 * Reconfiguring network interfaces...There is already a pid file /var/run/dhclient.eth0.pid with pid 16242
killed old client process, removed PID file
Internet Systems Consortium DHCP Client V3.0.6
Copyright 2004-2007 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/

wmaster0: unknown hardware address type 801
wmaster0: unknown hardware address type 801
Listening on LPF/eth0/00:0f:66:f2:8e:4a
Sending on LPF/eth0/00:0f:66:f2:8e:4a
Sending on Socket/fallback
DHCPRELEASE on eth0 to 192.168.15.254 port 67
send_packet: Network is un...

Read more...

Trond Thorbjørnsen (tthorb) wrote :

I have similar problems with my bcm4328.

I had to blacklist 'ssb' (and maybe b43) in /etc/modprobe.d/blacklist

blacklist ssb
blacklist b43

And then I used ndiswrapper with bcmwl5.inf

The b43 driver should not work with your hardware. According to the developers a 4306 w/ a revision less than 4 (your lshw says version=3) should use b43legacy. Please try that one and try again. Someone should fix the udev scripts to pull in the correct driver if they didn't already. What confuses me is that they say the kernel autoloader should have done the "right thing."

http://www.linuxwireless.org/en/users/Drivers/b43

Christophe Giboudeaux (krop) wrote :

Already done with the same result. Note that in both case, iwlist "sees" the wifi routers around me but fails to associate with the same timeout message.

Jaap Haitsma (jaap) wrote :

With my bcm4311 I can connect with the b43 driver but the connection drops often and is slow. I get quite some dropped packets. A few kernels ago in hardy it worked very well

Relevant lshw output

           *-network
                description: Network controller
                product: BCM4311 [AirForce 54g] 802.11a/b/g PCI Express Transceiver
                vendor: Broadcom Corporation
                physical id: 3
                bus info: pci@0000:02:03.0
                version: 02
                width: 32 bits
                clock: 33MHz
                capabilities: bus_master
                configuration: driver=b43-pci-bridge latency=64 module=ssb

Matthew Woerly (nattgew) wrote :

I have the same chipset and I can confirm the same behavior. The b43 can scan and see the networks, but not associate. It shows up in network-admin as 2 wired connections (a wlan0_rename and an eth0).
I tried b43legacy but it does absolutely nothing...

cob (cobbjbc) wrote :

Same behavior with

02:03.0 Network controller: Broadcom Corporation BCM4309 802.11a/b/g (rev 02)

Changed in linux-source-2.6.24:
status: New → Invalid
Matthew Woerly (nattgew) wrote :

Can you explain why this has been marked as "Invalid" and "Fix Released" it its packages despite the fact that people have still been confirming this?

Jaap Haitsma (jaap) wrote :

Weird thing is that dmesg reports that I have 4318 while lshw (see above) and lspci tell me I've got a 4311

[ 19.397550] b43-phy0: Broadcom 4318 WLAN found

Matthew Woerly (nattgew) wrote :

This has not been fixed.

Changed in linux:
status: Fix Released → Confirmed
monoi (bschofield) wrote :
Download full text (7.4 KiB)

Can confirm that this bug still persists using a clean install of Hardy 8.04 beta, after applying all updates available as of 2000 UTC 22/03/2008.

Hardware: Dell Inspiron 500m laptop using Broadcom 4306 wireless card:-

ben@foo:~$ lspci -nn | fgrep Broadcom
01:03.0 Network controller [0280]: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller [14e4:4320] (rev 02)

On first boot, suitable firmware was not present, and I was not prompted by the restricted devices manager. Used "sudo apt-get install b43-fwcutter" to get and extract firmware. Following this, the driver claims to be working:-

ben@foo:~$ dmesg | fgrep b43
[ 90.815294] b43legacy-phy0 debug: Loading firmware version 0x127, patch level 14 (2005-04-18 02:36:27)
[ 97.314665] Registered led device: b43legacy-phy0:tx
[ 97.315141] Registered led device: b43legacy-phy0:rx
[ 227.125221] b43legacy-phy0 debug: Chip initialized
[ 227.126611] b43legacy-phy0 debug: 30-bit DMA initialized
[ 227.127645] b43legacy-phy0 debug: Wireless interface started
[ 227.133624] b43legacy-phy0 debug: Adding Interface type 2
[ 968.018948] b43legacy-phy0 debug: Removing Interface type 2
[ 968.021628] b43legacy-phy0 debug: Wireless interface stopped
[ 968.021723] b43legacy-phy0 debug: DMA-32 0x0260 (RX) max used slots: 1/64
[ 968.021810] b43legacy-phy0 debug: DMA-32 0x0200 (RX) max used slots: 1/64
[ 968.021917] b43legacy-phy0 debug: DMA-32 0x02A0 (TX) max used slots: 0/128
[ 968.031654] b43legacy-phy0 debug: DMA-32 0x0280 (TX) max used slots: 0/128
[ 968.037434] b43legacy-phy0 debug: DMA-32 0x0260 (TX) max used slots: 0/128
[ 968.039134] b43legacy-phy0 debug: DMA-32 0x0240 (TX) max used slots: 0/128
[ 968.046624] b43legacy-phy0 debug: DMA-32 0x0220 (TX) max used slots: 2/128
[ 968.050723] b43legacy-phy0 debug: DMA-32 0x0200 (TX) max used slots: 0/128
[ 968.051957] b43legacy-phy0 debug: Radio initialized
[ 968.052106] b43legacy-phy0 debug: Radio initialized
[ 419.357337] b43legacy-phy0 debug: Loading firmware version 0x127, patch level 14 (2005-04-18 02:36:27)
[ 419.360620] Registered led device: b43legacy-phy0:tx
[ 419.361095] Registered led device: b43legacy-phy0:rx
[ 419.367056] b43legacy-phy0 debug: Chip initialized
[ 419.367844] b43legacy-phy0 debug: 30-bit DMA initialized
[ 419.368346] b43legacy-phy0 debug: Wireless interface started
[ 419.374583] b43legacy-phy0 debug: Adding Interface type 2

NetworkManager can then correctly probe networks, but cannot connect:

root@foo:~# NetworkManager --no-daemon
NetworkManager: <info> starting...
NetworkManager: <info> Found radio killswitch /org/freedesktop/Hal/devices/dell_wlan_switch
NetworkManager: <info> eth0: Device is fully-supported using driver 'e100'.
NetworkManager: <info> nm_device_init(): waiting for device's worker thread to start
NetworkManager: <info> nm_device_init(): device's worker thread started, continuing.
NetworkManager: <info> Now managing wired Ethernet (802.3) device 'eth0'.
NetworkManager: <info> Deactivating device eth0.
NetworkManager: <info> wlan0: Device is fully-supported using driver '(null)'.
NetworkManager: <info> wlan0: driver supports SSID scans (scan_capa 0x01).
NetworkManager: <inf...

Read more...

Marco Cimmino (cimmo) wrote :

I think this is a regression of the new network-manager-0.6.6 introduced some days ago.
Someone that can try an earlier build can confirm?

Matthew Woerly (nattgew) wrote :

@ monoi, what do you get from
ifconfig
iwconfig

monoi (bschofield) wrote :

@Nattgew: I get an interface:-

root@foo:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0d:56:72:25:37
          inet addr:192.168.1.66 Bcast:192.168.1.255 Mask:255.255.255.0
          inet6 addr: fe80::20d:56ff:fe72:2537/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          RX packets:8164 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5456 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:11037281 (10.5 MB) TX bytes:601170 (587.0 KB)

lo Link encap:Local Loopback
          inet addr:127.0.0.1 Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING MTU:16436 Metric:1
          RX packets:70 errors:0 dropped:0 overruns:0 frame:0
          TX packets:70 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:3500 (3.4 KB) TX bytes:3500 (3.4 KB)

wlan0 Link encap:Ethernet HWaddr 00:90:4b:1b:57:a6
          UP BROADCAST MULTICAST MTU:1500 Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

wmaster0 Link encap:UNSPEC HWaddr 00-90-4B-1B-57-A6-00-00-00-00-00-00-00-00-00-00
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

root@foo:~# iwconfig
lo no wireless extensions.

eth0 no wireless extensions.

wmaster0 no wireless extensions.

wlan0 IEEE 802.11g ESSID:""
          Mode:Managed Frequency:2.412 GHz Access Point: Not-Associated
          Tx-Power=27 dBm
          Retry min limit:7 RTS thr:off Fragment thr=2346 B
          Encryption key:off
          Link Quality:0 Signal level:0 Noise level:0
          Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
          Tx excessive retries:0 Invalid misc:0 Missed beacon:0

The fact that NetworkManager can scan for APs correctly seems to suggest that b43legacy is at least partly operational...

Matthew Woerly (nattgew) wrote :

Odd... b43legacy doesn't work at all for me, but b43 gets me exactly what you are getting.

monoi (bschofield) wrote :

Definitely b43legacy for me:

root@foo:~# lsmod | fgrep b43
b43legacy 129564 0
rfkill 8592 1 b43legacy
mac80211 165652 1 b43legacy
led_class 6020 1 b43legacy
input_polldev 5896 1 b43legacy
ssb 32772 1 b43legacy

I've just tried removing the network-manager package and configuring manually, and my wireless now works -- using it to post this. Therefore, looks like this is a regression in NetworkManager, as suggested by Cimmo...

monoi (bschofield) wrote :

@Nattgew: from http://linuxwireless.org/en/users/Drivers/b43,

"b43legacy should be used on all 4301 and 4303 cards. 4306 and 4309 cards with a MAC core revision of 4 or less should also use b43legacy. b43 should be used on all other cards."

My 4306 is rev 02, hence me being on b43legacy.

monoi (bschofield) wrote :

Changing to "Fix Released" as bug appears to be in NetworkManager, not b43 / ssb.

Changed in linux:
status: Confirmed → Fix Released
Matthew Woerly (nattgew) wrote :

Yeah, I know that, but when I modprobe b43legacy, it does nothing. Modprobing b43 gives me what you got.
I couldn't get it to work even without Network Manager.

Matthew Woerly (nattgew) wrote :

Ok, so all you did to get it to work is to install b43-fwcutter and it installed the firmware, and automatically started b43legacy.
And then you removed network-manager... how exactly did you configure it manually? Through the GUI or via iwconfig?

Matthew Woerly (nattgew) on 2008-03-23
Changed in linux:
status: Fix Released → Confirmed
description: updated
Matthew Woerly (nattgew) on 2008-05-29
description: updated
98 comments hidden view all 178 comments
Larry Finger (larry-finger) wrote :

The firmware can be copied from computer to computer.

Once the modified SPROM is loaded, you don't ever need to do it again.

I would try channel 1 on your AP. Interference in the 2.4 GHz band doesn't always come from other wifi devices. Any number of household devices can interfere.

You can always check for hardware problems by swapping the cards.

Larry

Larry Finger (larry-finger) wrote :

Besides the MAC address, there are other parameters in the SPROM where Broadcom accounts for the specific amplifiers and radio of a device. When you wrote the SPROM for board A into board B, these were also overwritten. Fortunately, there are not many of these. The list includes the antenna gain, the pa0bx parameters, the max power out, and the idle TSSI target.

I am assuming that you do not have a copy of the original contents of the SPROM for board B. I have saved copies of all the boards that have been rewritten All of them have 0x3C for the maximum power out, and 0x3E for the idle TSSI target, thus I think we can rule out those parameters. I do see only two different sets of parameters for the pa0bx parameters as follows:

Board pa0b0 pa0b1 pa0b2

Your A 0x12A0 0xFB77 0xFEAC
Other 0x 119A 0xFB93 0xFEA5

The following SPROM content has the MAC of your board B and the other pa0bx values. Please try it.

014000001500371720430080020002000010001800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0070667D27FFFFFFFFFFFFFFFFFFFFFFFFFFFF45169A1193FBA5FEFFFFFFFF3C000000000000003E000C02FFFF000000000000000001C9

Matthew Woerly (nattgew) wrote :

My original contents were posted here, correct? That would be the only copy I have.
By board A I assume you mean the first SPROM I posted, and by board B I assume you mean the second?
Assuming that, board B is working great and board A is the one with issues.
That said, would you like me to try the SPROM you posted on B? I just want to make sure. I'll try it out when I get a chance.

Larry Finger (larry-finger) wrote :

No, don't use that one. It has the MAC address of the second board. If the second board is working fine, and the first SPROM that you sent came from the board that is giving the trouble, I have no idea what to do.

Larry

c.schneid (cschneid) wrote :

Hi Larry,

I've the same problem :

05:08.0 Network controller [0280]: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller [14e4:4320] (rev 03)
        Subsystem: Linksys Unknown device [1737:0015]
        Flags: bus master, fast devsel, latency 32, IRQ 21
        Memory at d3000000 (32-bit, non-prefetchable) [size=8K]

My SPROM :
014000001500371720430080020002000010001800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF120065175B76FFFFFFFFFFFFFFFFFFFFFFFFFFFF4510A01277FBACFEFFFFFFFF3C000000000000003E000D02FFFF0000000000000000018D

Can you give me the new SPROM?

Thanks.

Christophe

Hi Larry and colleagues,

I wonder if we could have an update on this bug.
 - Has the problem been pinned down?
 - Is there a kernel patch accepted or in the pipeline?
 - Do we know yet in which kernel release the problem will be fixed and can we expect to see it in the repos any time soon?
 - For which cards will the problem be solved?
 - Is there a workaround for everyone who has this bug or does it need to be case-by-case?

Many thanks,
Z.

_________________________________________________________________
Find singles in your area with Match.
http://a.ninemsn.com.au/b.aspx?URL=http%3A%2F%2Fmatch%2Enz%2Emsn%2Ecom%2Fchannel%2Findex%2Easpx%3Ftrackingid%3D1043416&_r=WL_EMAL_TAG&_m=EXT

Larry Finger (larry-finger) wrote :

The problem is well known and is due to Broadcom's SPROM miscoding for most, if not all, PCI versions of the BCM4306 and at least one PCI version of the BCM4318. The difficulty is with Bluetooth coexistence, thus we cannot apply the "fix" to _ALL_ cards without testing a representative of each card group. The problem slipped through the bcm43xx team because none of us had the necessary hardware.

The patches for all _KNOWN_ devices with this problem have been accepted into the mainline kernel (2.6.27-rc4), sent to Ubuntu, and merged by them into the code base for both Hardy and Intrepid. I would expect the fix to be in the next kernel version. As I'm not affiliated with Ubuntu, I have no idea when that might be.

The specific cards that are addressed by the patches are as follows (the numbers in parentheses are the vendor, device, subvendor and subvendor codes that show up in the first two lines of the 'lspci -nnv' output for the wireless interface.):

ASUS WL-138G V2 (4314, 4318, 1043, 100F)
DELL DW1350 (4314, 4320, 1028, 0003)
LINKSYS (4314, 4320, 1737, 0013)
LINKSYS (4314, 4320, 1737, 0014)
LINKSYS (4314, 4320, 1737, 0015)

I have been treating the cases individually during the process of card identification, but there is a workaround. To use it, you need to obtain the SPROM utility from the bcm43xx tools at http://linuxwireless.org/en/users/Drivers/b43#relatedtools. To use this tool, you will need packages containing git, make, gcc, and glibc. The specific fix is to clear bit 1 of the low-order board flags. In most of the boards listed above, the current contents are 0x000D, which must be changed to 0x000C. When fixed, the kernel does this dynamically when starting, but a permanent change is equally effective. Caution must be taken to observe the current contents before changing them! If you blindly write 0x000C into the board flags, you may kill your card!

If you have a card with this problem _AND_ numbers different from the above list, I would like to know about it so that future kernels will be fixed.

I hope this answers your questions.

Larry

Larry Finger (larry-finger) wrote :

For Christophe Schneid,

The revised SPROM contents for your device is

014000001500371720430080020002000010001800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF120065175B76FFFFFFFFFFFFFFFFFFFFFFFFFFFF4510A01277FBACFEFFFFFFFF3C000000000000003E000C02FFFF000000000000000001B9

Larry

c.schneid (cschneid) wrote :

Larry,
It works!!!!
Thanks!
Christophe

dmangot (ubuntu-mangot) wrote :

Larry,

   I'm dying having to reboot into Windows!

00:0e.0 Network controller [0280]: Broadcom Corporation BCM4306 802.11b/g Wirele
ss LAN Controller [14e4:4320] (rev 03)
        Subsystem: Linksys Unknown device [1737:0015]
        Flags: bus master, fast devsel, latency 32, IRQ 16
        Memory at dd000000 (32-bit, non-prefetchable) [size=8K]

My SPROM:
014000001500371720430080020002000010001800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F00F366D697FFFFFFFFFFFFFFFFFFFFFFFFFFFF4516A01277FBACFEFFFFFFFF3C000000000000003E000D02FFFF00000000000000000156

Is there a shell script you could post that people could use to generate their own? I feel bad asking you to generate mine. :(

Thanks a million.

-Dave

Larry Finger (larry-finger) wrote :

It cannot be a shell script, but there is an SPROM manipulation program to do this. See the posting 2 or 3 above this one.

Your revised SPROM contents are

014000001500371720430080020002000010001800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F00F366D697FFFFFFFFFFFFFFFFFFFFFFFFFFFF4516A01277FBACFEFFFFFFFF3C000000000000003E000C02FFFF00000000000000000162

Larry

efolch (efolch+launchpad) wrote :

Larry,

I guess I've a somewhat different card, as I cannot find the 000D on the
SPROM, and the numbers in the card are also somewhat different to the ones
listed as "known affected cards" :

lspci:
0b:03.0 Network controller [0280]: Broadcom Corporation BCM4306 802.11b/g
Wireless LAN Controller [14e4:4320] (rev 03)
       Subsystem: Hewlett-Packard Company Broadcom 802.11b/g WLAN [103c:12fa]

SPROM:
01400000FA123C1020430080020002000010001800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFF9000A44BFB5DFFFFFFFFFFFFFFFFFFFFFFFFFFFF3130AA14C8FA9FFEFFFFFFFF4C00FFFFFFFFFFFF3E00493A02FF454410FFFFFFFFFF021B

What should be the new SPROM to get the problem fixed?

thanks in advance,
k

Larry Finger (larry-finger) wrote :

To anyone reading this thread. I reemphasize that changing the SPROM is not as simple as using an editor on your data because these data must satisfy an 8-bit CRC.

For efolch:

Your new values are

01400000FA123C1020430080020002000010001800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFF9000A44BFB5DFFFFFFFFFFFFFFFFFFFFFFFFFFFF3130AA14C8FA9FFEFFFFFFFF4C00FFFFFFFFFFFF3E00483A02FF454410FFFFFFFFFF022F

Please give me feedback on this card. Your set of values is a new one that will require a kernel patch.

Larry

efolch (efolch+launchpad) wrote :

Larry,

It's working now. I rewrote the SPROM, but that alone wasn't enough. I had to reinstall the driver as per http://linuxwireless.org/en/users/Drivers/b43#devicefirmware. Then reboot, and everything was ok.

I didn't go through any intensive testing (enable/disable the wireless via the laptop button, or ifconfig, enable/disable/use of bluetooth -I saw above in the thread that there was something related to bluetooth coexistence that affected this bug-).

I'm willing to help, so let me know if you want any particular set of tests/logs/info.

cheers,
k

Larry Finger (larry-finger) wrote :

The change we made in your SPROM disabled the Bluetooth coexistence function in your firmware. If you use Bluetooth, there will be interference in the 2.4 GHz band.

Because you had to rewrite the firmware files on the disk, I would like you to do the following:

1. Write the original SPROM contents back to the device and verify that the failure returns.

2. If is does not, let me know. If it does, try this SPROM contents

01400000FA123C1020430080020002000010001800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFF9000A44BFB5DFFFFFFFFFFFFFFFFFFFFFFFFFFFF3130AA14C8FA9FFEFFFFFFFF4C00FFFFFFFFFFFF3E00497A02FF454410FFFFFFFFFF0213

3. If step number 2 also fails, we will have to live with the disabling of Bluetooth coexistence. Rewrite the first set of changed values to the SPROM.

None of these steps should require any change in the firmware.

Larry

efolch (efolch+launchpad) wrote :

Larry,

The behavior is pretty weird. I explain:

1) Wrote the old SPROM back while the card was connected. Everything still worked fine. Through knetworkmanager I disabled/enabled wireless and then it refused to connect again. *BUT* if I do a "ifconfig wlan0 down; ifconfig wlan0 up", then, it connects again.

2) Wrote the new SPROM while the card was connected, and everything was fine. Then exactly same behavior.

3) Wrote the first set back to SPROM and same as above.

I all cases connectivity remains when changing the SPROM until I disable/enable the wireless through KNetworkmanager, when it's lost. From here, in some cases I regain connectivity by disabling/enabling wireless through knetworkmanager, or by using ifconfig (not sure if there's any difference, but that's what happen).

Best thing, I can manage to have the wireless working playing with the interface up/down.
Worst thing, I cannot manage to have the wireless auto-"up and running" right after reboot (which is quite bad for my 4 years old daughter when trying to do onlime gaming :-))

Ideas?

k

Larry Finger (larry-finger) wrote :

I'm not sure of the meaning of the tests. The values in the SPROM are read only when the base driver ssb is loaded. Unless you reboot, or modprobe -r b43, changes are ignored. I think you need to do them again.

As to why it doesn't come up running, that is a matter for other of the Ubuntu mailing lists. Under both openSUSE 10.3 and 11.0, the wireless always starts unless there is a wired connection. It always gets priority.

Larry

efolch (efolch+launchpad) wrote :

I repeated the tests with unloading/reloading the driver via modbprobe, and same thing as before: when the wireless tries to attach to the correspodent SSID for the first time after the driver reload, it doesn't succeed (it stops in "stage 2 of 5 (Device Configure) complete" in the syslog.

If i try to force a reconnect to the same ssid or enable/disable the wireless via knetworkmanager, it always gets stuck at that stage 2 of 5.
But if I do that ifconfig down/up, then the next time I force a reconnect through knetworkmanager, it goes fine.

As for having the wireless running after reboot, I meant that it's actually up by default (as in openSUSE as you said), but it never goes after that "stage 2". I have to get it up manually. Not an Ubuntu issue (I guess). I think I'll end up scripting something with ifconfig/iwconfig.

k

Matthew Woerly (nattgew) wrote :

Larry,
I finally installed the firmware (via b43-fwcutter) and tried b43 on my 4312 here. I got nothing. No entry in ifconfig or iwconfig, nothing about wireless in network manager, nothing that I could find in syslog or dmesg when I unloaded and then loaded or rebooted.

Larry Finger (larry-finger) wrote :

What is the output of 'dmesg | grep ssb', 'dmesg | grep b43', and 'lsmod | grep b43'? I also want to see the first two lines of output for your wireless device that come from the command '/sbin/lspci -nnv'.

Larry

The Ubuntu Kernel Team is planning to move to the 2.6.27 kernel for the upcoming Intrepid Ibex 8.10 release. As a result, the kernel team would appreciate it if you could please test this newer 2.6.27 Ubuntu kernel. There are one of two ways you should be able to test:

1) If you are comfortable installing packages on your own, the linux-image-2.6.27-* package is currently available for you to install and test.

--or--

2) The upcoming Alpha5 for Intrepid Ibex 8.10 will contain this newer 2.6.27 Ubuntu kernel. Alpha5 is set to be released Thursday Sept 4. Please watch http://www.ubuntu.com/testing for Alpha5 to be announced. You should then be able to test via a LiveCD.

Please let us know immediately if this newer 2.6.27 kernel resolves the bug reported here or if the issue remains. More importantly, please open a new bug report for each new bug/regression introduced by the 2.6.27 kernel and tag the bug report with 'linux-2.6.27'. Also, please specifically note if the issue does or does not appear in the 2.6.26 kernel. Thanks again, we really appreicate your help and feedback.

Matthew Woerly (nattgew) wrote :

I think at least part of my issue with b43 could have been caused by overclocking. I brought the CPU back to its normal state, and the wireless seemed to connect better. Now the problem is that it wouldn't get an IP. It did at first, but then dropped it:
No ProbeResp from current AP 00:0f:66:57:f3:74 - assume out of range
And after that I don't think I was able to connect more than maybe once.
I took it closer to the AP and wired it up and updated to the latest -21 kernel in proposed. Now it's staying connected, but the signal is bouncing around anywhere between 88 and 112 out of 100 signal strength, and its claiming a rate of 1Mb/s.
I can force it to 54M
sudo iwconfig rate 54M
and then iwconfig shows that rate, but network manager still has 1 (and the Driver line is blank).
Also, the network seems a bit slow. I'm getting this on the other card, too.
I'm planning on testing with a fresh install and updating to -21 to see if that alone will get the card working, and how well. I'll also take this one back to where it was to see if it's related to signal strength.
Question: if I rewrite the SPROM as Larry helped me do, when the kernel fix is booted, does that override what I have done or does it just use it (assuming it's right)?

Larry Finger (larry-finger) wrote :

I have said this before, but I guess it bears repeating.

The revised SPROM changes the contents of something called the board_flags_lo permanently. The revised kernel changes it dynamically when the contents of the SPROM are loaded into memory. The net effect is _EXACTLY_ the same!!!!

Dean Jones (dean-m-jones) wrote :

I'm experiencing similar problems with the b43 driver. It will often connect when I load the b43 module (but not always) but soon afterward it will drop the connection. When the connection drops, dmesg reports the following:

[ 2138.271108] eth1: No ProbeResp from current AP 00:0d:72:ed:6d:f9 - assume out of range

When the connection drops, unloading and reloading the module often re-establishes the connection (again, not always). Note that when the connection is established, the wireless applet reports a strong connection (over 90%). I have attached the output of dmesg when a connection is established.

lspci -nnv:

01:07.0 Network controller [0280]: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller [14e4:4320] (rev 03)
 Subsystem: Askey Computer Corp. Unknown device [144f:7077]
 Flags: bus master, fast devsel, latency 32, IRQ 20
 Memory at fdefe000 (32-bit, non-prefetchable) [size=8K]

find /sys/devices -name ssb_sprom | xargs sudo cat:

0140000077704F1420430080020002000010001800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11000BF5D1BCFFFFFFFFFFFFFFFFFFFFFFFFFFFF4630D614D0FA79FEFFFFFFFF3C000000000000003E000802FFFF000000000000000001CB

ssb_sprom -i -P:

SPROM(0x04, Subsystem product ID) = 0x7077
SPROM(0x06, Subsystem vendor ID) = 0x144F
SPROM(0x08, PCI Product ID) = 0x4320
SPROM(0x38, High 16 bits of Boardflags) = 0xFFFF
SPROM(0x72, Low 16 bits of Boardflags) = 0x0208
SPROM(0x48, MAC address for 802.11b/g) = 00:11:f5:0b:bc:d1
SPROM(0x4E, MAC address for ethernet) = ff:ff:ff:ff:ff:ff
SPROM(0x54, MAC address for 802.11a) = ff:ff:ff:ff:ff:ff
SPROM(0x5A, Ethernet phy settings (0)) = 0x1F
SPROM(0x5A, Ethernet phy settings (1)) = 0x1F
SPROM(0x5B, et0mdcport) = ON
SPROM(0x5B, et1mdcport) = ON
SPROM(0x5C, Board revision) = 0x46
SPROM(0x5C, Locale / Country Code) = 0x0
SPROM(0x5C, B/G PHY antenna 0 available) = ON
SPROM(0x5C, B/G PHY antenna 1 available) = OFF
SPROM(0x5C, A PHY antenna 0 available) = ON
SPROM(0x5C, A PHY antenna 1 available) = ON
SPROM(0x74, B/G PHY antenna gain) = 0xFF
SPROM(0x74, A PHY antenna gain) = 0xFF
SPROM(0x5E, pa0b0) = 0x14D6
SPROM(0x60, pa0b1) = 0xFAD0
SPROM(0x62, pa0b2) = 0xFE79
SPROM(0x6A, pa1b0) = 0x0000
SPROM(0x6C, pa1b1) = 0x0000
SPROM(0x6E, pa1b2) = 0x0000
SPROM(0x64, LED 0 behaviour) = 0xFF
SPROM(0x65, LED 1 behaviour) = 0xFF
SPROM(0x66, LED 2 behaviour) = 0xFF
SPROM(0x67, LED 3 behaviour) = 0xFF
SPROM(0x68, B/G PHY max powerout) = 0x3C
SPROM(0x69, A PHY max powerout) = 0x00
SPROM(0x70, B/G PHY idle TSSI target) = 0x3E
SPROM(0x71, A PHY idle TSSI target) = 0x00
SPROM(0x7E, SPROM version) = 0x01

Any help would be much appreciated. I've tried switching to ndiswrapper, but then I get conflicts with ssb, so I'm stuck with unloading and reloading the b43 modules at the moment.

Dean.

Larry Finger (larry-finger) wrote :

Your SPROM contents are irrelevant. If you have the SPROM bug, then your device would _NEVER_ transmit, thus never connect. Obviously, that is not the case.

The performance of BCM4306 devices is the worst of all those driven by b43. I would like to review the reverse engineering, but development of code for versions not supported at all has priority.

Kernel versions later than 2.6.24 do have improvements. Perhaps you might try the linux-image-2.6.27-* package announced earlier in this thread.

Larry

Ian Young (youngian) wrote :

Just registered to let interested parties know that this is in fact fixed in the newest Linux kernel code. I'm a Gentoo user, but have been having exactly this problem with my 4306 card on two different computers. I installed kernel 2.6.27-rc5-r1 from git sources and the problem is gone (no need to fiddle with my SPROM). Huzzah! Also, big thanks to Larry and everyone who helped pin this thing down - this bug report was incredibly helpful to me.

Matthew Woerly (nattgew) wrote :

For those with 4311, 4312, 4321,and 4322 adapters, see this thread.
http://ubuntuforums.org/showthread.php?t=880218
It worked for my 4312 (except for Transmission bittorrent).

Cliff (vzmith) wrote :

As per below you requested to know if Intrepid Alpha 5 fixed it. It did not. I have the same problem
(ndiswrapper won't connect to WPA but will connect to an open, unencrypted Wifi) but with rev 2 of bcm4306 hardware as I have documented in bug 276980 with exact steps to re-create on the live
CD. I have verified that it is broken in both Alpha 5 and Alpha 6. (I think I tried the Beta too, but
not certain.) The steps to re-create this bug on the Intrepid live CD also cause it to fail on the Hardy
live CD but not on the Gutsy live CD (with appropriate rmmod module change) so this has been
broken for a year.

Leann Ogasawara wrote on 2008-08-28: (permalink)

The Ubuntu Kernel Team is planning to move to the 2.6.27 kernel for the upcoming Intrepid Ibex 8.10 release. As a result, the kernel team would appreciate it if you could please test this newer 2.6.27 Ubuntu kernel. There are one of two ways you should be able to test:

...

2) The upcoming Alpha5 for Intrepid Ibex 8.10 will contain this newer 2.6.27 Ubuntu kernel. Alpha5 is set to be released Thursday Sept 4. Please watch http://www.ubuntu.com/testing for Alpha5 to be announced. You should then be able to test via a LiveCD.

Please let us know immediately if this newer 2.6.27 kernel resolves the bug reported here or if the issue remains. More importantly, please open a new bug report for each new bug/regression introduced by the 2.6.27 kernel and tag the bug report with 'linux-2.6.27'. Also, please specifically note if the issue does or does not appear in the 2.6.26 kernel. Thanks again, we really appreicate your help and feedback.

Tim Gardner (timg-tpi) wrote :

@Cliff - there is now another option in Intrepid for many Broadcom wireless BCM43xx cards. Unfortunately its not available until after you've performed an installation (as far as I know). Select System->Administration->Hardware Drivers, then activate the Broadcom wl driver.

Larry Finger (larry-finger) wrote :

@Cliff - What is your device? If it is listed in this thread, I missed it. Please post the first two lines of the output of 'lspci -nnv' that describe your BCM43xx device.

If yours if a BCM4306/3, it is possible that you have the SPROM programming error for a device we have not yet seen, or one of those that has not made it into 2.6.27.

Larry

TanzGeist (vertragliches) wrote :

Using 8.10 RC / Kernel: 2.6.27-7
and getting from lshw -C network
product: BCM4306 802.11b/g Wireless LAN Controller
version: 03

  Tim Gardner wrote on 2008-10-10: (permalink)
-> there was only the firmwarecutter thing; until 7.10 I got the wlan running; with 8.4 / 8.10 RC it doesen't

  Larry Finger wrote on 2008-10-10: (permalink)
-> hope, that answers your question

also tried using one of the PLENTY hints on how to with black-and-whitelisting, which didn't help.
now i might have to re-install the system to ensure getting it to the out-of-the-box state (meaning i am not the super-hacker)

TanzGeist (vertragliches) wrote :

Using 8.10 RC / Kernel: 2.6.27-7 Notebook: HP compaq nx9105
and getting from lshw -C network

product: BCM4306 802.11b/g Wireless LAN Controller
version: 03

  Tim Gardner wrote on 2008-10-10: (permalink)
-> there was only the firmwarecutter thing; until 7.10 I got the wlan running; with 8.4 / 8.10 RC it doesen't

  Larry Finger wrote on 2008-10-10: (permalink)
-> hope, that answers your question

also tried using one of the PLENTY hints on how to with black-and-whitelisting, which didn't help.
I might have to re-install the system to ensure getting it to the out-of-the-box state (meaning i am not the super-hacker)

andrepisc (andrepisc) wrote :
Download full text (5.1 KiB)

My card correctly connects to the AP, but it is *really* slow (1 Mbps).
I started having speed issues since I updated from Feisty, that is since Ubuntu started using b43legacy on my card, instead of the old (but fast, for me) bcm43xx driver.
It's not clear to me if the fix proposed by Larry (hacking the SPROM) could also solve my speed problem.
My SPROM code also seems quite different from the others posted here so far, so I'm confused.
Thanks in advance!

These are some informations about my card:
02:03.0 Network controller [0280]: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller [14e4:4320] (rev 02)
 Subsystem: Compaq Computer Corporation Device [0e11:00e7]
 Flags: bus master, fast devsel, latency 32, IRQ 21
 Memory at d2004000 (32-bit, non-prefetchable) [size=8K]
 Capabilities: <access denied>
 Kernel driver in use: b43-pci-bridge
 Kernel modules: ssb

My SPROM code is:
01400000E700110E2043008002000200F017001800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90004A4B9899FFFFFFFFFFFFFFFFFFFFFFFFFFFF4536B01198FB4FFEFFFFFFFF3C00FFFFFFFFFFFF3E000F00FFFF0000000000000000017E

Output of "lsmod | grep b43":
b43legacy 128156 0
rfkill 17176 3 rfkill_input,b43legacy
mac80211 216820 1 b43legacy
led_class 12164 1 b43legacy
input_polldev 11912 1 b43legacy
ssb 40580 1 b43legacy

Output of "dmesg | grep ssb":
[ 3.732764] ssb: Sonics Silicon Backplane found on PCI device 0000:02:03.0

Output of "dmesg | grep b43":
[ 3.728892] b43-pci-bridge 0000:02:03.0: PCI INT A -> GSI 21 (level, low) -> IRQ 21
[ 16.775727] b43legacy-phy0: Broadcom 4306 WLAN found
[ 16.796035] b43legacy-phy0 debug: Found PHY: Analog 1, Type 2, Revision 1
[ 16.796058] b43legacy-phy0 debug: Found Radio: Manuf 0x17F, Version 0x2050, Revision 2
[ 16.820124] b43legacy-phy0 debug: Radio initialized
[ 22.557095] input: b43legacy-phy0 as /devices/virtual/input/input9
[ 22.868023] firmware: requesting b43legacy/ucode4.fw
[ 22.926075] firmware: requesting b43legacy/pcm4.fw
[ 22.930499] firmware: requesting b43legacy/b0g0initvals2.fw
[ 23.044033] b43legacy-phy0: Loading firmware version 0x127, patch level 14 (2005-04-18 02:36:27)
[ 23.108561] b43legacy-phy0 debug: Chip initialized
[ 23.108776] b43legacy-phy0 debug: 30-bit DMA initialized
[ 23.110741] Registered led device: b43legacy-phy0:radio
[ 23.110784] b43legacy-phy0 debug: Wireless interface started
[ 23.110789] b43legacy-phy0 debug: Adding Interface type 2
[ 2221.420054] b43legacy-phy0 debug: Removing Interface type 2
[ 2221.468043] b43legacy-phy0 debug: Wireless interface stopped
[ 2221.469467] b43legacy-phy0 debug: DMA-30 0x0260 (RX) max used slots: 1/64
[ 2221.469517] b43legacy-phy0 debug: DMA-30 0x0200 (RX) max used slots: 2/64
[ 2221.469563] b43legacy-phy0 debug: DMA-30 0x02A0 (TX) max used slots: 0/128
[ 2221.476042] b43legacy-phy0 debug: DMA-30 0x0280 (TX) max used slots: 0/128
[ 2221.484035] b43legacy-phy0 debug: DMA-30 0x0260 (TX) max used slots: 0/128
[ 2221.492028] b43legacy-phy0 debug: DMA-30 0x0240 (TX) max used slots: 0/128
[ 2221.500096] b4...

Read more...

Maxxer (lorenzo-milesi) wrote :

troubles here with 8.10 and b43. in 8.04 I had a very slow transmit speed (1mb) but was working, now only in some cases I cannot use the wireless. I tried an unprotected wifi and worked, wpa at home works, wep network NOT working.
I successfully connect, get IP, but after less than 10 seconds I get this error:

NetworkManager: <debug> [1226389722.062157] periodic_update(): Roamed from BSSID 00:40:F4:F1:78:56 (My1stAP) to (none) ((none))
kernel: [ 333.976064] wlan0: No ProbeResp from current AP 00:40:f4:f1:78:56 - assume out of range

then I need to... attach cable!

lspci:
00:09.0 Network controller [0280]: Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller [14e4:4318] (rev 02)
 Subsystem: ASUSTeK Computer Inc. Device [1043:120f]

KD (rurouni150) wrote :

I'm seeing similar problems in 8.10. dmesg -nnv shows:

03:02.0 Network controller [0280]: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller [14e4:4320] (rev 03)
        Subsystem: Hewlett-Packard Company Device [103c:12f8]
        Flags: bus master, fast devsel, latency 64, IRQ 21
        Memory at b0204000 (32-bit, non-prefetchable) [size=8K]
        Kernel driver in use: b43-pci-bridge
        Kernel modules: ssb

I'm attaching dmesg on a fresh boot.

The card was working fine prior to upgrading to 8.10 from 7.10. Since then, I have very rarely been able to see any networks with iwlist (worked once), and haven't been able to connect to any networks at all. I tried using the b43legacy module instead of b43, which prevented eth1 from even showing up. I tried using the SPROM fix provided by Larry, changing "SPROM(0x72, Low 16 bits of Boardflags) = 0x3A49" to "SPROM(0x72, Low 16 bits of Boardflags) = 0x3A48", to no avail.

Thanks,
 -Kyle

KD (rurouni150) wrote :

Correction on my last post, I meant "lspci -nnv", not "dmesg -nnv".

-KD

Launchpad Janitor (janitor) wrote :
Download full text (264.1 KiB)

This bug was fixed in the package linux - 2.6.24-23.48

---------------
linux (2.6.24-23.48) hardy-security; urgency=low

  [Upstream Kernel Changes]

  * ATM: CVE-2008-5079: duplicate listen() on socket corrupts the vcc table
    - CVE-2008-5079
  * libertas: fix buffer overrun
    - CVE-2008-5134
  * Fix inotify watch removal/umount races
    - CVE-2008-5182
  * net: Fix soft lockups/OOM issues w/ unix garbage collector
    - CVE-2008-5300
  * Enforce a minimum SG_IO timeout
    - CVE-2008-5700
  * ib700wdt.c - fix buffer_underflow bug
    - CVE-2008-5702

linux (2.6.24-23.46) hardy-proposed; urgency=low

  [Alessio Igor Bogani]

  * rt: Updated PREEMPT_RT support to rt21
    - LP: #302138

  [Amit Kucheria]

  * SAUCE: Update lpia patches from moblin tree
    - LP: #291457

  [Andy Whitcroft]

  * SAUCE: replace gfs2_bitfit with upstream version to prevent oops
    - LP: #276641

  [Colin Ian King]

  * isdn: Do not validate ISDN net device address prior to interface-up
    - LP: #237306
  * hwmon: (coretemp) Add Penryn CPU to coretemp
    - LP: #235119
  * USB: add support for Motorola ROKR Z6 cellphone in mass storage mode
    - LP: #263217
  * md: fix an occasional deadlock in raid5
    - LP: #208551

  [Stefan Bader]

  * SAUCE: buildenv: Show CVE entries in printchanges
  * SAUCE: buildenv: Send git-ubuntu-log informational message to stderr
  * Xen: dma: avoid unnecessarily SWIOTLB bounce buffering
    - LP: #247148
  * Update openvz patchset to apply to latest stable tree.
    - LP: #301634
  * XEN: Fix FTBS with stable updates
    - LP: #301634

  [Steve Conklin]

  * Add HID quirk for dual USB gamepad
    - LP: #140608

  [Tim Gardner]

  * Enable CONFIG_AX25_DAMA_SLAVE=y
    - LP: #257684
  * SAUCE: Correctly blacklist Thinkpad r40e in ACPI
    - LP: #278794
  * SAUCE: ALPS touchpad for Dell Latitude E6500/E6400
    - LP: #270643

  [Upstream Kernel Changes]

  * Revert "[Bluetooth] Eliminate checks for impossible conditions in IRQ
    handler"
    - LP: #217659
  * KVM: VMX: Clear CR4.VMXE in hardware_disable
    - LP: #268981
  * iov_iter_advance() fix
    - LP: #231746
  * Fix off-by-one error in iov_iter_advance()
    - LP: #231746
  * USB: serial: ch341: New VID/PID for CH341 USB-serial
    - LP: #272485
  * x86: Fix 32-bit x86 MSI-X allocation leakage
    - LP: #273103
  * b43legacy: Fix failure in rate-adjustment mechanism
    - LP: #273143
  * x86: Reserve FIRST_DEVICE_VECTOR in used_vectors bitmap.
    - LP: #276334
  * openvz: merge missed fixes from vanilla 2.6.24 openvz branch
    - LP: #298059
  * openvz: some autofs related fixes
    - LP: #298059
  * openvz: fix ve stop deadlock after nfs connect
    - LP: #298059
  * openvz: fix netlink and rtnl inside container
    - LP: #298059
  * openvz: fix wrong size of ub0_percpu
    - LP: #298059
  * openvz: fix OOPS while stopping VE started before binfmt_misc.ko loaded
    - LP: #298059
  * x86-64: Fix "bytes left to copy" return value for copy_from_user()
  * NET: Fix race in dev_close(). (Bug 9750)
    - LP: #301608
  * IPV6: Fix IPsec datagram fragmentation
    - LP: #301608
  * IPV6: dst_entry leak in ip4ip6_err.
    - LP: #301608
  * IPV4: Remove IP_TOS setting priv...

Changed in linux:
status: Confirmed → Fix Released
Andy Whitcroft (apw) on 2009-04-14
Changed in linux:
status: New → Invalid
Sergio Zanchetta (primes2h) wrote :

The 18 month support period for Gutsy Gibbon 7.10 has reached its end of life -
http://www.ubuntu.com/news/ubuntu-7.10-eol . As a result, we are closing the
linux-source-2.6.22 kernel task.

Changed in linux-source-2.6.22 (Ubuntu):
status: New → Won't Fix
ukozok (uli-bahasa) on 2009-09-09
Changed in linux (Ubuntu):
status: Fix Released → Confirmed
Matthew Woerly (nattgew) wrote :

I upgraded a couple of machines to Jaunty with this card, and they both worked after the b43 firmware package was installed.

Changed in linux (Ubuntu):
assignee: Colin King (colin-king) → nobody
status: Confirmed → Fix Released
TanzGeist (vertragliches) wrote :

in my case it was the otherwise correctly working fritzBox router to be restarted.
SADLY i just realized so after changing/swapping the wlan module in my notebook.

so the status (reffering to me) should be: fixed

Displaying first 40 and last 40 comments. View all 178 comments or add a comment.