Bug 179538 - bcm43xx wireless support won't work with system-config-network
Summary: bcm43xx wireless support won't work with system-config-network
Keywords:
Status: CLOSED INSUFFICIENT_DATA
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: 5
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: David Woodhouse
QA Contact: Brian Brock
URL:
Whiteboard: MassClosed
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2006-02-01 06:58 UTC by Stanton Finley
Modified: 2008-01-20 04:41 UTC (History)
9 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2008-01-20 04:41:47 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
ifup-wireless script (3.30 KB, text/plain)
2006-03-22 15:23 UTC, Eric Work
no flags Details

Description Stanton Finley 2006-02-01 06:58:51 UTC
Description of problem:

bcm43xx wireless support won't work with system-config-network on a on a HP
Pavilion ZE2108WM Notebook with onboard Broadcom Corporation BCM4318 [AirForce
One 54g] 802.11g Wireless LAN Controller (rev 02) running FC5test2 with the
2.6.15-1.1884_FC5 i686 kernel. I tried this with many combinations of Mode,
Transmit rate, etc. in the system-config-network GUI.

However the following commands work and bring up the eth1 wireless.

	ip link set eth1 up
	iwconfig eth1 enc my_hex_wep_key
	iwconfig eth1 essid my_essid
	ifup eth1


Version-Release number of selected component (if applicable):

svn://svn.berlios.de/bcm43xx/trunk/fwcutter revision 1106


How reproducible:
As noted below.

Steps to Reproduce:
1. Cut the firmware out of bcmwl5.sys with fwcutter and put it in /lib/firmware.
2. Set up eth1 (wireless) with system-config-network to start up at boot time.
3. Reboot or run ifup eth1.


Actual results:

Wireless connectivity fails with dmesg output:

"bcm43xx": set security called
"bcm43xx":    .active_key = 0
"bcm43xx":    .level = 1
"bcm43xx":    .enabled = 1
"bcm43xx":    .encrypt = 1
SoftMAC:
net/ieee80211/softmac/ieee80211softmac_assoc.c:183:ieee80211softmac_assoc_work()
SoftMAC: Associate: Scanning for networks first.
SoftMAC: Associate: failed to initiate scan. Is device up?
"bcm43xx": Radio turned on
"bcm43xx": Chip initialized
"bcm43xx": DMA initialized
"bcm43xx": 80211 cores initialized
"bcm43xx": Keys cleared
ADDRCONF(NETDEV_UP): eth1: link is not ready
"bcm43xx": Radio turned off
"bcm43xx": DMA 0x0200 (RX) max used slots: 1/64
"bcm43xx": DMA 0x0260 (TX) max used slots: 0/512
"bcm43xx": DMA 0x0240 (TX) max used slots: 0/512
"bcm43xx": DMA 0x0220 (TX) max used slots: 0/512
"bcm43xx": DMA 0x0200 (TX) max used slots: 0/512

However running the following commands bring up wireless eth1:

[root localhost ~]# ip link set eth1 up
[root localhost ~]# iwconfig eth1 enc my_hex_wep_key
[root localhost ~]# iwconfig eth1 essid my_essid
[root localhost ~]# ifup eth1

And produce the following dmesg output:

"bcm43xx": PHY connected
"bcm43xx": Radio turned on
"bcm43xx": Chip initialized
"bcm43xx": DMA initialized
"bcm43xx": 80211 cores initialized
"bcm43xx": Keys cleared
ADDRCONF(NETDEV_UP): eth1: link is not ready
ieee80211_crypt: registered algorithm 'WEP'
"bcm43xx": set security called
"bcm43xx":    .active_key = 0
"bcm43xx":    .level = 1
"bcm43xx":    .enabled = 1
"bcm43xx":    .encrypt = 1
SoftMAC:
net/ieee80211/softmac/ieee80211softmac_assoc.c:183:ieee80211softmac_assoc_work()
SoftMAC: Associate: Scanning for networks first.
SoftMAC: Start scanning with channel: 1
SoftMAC: Scanning 13 channels
SoftMAC: Scanning finished
SoftMAC:
net/ieee80211/softmac/ieee80211softmac_assoc.c:183:ieee80211softmac_assoc_work()
SoftMAC:
net/ieee80211/softmac/ieee80211softmac_auth.c:39:ieee80211softmac_auth_req()
SoftMAC: Queueing Authentication Request to 00:13:10:e9:5c:c2
SoftMAC: cannot associate without being authenticated, requested authentication
SoftMAC:
net/ieee80211/softmac/ieee80211softmac_auth.c:81:ieee80211softmac_auth_queue()
SoftMAC: Sent Authentication Request to 00:13:10:e9:5c:c2.
SoftMAC:
net/ieee80211/softmac/ieee80211softmac_auth.c:131:ieee80211softmac_auth_resp()
SoftMAC: Open Authentication completed with 00:13:10:e9:5c:c2
SoftMAC:
net/ieee80211/softmac/ieee80211softmac_assoc.c:183:ieee80211softmac_assoc_work()
SoftMAC: net/ieee80211/softmac/ieee80211softmac_assoc.c:41:ieee80211softmac_assoc()
SoftMAC: sent association request!
SoftMAC: associated!
ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready


Expected results:

Wireless connection on eth1 at boot time or with "ifup eth1" is successful.


Additional info

See the thread at
https://www.redhat.com/archives/fedora-test-list/2006-February/msg00019.html

Comment 1 Bill Nottingham 2006-02-02 04:05:06 UTC
What does your ifcfg file look like?

Comment 2 Stanton Finley 2006-02-02 05:21:05 UTC
This is one iteration of /etc/sysconfig/network-scripts/ifcfg-eth1 produced with
system-config-network. I tried many.

# Please read /usr/share/doc/initscripts-*/sysconfig.txt
# for the documentation of these parameters.
ONBOOT=yes
USERCTL=no
IPV6INIT=no
PEERDNS=yes
TYPE=Wireless
DEVICE=eth1
HWADDR=00:90:4b:f7:31:dc
BOOTPROTO=dhcp
NETMASK=
DHCP_HOSTNAME=
IPADDR=
DOMAIN=
ESSID=my_essid
CHANNEL=6
MODE=Auto
RATE=11M

When I run the commands

[root@localhost network-scripts]# ip link set eth1 up
[root@localhost network-scripts]# iwconfig eth1 enc my_hex_wep_key
[root@localhost network-scripts]# iwconfig eth1 essid my_essid
[root@localhost network-scripts]# ifup eth1

and wireless begins to work his is /etc/sysconfig/network-scripts/ifcfg-eth1:

# Please read /usr/share/doc/initscripts-*/sysconfig.txt
# for the documentation of these parameters.
ONBOOT=yes
USERCTL=no
IPV6INIT=no
PEERDNS=yes
TYPE=Wireless
DEVICE=eth1
HWADDR=00:90:4b:f7:31:dc
BOOTPROTO=dhcp
NETMASK=
DHCP_HOSTNAME=
IPADDR=
DOMAIN=
ESSID=my_essid
CHANNEL=6
MODE=Auto
RATE=11M

As you can see they are identical.

Comment 3 Bill Nottingham 2006-02-02 16:55:29 UTC
You have a keys-eth1 with your key in it, correct?

What happens if you take the 'channel' and 'rate' out of the ifcfg file?

Comment 4 Stanton Finley 2006-02-03 04:54:36 UTC
Yes, the WEP key is in keys-eth1 and was written by system-config-network:

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# ls
ifcfg-eth0      ifdown-bnep   ifdown-isdn  ifup          ifup-ipsec  ifup-plusb
  ifup-sl            network-functions-ipv6
ifcfg-eth1      ifdown-eth    ifdown-post  ifup-aliases  ifup-ipv6   ifup-post 
  ifup-wireless
ifcfg-lo        ifdown-ippp   ifdown-ppp   ifup-bnep     ifup-ipx    ifup-ppp  
  init.ipv6-global
ifdown          ifdown-ipsec  ifdown-sit   ifup-eth      ifup-isdn   ifup-routes
 keys-eth1
ifdown-aliases  ifdown-ipv6   ifdown-sl    ifup-ippp     ifup-plip   ifup-sit  
  network-functions
[root@localhost network-scripts]# cat keys-eth1
KEY=<my_hex_wep_key>

Of course I could not remove 'channel' and 'rate' out of the ifcfg-eth1 file
with the system-config-network GUI but I did this by directly editing the file
with a text editor. Removing 'channel' and 'rate' did not help and in fact made
the situation worse. I still had to enter the commands manually to bring eth1 up
and then noticed that without a rate of 11M in ifcfg-eth1 I could get a
connection (as evidenced by the output from the 'ifconfig' command) but web
pages would not load. Thus it seems the rate is being recognized from ifcfg-eth1
and it likes 11M.

I made the following script:

#!/bin/bash
ip link set eth1 up
iwconfig eth1 enc <my_hex_wep_key>
iwconfig eth1 essid <my_essid>
ifup eth1
ifdown eth0

Curiously when I ran it I got:

[root@localhost ~]# sh w.sh
SIOCGIFFLAGS: No such device
Error for wireless request "Set Encode" (8B2A) :
    SET failed on device eth1 ; No such device.
Error for wireless request "Set ESSID" (8B1A) :
    SET failed on device eth1 ; No such device.

I rebooted and then the script worked fine with the following in /var/log/messages:

Feb  2 21:48:54 localhost kernel: "bcm43xx": PHY connected
Feb  2 21:48:54 localhost kernel: "bcm43xx": Radio turned on
Feb  2 21:48:54 localhost kernel: "bcm43xx": Chip initialized
Feb  2 21:48:54 localhost kernel: "bcm43xx": DMA initialized
Feb  2 21:48:54 localhost kernel: "bcm43xx": 80211 cores initialized
Feb  2 21:48:54 localhost kernel: "bcm43xx": Keys cleared
Feb  2 21:48:54 localhost kernel: ADDRCONF(NETDEV_UP): eth1: link is not ready
Feb  2 21:48:54 localhost kernel: "bcm43xx": set security called
Feb  2 21:48:54 localhost kernel: "bcm43xx":    .active_key = 0
Feb  2 21:48:54 localhost kernel: "bcm43xx":    .level = 1
Feb  2 21:48:54 localhost kernel: "bcm43xx":    .enabled = 1
Feb  2 21:48:54 localhost kernel: "bcm43xx":    .encrypt = 1
Feb  2 21:48:54 localhost kernel: SoftMAC: Associate: Scanning for networks first.
Feb  2 21:48:54 localhost kernel: SoftMAC: Start scanning with channel: 1
Feb  2 21:48:54 localhost kernel: SoftMAC: Scanning 13 channels
Feb  2 21:48:54 localhost kernel: SoftMAC: Scanning finished
Feb  2 21:48:54 localhost kernel: SoftMAC: Queueing Authentication Request to
00:13:10:e9:5c:c2
Feb  2 21:48:55 localhost kernel: SoftMAC: cannot associate without being
authenticated, requested authentication
Feb  2 21:48:55 localhost kernel: SoftMAC: Sent Authentication Request to
00:13:10:e9:5c:c2.
Feb  2 21:48:55 localhost kernel: SoftMAC: Open Authentication completed with
00:13:10:e9:5c:c2
Feb  2 21:48:55 localhost kernel: SoftMAC: sent association request!
Feb  2 21:48:55 localhost kernel: SoftMAC: associated!
Feb  2 21:48:55 localhost kernel: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
Feb  2 21:48:55 localhost kernel: "bcm43xx": set security called
Feb  2 21:48:55 localhost kernel: "bcm43xx":    .active_key = 0
Feb  2 21:48:55 localhost kernel: "bcm43xx":    .level = 1
Feb  2 21:48:55 localhost kernel: "bcm43xx":    .enabled = 1
Feb  2 21:48:55 localhost kernel: "bcm43xx":    .encrypt = 1
Feb  2 21:48:55 localhost kernel: SoftMAC: sent association request!
Feb  2 21:48:55 localhost kernel: SoftMAC: associated!
Feb  2 21:48:55 localhost dhclient: DHCPREQUEST on eth1 to 255.255.255.255 port 67
Feb  2 21:48:55 localhost dhclient: DHCPACK from 192.168.1.1
Feb  3 04:48:55 localhost avahi-daemon[2259]: New relevant interface eth1.IPv4
for mDNS.
Feb  3 04:48:55 localhost avahi-daemon[2259]: Joining mDNS multicast group on
interface eth1.IPv4 with address 192.168.1.100.Feb  3 04:48:55 localhost
avahi-daemon[2259]: Registering new address record for 192.168.1.100 on eth1.
Feb  2 21:48:55 localhost NET[2831]: /sbin/dhclient-script : updated
/etc/resolv.conf
Feb  2 21:48:55 localhost dhclient: bound to 192.168.1.100 -- renewal in 40025
seconds.
Feb  2 21:50:10 localhost kernel: DEAUTH from AP
Feb  2 21:50:10 localhost kernel: SoftMAC: Associate: Scanning for networks first.
Feb  2 21:50:10 localhost kernel: SoftMAC: Start scanning with channel: 1
Feb  2 21:50:10 localhost kernel: SoftMAC: Scanning 13 channels
Feb  2 21:50:10 localhost kernel: SoftMAC: Scanning finished
Feb  2 21:50:10 localhost kernel: SoftMAC: Queueing Authentication Request to
00:13:10:e9:5c:c2
Feb  2 21:50:10 localhost kernel: SoftMAC: cannot associate without being
authenticated, requested authentication
Feb  2 21:50:10 localhost kernel: SoftMAC: Sent Authentication Request to
00:13:10:e9:5c:c2.
Feb  2 21:50:10 localhost kernel: SoftMAC: Open Authentication completed with
00:13:10:e9:5c:c2
Feb  2 21:50:10 localhost kernel: SoftMAC: sent association request!
Feb  2 21:50:10 localhost kernel: SoftMAC: associated!
Feb  2 21:50:32 localhost ntpd[2140]: synchronized to LOCAL(0), stratum 10
Feb  2 21:50:32 localhost ntpd[2140]: kernel time sync disabled 0041
Feb  2 21:51:35 localhost ntpd[2140]: kernel time sync enabled 0001
[root@localhost ~]#

Comment 5 Stanton Finley 2006-02-03 05:50:06 UTC
I'm beginning to wonder if there is also a timing issue going on here as well. I
rebooted again and ran the script described above and again got:

[root@localhost ~]# sh w.sh
SIOCGIFFLAGS: No such device
Error for wireless request "Set Encode" (8B2A) :
    SET failed on device eth1 ; No such device.
Error for wireless request "Set ESSID" (8B1A) :
    SET failed on device eth1 ; No such device.

Determining IP information for eth1... failed.

I then waited a few moments and ran it again with success:

[root@localhost ~]# sh w.sh

Determining IP information for eth1... done.
[root@localhost ~]#


Comment 6 Bill Nottingham 2006-02-03 17:12:12 UTC
So, from everything you post, it appears to be:

a) a timing issue (which can't really be fixed in initscripts :/ )
b) something specific to how this driver handles settings, as opposed to the other
wireless drivers.

Pushing to the kernel for the driver for now.

Comment 7 Don Mahurin 2006-02-11 17:18:27 UTC
So the workaround that work for me was to add the ip link set command in: 

/etc/sysconfig/network-scripts/ifup-wireless

"
...
# Only meant to be called from ifup.

ip link set $DEVICE up
...
"


Comment 8 Gregory Gulik 2006-02-22 16:02:10 UTC
I'm having a similar problem with FC5T3 but I wasn't able to get it operational
with the above steps.  The problem appears to be that iwconfig is showing the
radio as turned off and any attempts to turn it on fail with an error:

# iwconfig eth1
eth1      IEEE 802.11b/g  ESSID:"Gulik"  Nickname:"dell8100"
          Mode:Managed  Frequency=2.484 GHz  Access Point: Invalid   
          Bit Rate=54 Mb/s   Tx-Power=off   
          RTS thr:off   Fragment thr:off
          Encryption key:BD02-9BBE-7F   Security mode:open
          
# iwconfig eth1 txpower auto
Error for wireless request "Set Tx Power" (8B26) :
    SET failed on device eth1 ; No such device.


dmesg reports the following:

SoftMAC: Associate: Scanning for networks first.
SoftMAC: Start scanning with channel: 1
SoftMAC: Scanning 14 channels
SoftMAC: Scanning finished
SoftMAC:
net/ieee80211/softmac/ieee80211softmac_assoc.c:176:ieee80211softmac_assoc_work()
SoftMAC: Unable to find matching network after scan!
bcm43xx: Radio turned off
bcm43xx: DMA 0x0200 (RX) max used slots: 1/64
bcm43xx: DMA 0x0260 (TX) max used slots: 0/512
bcm43xx: DMA 0x0240 (TX) max used slots: 0/512
bcm43xx: DMA 0x0220 (TX) max used slots: 2/512
bcm43xx: DMA 0x0200 (TX) max used slots: 0/512
SoftMAC:
net/ieee80211/softmac/ieee80211softmac_assoc.c:176:ieee80211softmac_assoc_work()
SoftMAC: Associate: Scanning for networks first.
SoftMAC: Associate: failed to initiate scan. Is device up?


Comment 9 Lukáš Petrovický 2006-03-10 11:33:31 UTC
I am having the same or at least very similar problems with my HP nx6110
equipped with BC4318 wireless. If there are any config / log files I could
supply, just tell me which.

Comment 10 Eric Work 2006-03-22 15:21:16 UTC
I had the same problem but after messing around with iwconfig and ifconfig for a
while I discovered that the radio is only on when the device has the link set to
up.  I made a few other changes to my networking scripts and also fixed a bug in
ifdown-eth to clear the WEP key.  I will attach my ifup-wireless script for
anyone who wants it.  Basically the trick to make the bcm43xx work is to turn on
the device first with "ifconfig eth1 up" or "ip link set eth1 up", then preform
the remaining iwconfig operations.  I also noticed that on my Airport Extreme
card that setting the ap value in iwconfig caused it to associate on demand.

Comment 11 Eric Work 2006-03-22 15:23:47 UTC
Created attachment 126480 [details]
ifup-wireless script

Comment 12 David Woodhouse 2006-03-22 15:26:42 UTC
These problems should be largely fixed in the 2.6.16-1.2070_FC5 kernel which is
currently building. It now copes with the fact that the initscripts will set the
ESSID and WEP keys before bringing the device up, and it defaults to 11M rather
than the less reliable (and often slower, even if it does _seem_ to work) 54M. 

Comment 13 Eric Work 2006-03-22 15:31:55 UTC
Changes to 'ifdown-eth':

100: # don't leave an outdated key sitting around
101: if is_wireless_device ${DEVICE} && [ -x /sbin/iwconfig ]; then
102:    /sbin/iwconfig ${DEVICE} enc off >/dev/null 2>&1
103: fi


Changes to 'network-functions':

345: is_wireless_device ()
346: {
347:   [ -x /sbin/iwconfig ] || return 0
348:   LC_ALL=C iwconfig $1 2>&1 | grep -q "no wireless extensions" || return 0
349:   return 1
350: }

Comment 14 Nick 2006-09-20 20:14:21 UTC
On Compaq Presario V5209US with kernel 2.6.17-1.2187_FC5 and Onboard Network
controller: Broadcom Corporation Unknown device 06:00.0 0280: 14e4:4311 (rev 01)
I cannot get system to recognize network card.  Cut firmware from versions
4.10.40.0, 4.10.40.1 (from windows system with card), 3.20.23.0, 3.40.69.0,
3.70.12.0, 3.100.64.0, and 3.130.20.0, got extract errors on all but 3.130.20.0
 error below:

*****: Sorry, it's not posible to extract "bcm43xx_microcode11.fw".
*****: Extracting firmware from an old driver is bad. Choose a more recent one.
*****: Luckily bcm43xx driver doesn't include microcode11 uploads at the moment.
*****: But this can be added in the future...

[localhost ~]/bin/dsmeg | grep bcm43xx
bcm43xx driver

Never see card as eth1 or wlan0 (in ndiswrapper card assigned to wlan0) using
both wireless tools (iwconfig) and ifconfig, simply not recognizing card.

Comment 15 Dave Jones 2006-10-16 19:46:11 UTC
A new kernel update has been released (Version: 2.6.18-1.2200.fc5)
based upon a new upstream kernel release.

Please retest against this new kernel, as a large number of patches
go into each upstream release, possibly including changes that
may address this problem.

This bug has been placed in NEEDINFO state.
Due to the large volume of inactive bugs in bugzilla, if this bug is
still in this state in two weeks time, it will be closed.

Should this bug still be relevant after this period, the reporter
can reopen the bug at any time. Any other users on the Cc: list
of this bug can request that the bug be reopened by adding a
comment to the bug.

In the last few updates, some users upgrading from FC4->FC5
have reported that installing a kernel update has left their
systems unbootable. If you have been affected by this problem
please check you only have one version of device-mapper & lvm2
installed.  See bug 207474 for further details.

If this bug is a problem preventing you from installing the
release this version is filed against, please see bug 169613.

If this bug has been fixed, but you are now experiencing a different
problem, please file a separate bug for the new problem.

Thank you.

Comment 16 Jon Stanley 2008-01-20 04:41:47 UTC
(this is a mass-close to kernel bugs in NEEDINFO state)

As indicated previously there has been no update on the progress of this bug
therefore I am closing it as INSUFFICIENT_DATA. Please re-open if the issue
still occurs for you and I will try to assist in its resolution. Thank you for
taking the time to report the initial bug.

If you believe that this bug was closed in error, please feel free to reopen
this bug.


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