2008-06-16 03:24:43

by Mark Roberts

[permalink] [raw]
Subject: Problem with master mode on BCM4318

Hi,

Ubuntu 8.04 with BCM4318 wireless PCI card here.

I want to set up this machine as a wireless access point, but I cannot
get the BCM4318 to go into master mode.

I've followed the directions on linuxwireless.org, downloaded
compat-wireless-2008-06-15, extracted, built, installed, and loaded.
There are a few warnings, but nothing that looks fatal. I try to set
the mode of the card, but I still cannot get it into master mode.

Observations:

(1) When I reboot the machine, b43 is no longer loaded as before. Now,
I must explicitly "sudo modprobe b43".

(2) Trying to get the card into master mode gives the same error as
before I tried to build new drivers:

"sudo iwconfig wlan0 mode master"

Error for wireless request "Set Mode" (8B06) :
SET failed on device wlan0 ; Invalid argument.

(3) uname -a

Linux Fonebone 2.6.24-18-generic #1 SMP Wed May 28 20:27:26 UTC
2008 i686 GNU/Linux

(4) lspci -vvn | grep 43 -A7

04:05.0 0280: 14e4:4318 (rev 02)
Subsystem: 1154:0355
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: 64
Interrupt: pin A routed to IRQ 22
Region 0: Memory at fbefe000 (32-bit, non-prefetchable) [size=8K]

(5) dmesg

[ 449.628695] ssb: Sonics Silicon Backplane found on PCI device 0000:04:05.0
[ 449.641734] b43-phy0: Broadcom 4318 WLAN found
[ 449.709352] phy0: Selected rate control algorithm 'pid'
[ 449.772516] Broadcom 43xx driver loaded [ Features: PMLR, Firmware-ID: FW13 ]
[ 449.806925] Broadcom 43xx-legacy driver loaded [ Features: PID,
Firmware-ID: FW10 ]
[ 449.877452] input: b43-phy0 as /devices/virtual/input/input7
[ 450.159814] b43-phy0: Loading firmware version 351.126 (2006-07-29 05:54:02)
[ 450.159824] b43-phy0 warning: You are using an old firmware image.
Support for old firmware will be removed in July 2008.
[ 450.159829] b43-phy0 warning: You must go to
http://linuxwireless.org/en/users/Drivers/b43#devicefirmware and
download the latest firmware (version 4).
[ 450.277178] Registered led device: b43-phy0::tx
[ 450.277400] Registered led device: b43-phy0::rx
[ 450.277594] Registered led device: b43-phy0::radio
[ 450.325171] ADDRCONF(NETDEV_UP): wlan0: link is not ready
[ 451.110364] wlan0: Initial auth_alg=0
[ 451.110372] wlan0: authenticate with AP 00:11:24:07:bd:99
[ 451.111793] wlan0: RX authentication from 00:11:24:07:bd:99 (alg=0
transaction=2 status=0)
[ 451.111798] wlan0: authenticated
[ 451.111802] wlan0: associate with AP 00:11:24:07:bd:99
[ 451.114075] wlan0: RX AssocResp from 00:11:24:07:bd:99 (capab=0x11
status=0 aid=3)
[ 451.114080] wlan0: associated
[ 451.114092] wlan0: CTS protection enabled (BSSID=00:11:24:07:bd:99)
[ 451.115708] ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[ 461.142858] wlan0: no IPv6 routers present
[ 1554.356732] b43-phy1: Broadcom 4318 WLAN found
[ 1554.425693] phy1: Selected rate control algorithm 'pid'
[ 1554.426209] Broadcom 43xx driver loaded [ Features: PMLR, Firmware-ID: FW13 ]
[ 1554.490956] input: b43-phy1 as /devices/virtual/input/input8
[ 1554.711506] b43-phy1: Loading firmware version 410.2160 (2007-05-26 15:32:10)
[ 1554.828855] Registered led device: b43-phy1::tx
[ 1554.829079] Registered led device: b43-phy1::rx
[ 1554.829245] Registered led device: b43-phy1::radio
[ 1554.876862] ADDRCONF(NETDEV_UP): wlan0: link is not ready
[ 1555.662068] wlan0: Initial auth_alg=0
[ 1555.662077] wlan0: authenticate with AP 00:11:24:07:bd:99
[ 1555.663504] wlan0: RX authentication from 00:11:24:07:bd:99 (alg=0
transaction=2 status=0)
[ 1555.663510] wlan0: authenticated
[ 1555.663513] wlan0: associate with AP 00:11:24:07:bd:99
[ 1555.665748] wlan0: RX AssocResp from 00:11:24:07:bd:99 (capab=0x11
status=0 aid=3)
[ 1555.665753] wlan0: associated
[ 1555.665764] wlan0: CTS protection enabled (BSSID=00:11:24:07:bd:99)
[ 1555.667407] ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[ 1565.690514] wlan0: no IPv6 routers present

I noticed the warning in the dmesg output about having old firmware
and I've followed the instructions on the web site to install it, but
it seems to make no difference. I still see the warning.

I assume that I'm doing something wrong, but I cannot tell. To be
honest, I don't find the documentation on linuxwireless.org to be very
clear or well-presented. It seems to be written primarily for
developers, not end-users as the site advertises.

At this point, I'm stuck. Any suggestions?

M


2008-06-16 06:34:27

by Pavel Roskin

[permalink] [raw]
Subject: Re: Problem with master mode on BCM4318

Quoting Mark Roberts <[email protected]>:

> I am running 2.6.24-18-generic, so I have followed this procedure, as
> described at http://www.linuxwireless.org/en/users/Drivers/b43 :

compat-wireless is a backport of the current drivers, so you should be
using the firmware for Linux 2.6.25 and newer.

I cannot get to http://www.linuxwireless.org at all at the moment, so I
cannot check if the instruction is indeed unclear about it.

As fast as I know, the master mode support in mac80211 has not been
merged yet into the wireless-testing branch, so I don't think it's
present in compat-wireless. There are some unofficial patches for
that, but you never mentioned them. Did any document promised you
master mode support if you use compat-wireless?

--
Regards,
Pavel Roskin

2008-06-16 06:09:05

by Mark Roberts

[permalink] [raw]
Subject: Re: Problem with master mode on BCM4318

> You didn't write anything about the procedure you used to install the
> firmware, so it impossible for others to see what was wrong with it.
> Perhaps you should find where the original firmware is installed, move
> it away and make sure the new firmware appears there if you install it.

Thanks for your message and sorry to be inexact.

Following your suggestion, I've removed /lib/firmware/b43 and
/lib/firmware/b43legacy and reinstalled the firmware.

I am running 2.6.24-18-generic, so I have followed this procedure, as
described at http://www.linuxwireless.org/en/users/Drivers/b43 :

wget http://bu3sch.de/b43/fwcutter/b43-fwcutter-011.tar.bz2
tar xjf b43-fwcutter-011.tar.bz2
cd b43-fwcutter-011
make
cd ..
export FIRMWARE_INSTALL_DIR="/lib/firmware"
wget http://downloads.openwrt.org/sources/broadcom-wl-4.80.53.0.tar.bz2
tar xjf broadcom-wl-4.80.53.0.tar.bz2
cd broadcom-wl-4.80.53.0/kmod
sudo ../../b43-fwcutter-011/b43-fwcutter -w "$FIRMWARE_INSTALL_DIR" wl_apsta.o

After doing this, I checked /lib/firmware and found a new diectory
"b43" that contains the firmware, as expected.

Next, I did the following to build, install, and load the new wireless
module, as described at
http://www.linuxwireless.org/en/users/Download:

wget http://wireless.kernel.org/download/compat-wireless-2.6/compat-wireless-2.6.tar.bz2
cd compat-wireless-2008-06-15
make

During the make, I see the following warnings.

/home/mroberts/Install/compat-wireless-2008-06-15/config.mk:48:
"WARNING: You are running a kernel >= 2.6.23, you should enable in it
CONFIG_NETDEVICES_MULTIQUEUE for 802.11[ne] support"

Next, I did the following to install the code:

sudo make install

And I see the following messages, mixed in with a bunch of stuff from make:

Module ath5k not detected -- this is fine
Enabling ath_pci ... [OK] Module enabled:
/lib/modules/2.6.24-18-generic/madwifi/ath_pci.ko
Disabling b43 ... [OK] Module disabled:
/lib/modules/2.6.24-18-generic/kernel/drivers/net/wireless/b43/b43.ko
Disabling b43legacy ... [OK] Module disabled:
/lib/modules/2.6.24-18-generic/kernel/drivers/net/wireless/b43legacy/b43legacy.ko
Enabling bcm43xx ... [OK] Module enabled:
/lib/modules/2.6.24-18-generic/kernel/drivers/net/wireless/bcm43xx/bcm43xx.ko

Your old wireless subsystem modules were left intact:

[...]

Note: madwifi detected, we're going to disable it. If you would like
to enable it later you can run:
sudo athenable madwifi

Running athenable ath5k...
Disabling ath_pci ... [OK] Module disabled:
/lib/modules/2.6.24-18-generic/madwifi/ath_pci.ko

Next, I did "sudo make load" and am told:

[...]

Disabling bcm43xx ... [OK] Module disabled:
/lib/modules/2.6.24-18-generic/kernel/drivers/net/wireless/bcm43xx/bcm43xx.ko
Enabling b43 ... [OK] Module renamed but another module file is
being preferred
Renamed module: /lib/modules/2.6.24-18-generic/kernel/drivers/net/wireless/b43/b43.ko
Preferred module: /lib/modules/2.6.24-18-generic/updates/drivers/net/wireless/b43/b43.ko
Enabling b43legacy ... [OK] Module renamed but another module file
is being preferred
Renamed module: /lib/modules/2.6.24-18-generic/kernel/drivers/net/wireless/b43legacy/b43legacy.ko
Preferred module: /lib/modules/2.6.24-18-generic/updates/drivers/net/wireless/b43legacy/b43legacy.ko
b43 loaded successfully
b43legacy loaded successfully

At this point, I try "sudo iwconfig wlan0 mode master" and I get the
same error as before:

Error for wireless request "Set Mode" (8B06) :
SET failed on device wlan0 ; Invalid argument.

If I try "dmesg", I get this:

[14179.361761] ssb: Sonics Silicon Backplane found on PCI device 0000:04:05.0
[14179.374306] b43-phy0: Broadcom 4318 WLAN found
[14179.442440] phy0: Selected rate control algorithm 'pid'
[14179.442955] Broadcom 43xx driver loaded [ Features: PMLR,
Firmware-ID: FW13 ]
[14179.462153] Broadcom 43xx-legacy driver loaded [ Features: PID,
Firmware-ID: FW10 ]
[14179.549440] input: b43-phy0 as /devices/virtual/input/input9
[14179.809010] b43-phy0: Loading firmware version 351.126
(2006-07-29 05:54:02)
[14179.809020] b43-phy0 warning: You are using an old firmware
image. Support for old firmware will be removed in July 2008.
[14179.809025] b43-phy0 warning: You must go to
http://linuxwireless.org/en/users/Drivers/b43#devicefirmware and
download the latest firmware (version 4).
[14179.926567] Registered led device: b43-phy0::tx
[14179.926795] Registered led device: b43-phy0::rx
[14179.926968] Registered led device: b43-phy0::radio
[14179.974357] ADDRCONF(NETDEV_UP): wlan0: link is not ready
[14180.759583] wlan0: Initial auth_alg=0
[14180.759592] wlan0: authenticate with AP 00:11:24:07:bd:99
[14180.761280] wlan0: RX authentication from 00:11:24:07:bd:99
(alg=0 transaction=2 status=0)
[14180.761285] wlan0: authenticated
[14180.761289] wlan0: associate with AP 00:11:24:07:bd:99
[14180.763328] wlan0: RX AssocResp from 00:11:24:07:bd:99
(capab=0x11 status=0 aid=3)
[14180.763334] wlan0: associated
[14180.763350] wlan0: CTS protection enabled (BSSID=00:11:24:07:bd:99)
[14180.764907] ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[14191.736155] wlan0: no IPv6 routers present

Again, there is a complaint about the firmware, which I don't understand.

Now what?

M

2008-06-16 08:45:43

by Mark Roberts

[permalink] [raw]
Subject: Re: Problem with master mode on BCM4318

>> What steps should I take to apply the patches?
>
> well, I don't know much about compat-wireless, but
> for the current wireless-dev, you have to get atleast one patch form:
>
> http://johannes.sipsolutions.com/patches/kernel/all/LATEST/
>
> and there: 006-allow-ap-vlan-modes.patch

OK. I've never done this before. What should I do to apply the patch?

> For the userspace: you have to compile the _cutting-edge_ hostapd (afaik
> 0.6.4 git), you'll need it even for a unencrypted network!

Looking here:

http://hostap.epitest.fi/hostapd/

The latest I see is 0.6.3 -- will that do?

Thanks,

M

2008-06-16 07:10:15

by Mark Roberts

[permalink] [raw]
Subject: Re: Problem with master mode on BCM4318

> compat-wireless is a backport of the current drivers, so you should be using
> the firmware for Linux 2.6.25 and newer.

OK, that's helpful, thanks.

I removed the existing firmware and reinstalled the version for
2.6.25, as follows:

export FIRMWARE_INSTALL_DIR="/lib/firmware"
wget http://mirror2.openwrt.org/sources/broadcom-wl-4.150.10.5.tar.bz2
tar xjf broadcom-wl-4.150.10.5.tar.bz2
cd broadcom-wl-4.150.10.5/driver
sudo ../../b43-fwcutter-011/b43-fwcutter -w "$FIRMWARE_INSTALL_DIR"
wl_apsta_mimo.o

(This is described on http://www.linuxwireless.org/en/users/Drivers/b43)

Then:

cd compat-wireless-2008-06-15
make
make install
sudo make install
sudo make load
dmesg

Now, some progress: I no longer see the warning about having old firmware.

> As fast as I know, the master mode support in mac80211 has not been merged
> yet into the wireless-testing branch, so I don't think it's present in
> compat-wireless. There are some unofficial patches for that, but you never
> mentioned them. Did any document promised you master mode support if you
> use compat-wireless?

Yes, this page indicates that AP is supported for the Broadcom chips:

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

The linuxwireless.org site isn't responding for me now either, but you
can always get the pages from Google's cache.

I didn't read anything about the patches before, and indeed the
drivers page doesn't mention them, but now I've been digging through
the Linux wireless list archive and I find a message from Dan Williams
(see: "Does mac80211 support ap mode" thread) which mentions that
mac80211 does support it, and that "While it's still under pretty
heavy development, it all should be fairly usable." The thread
mentions patches but it's not clear how to use them.

What steps should I take to apply the patches?

Thanks,

M

2008-06-16 08:26:33

by Christian Lamparter

[permalink] [raw]
Subject: Re: Problem with master mode on BCM4318

On Monday 16 June 2008 09:10:12 Mark Roberts wrote:
> What steps should I take to apply the patches?

well, I don't know much about compat-wireless, but
for the current wireless-dev, you have to get atleast one patch form:

http://johannes.sipsolutions.com/patches/kernel/all/LATEST/

and there: 006-allow-ap-vlan-modes.patch

For the userspace: you have to compile the _cutting-edge_ hostapd (afaik
0.6.4 git), you'll need it even for a unencrypted network!

Regards,
Christian


2008-06-16 03:40:42

by Pavel Roskin

[permalink] [raw]
Subject: Re: Problem with master mode on BCM4318

On Mon, 2008-06-16 at 12:24 +0900, Mark Roberts wrote:

> I noticed the warning in the dmesg output about having old firmware
> and I've followed the instructions on the web site to install it, but
> it seems to make no difference. I still see the warning.
>
> I assume that I'm doing something wrong, but I cannot tell.

You didn't write anything about the procedure you used to install the
firmware, so it impossible for others to see what was wrong with it.
Perhaps you should find where the original firmware is installed, move
it away and make sure the new firmware appears there if you install it.

> To be
> honest, I don't find the documentation on linuxwireless.org to be very
> clear or well-presented. It seems to be written primarily for
> developers, not end-users as the site advertises.

You didn't specify which exactly instructions you followed. There is
more than one page there. Master mode support is definitely not
intended for the end users at this point.

> At this point, I'm stuck. Any suggestions?

Be specific.

--
Regards,
Pavel Roskin

2008-06-16 09:50:05

by Christian Lamparter

[permalink] [raw]
Subject: Re: Problem with master mode on BCM4318

On Monday 16 June 2008 10:45:41 Mark Roberts wrote:
> >> What steps should I take to apply the patches?
> >
> > well, I don't know much about compat-wireless, but
> > for the current wireless-dev, you have to get atleast one patch form:
> >
> > http://johannes.sipsolutions.com/patches/kernel/all/LATEST/
> >
> > and there: 006-allow-ap-vlan-modes.patch
>
> OK. I've never done this before. What should I do to apply the patch?
well?! install the "patch" utility with your distribuation's package system...
now you can run something like:
patch -d /path-to-wireless-dev/ -p1 < /path-to/006-allow-ap-vlan-modes.patch

to apply the patch 006-allow-ap-vlan-modes.patch to the wireless-dev tree...
BTW, you should take a look at the documentation & manuals of "patch" too,
run "man patch" or ask google (e.g http://linux.die.net/man/1/patch,
http://www.linuxhq.com/patch-howto.html )...

>
> > For the userspace: you have to compile the _cutting-edge_ hostapd (afaik
> > 0.6.4 git), you'll need it even for a unencrypted network!
>
> Looking here:
>
> http://hostap.epitest.fi/hostapd/
>
> The latest I see is 0.6.3 -- will that do?
AFAIK not with the current wireless-dev... you have to get the "git-tree"
( "git-clone git://w1.fi/srv/git/hostap.git" )

see http://hostap.epitest.fi/cvs.html and "man git / man git-clone" for
further instructions and examples.

Regards,
Chr