Dell D830 Broadcom 432AGN WiFi mini PCI-Express

Code:
hdr=0x00
    vendor     = 'Broadcom Corporation'
    device     = 'Broadcom 432AGN 802.11a/b/g/draft-n Wi-Fi Solution (BCM4321KFBG)'
    class      = network
    bar   [10] = type Memory, range 64, base 0xf1ffc000, size 16384, enabled
    bar   [18] = type Prefetchable Memory, range 64, base 0xf0000000, size 1048576, enabled
    cap 01[40] = powerspec 2  supports D0 D1 D2 D3  current D0
    cap 09[58] = vendor (length 120)
    cap 05[e8] = MSI supports 1 message, 64 bit
    cap 10[d0] = PCI-Express 1 endpoint max data 128(128) link x1(x1)
I have 8.0 STABLE with GENERIC kernel(built today), but there is no if_bwi.ko in /boot/modules, which I could load with kldload

I have also installed bwi-firmware-kmod-3.130.20
Now I have /boot/modules/bwi_v3_ucode.ko
Code:
# kldload bwi_v3_ucode

# cd /usr/src/sys/modules/bwi
# make
# make install
# make clean

Now modules are located here:
/boot/kernel/if_bwi.ko
/boot/modules/bwi_v3_ucode.ko


I've added if_bwi_load="YES", in loader.conf

And after a reboot
Code:
# kldstat
Id Refs Address    Size     Name
 1   10 0xc0400000 b77ebc   kernel
 2    1 0xc0f78000 1ddc0    if_bwi.ko
 3    1 0xc7823000 e000     fuse.ko
 4    1 0xc78e6000 35000    pf.ko

Now...
Code:
# kldload bwi_v3_ucode

... and NADA!

PS: Please, don't mention ndis.
 
richardpl said:
I want to mention NDISulator aka The Project Evil.

Of 6 WinXP drivers, for that WiFi adapter, using ndisgen, only 1 barely worked under 7.2
Now under 8.0 STABLE, even that 1 stopped to work.

At boot time, it makes kernel, constantly, into panic! (with other 5 too)
Duh!
I am so frustrated with hardware support. :p
 
Please post bt from crashdump or from kdb prompt. If you do not know what I'm talking about, please read very short FreeBSD handbook for developers.

For start is /var/crash/ empty?

How do you do expect bugs get fixed if users never reports them?
 
I know, what you are talking about.
I did that many times. ;)

I will do that when I come home.
I need to build latest driver again, with ndisgen and make it crash.

It is not, that I am not wiling to report a problem, but I'm, waiting for if_bwi driver.
 
if_bwi(4) doesnt have support for that chip.
Just look into *64 functions.
There is another driver currently in development but for broadcom cards with newer firmware.
 
Ok, I've succeeded, with oldest working driver, from last year.
So..., at start debugging wpa_supplicant:
Code:
Trying to get current scan results first without requesting a new scan to speed up initial association
Cached scan results are empty - not posting
Selecting BSS from priority group 0
Try to find WPA-enabled AP
Try to find non-WPA AP
No suitable AP found.
Setting scan request: 0 sec 0 usec
Starting AP scan (broadcast SSID)
NDIS: Set OID 0d01011a - hexdump(len=4): [REMOVED]
ndis_get_oid: oid=0xd010101 len (6) failed
EAPOL: disable timer tick
[B][color="DarkRed"]ndis_get_oid: oid=0xd010101 len (6) failed
ndis_get_oid: oid=0xd010101 len (6) failed
ndis_get_oid: oid=0xd010101 len (6) failed
ndis_get_oid: oid=0xd010101 len (6) failed
ndis_get_oid: oid=0xd010101 len (6) failed[/color][/B]
Scan timeout - try to get results
CTRL-EVENT-SCAN-RESULTS
Selecting BSS from priority group 0
Try to find WPA-enabled AP
Try to find non-WPA AP
No suitable AP found.
Setting scan request: 5 sec 0 usec
[B][color="DarkRed"]ndis_get_oid: oid=0xd010101 len (6) failed
....[/color][/B]
Looks like ndis's scan is blind.

I added this in wpa_supplicant.conf
Code:
scan_ssid=1

Now..., loop above will end up, in successful connection.
But then, connection breaks very shortly and even ping is not possible:
Code:
: EAPOL-Key Replay Counter did not increase - dropping packet
RX EAPOL from 00:0e:2e:e5:0b:b9
RX EAPOL - hexdump(len=99): 02 03 00 5f 02 00 8a 00 10 00 00 00 00 00 00 00 04 c
b f0 72 9f 20 f2 08 ed a1 8a 3c a7 b9 c0 8b d2 53 14 f1 e7 4e 9c 24 c2 d4 61 8e
38 4c 96 08 c9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0
0 00
IEEE 802.1X RX: version=2 type=3 length=95
  EAPOL-Key type=2
  key_info 0x8a (ver=2 keyidx=0 rsvd=0 Pairwise Ack)
  key_length=16 key_data_length=0
  replay_counter - hexdump(len=8): 00 00 00 00 00 00 00 04
  key_nonce - hexdump(len=32): cb f0 72 9f 20 f2 08 ed a1 8a 3c a7 b9 c0 8b d2 5
3 14 f1 e7 4e 9c 24 c2 d4 61 8e 38 4c 96 08 c9
  key_iv - hexdump(len=16): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  key_rsc - hexdump(len=8): 00 00 00 00 00 00 00 00
  key_id (reserved) - hexdump(len=8): 00 00 00 00 00 00 00 00
  key_mic - hexdump(len=16): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
WPA: RX EAPOL-Key - hexdump(len=99): 02 03 00 5f 02 00 8a 00 10 00 00 00 00 00 0
0 00 04 cb f0 72 9f 20 f2 08 ed a1 8a 3c a7 b9 c0 8b d2 53 14 f1 e7 4e 9c 24 c2
d4 61 8e 38 4c 96 08 c9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0
0 00 00 00 00
[B][color="DarkRed"]WPA: EAPOL-Key Replay Counter did not increase - dropping packet[/color][/B]
And this message is constantly looping

Then I kill:
Code:
Association info event
req_ies - hexdump(len=76): 00 09 42 4c 41 43 4b 48 4f 4c 45 01 08 82 84 8b 96 24
 30 48 6c 21 02 08 12 24 02 01 0e 30 14 01 00 00 0f ac 04 01 00 00 0f ac 04 01 0
0 00 0f ac 02 00 00 32 04 0c 12 18 60 dd 09 00 10 18 02 00 10 01 00 00 dd 06 00
40 96 01 01 00
resp_ies - hexdump(len=16): 01 08 82 84 8b 0c 12 96 18 24 32 04 30 48 60 6c
beacon_ies - hexdump(len=69): 00 09 42 4c 41 43 4b 48 4f 4c 45 01 08 82 84 8b 96
 0c 12 18 24 03 01 06 05 04 00 01 00 00 07 06 48 52 20 01 0b 1e 2a 01 00 32 04 3
0 48 60 6c 30 14 01 00 00 0f ac eloop: could not process SIGINT or SIGTERM in tw
o seconds. Looks like there
is a bug that ends up in a busy loop that prevents clean shutdown.
Killing program forcefully.

PS:
Code:
#include <sys/cdefs.h>
__FBSDID("$FreeBSD: src/sys/dev/if_ndis/if_ndis.c,v [B][color="DarkRed"]1.166.2.2[/color][/B] 2009/10/06 16:05:06 cokane Exp $");
 
Code:
#include <sys/cdefs.h>
__FBSDID("$FreeBSD: src/sys/dev/if_ndis/if_ndis.c,v [B][color="DarkRed"]1.166.2.2[/color][/B] 2009/10/06 16:05:06 cokane Exp $");
Irrelevant, if_ndis.c code is not used with wpa_supplicant's ndis driver.

Try ndis_events(8).
 
richardpl said:
Code:
#include <sys/cdefs.h>
__FBSDID("$FreeBSD: src/sys/dev/if_ndis/if_ndis.c,v [B][color="DarkRed"]1.166.2.2[/color][/B] 2009/10/06 16:05:06 cokane Exp $");
Irrelevant, if_ndis.c code is not used with wpa_supplicant's ndis driver.

Try ndis_events(8).

It is, as I've figured out that:
Code:
# ifconfig wlan0 scan
Does not work.
It just hangs and results are never being displayed.
Even I am surrounded with ssids
 
You should use list scan
There is some problems with net80211, if_ndis will send scan results
but net80211 will ignore them:
try # sysctl debug.ndis=1 you will see scan results on console.

Again, wpa_supplicant -Dndis ignore almost everything from if_ndis.c it only use ndisapi (/sys/compat/ndis).

Anyway I still need bt from crashdump of newer drivers.

How do you expect bugs can get fixed if newer reported, correctly ...

Did you tried ndis_events(8)?
 
richardpl said:
You should use list scan
There is some problems with net80211, if_ndis will send scan results
but net80211 will ignore them:
try # sysctl debug.ndis=1 you will see scan results on console.

As soon as I did:
Code:
# sysctl debug.ndis=1
I started to get this on a console:
Code:
...
ndis_scan_results: 0 results
ndis_scan_results: 0 results
ndis_scan_results: 0 results
ndis_scan_results: 0 results
ndis_scan_results: 0 results
ndis_scan_results: 0 results
ndis_scan_results: 0 results
ndis_scan_results: 0 results
ndis_scan_results: 0 results
...

PS: list scan and scan alone, did nothing!

richardpl said:
Again, wpa_supplicant -Dndis ignore almost everything from if_ndis.c it only use ndisapi (/sys/compat/ndis).

Anyway I still need bt from crashdump of newer drivers.

How do you expect bugs can get fixed if newer reported, correctly ...

Did you tried ndis_events(8)?

Code:
# ndis_events -d
echoed nothing, bur then again, this time I didn't used wpa_supplicant.

First step is to scan ssids and get results, then to connect to non protected wifi network.
When I get ndis working with this old driver, then I will use latest drivers that crashes server.
We will go step by step.
 
Point of ndis_events is to start it when you start wpa_supplicant. So then EAP can actually work. (for explanation read code ...)

Maybe radio is turned off, so scan doesnt work?
Try to change ssid via ifconfig(8)
 
First step, is to get a scan actually and connect to an unprotected WiFi AP.
So...

Radio was off, I did turned it on and nothing.
Code:
# sysctl dev.ndis.0.RadioState=1

Code:
# sysctl debug.ndis=1
Continued to give:
Code:
...
ndis_scan_results: 0 results
ndis_scan_results: 0 results
...
both scan and list scan have not worked...


Finally this is a list of all posible sysctl settings for ndis0:
Code:
dev.ndis.0.%desc: Dell Wireless 1500 Draft 802.11n WLAN Mini-Card
dev.ndis.0.%driver: ndis
dev.ndis.0.%location: slot=0 function=0 handle=\_SB_.PCI0.RP02.PXS2
dev.ndis.0.%pnpinfo: vendor=0x14e4 device=0x4328 subvendor=0x1028 subdevice=0x000a class=0x028000
dev.ndis.0.%parent: pci12
dev.ndis.0.LOM: 0
dev.ndis.0.RoamDelta: 1
dev.ndis.0.MPC: 1
dev.ndis.0.PLCPHeader: 0
dev.ndis.0.frag: 2346
dev.ndis.0.rts: 2347
dev.ndis.0.NetworkAddress: 
dev.ndis.0.antdiv: -1
dev.ndis.0.FrameBursting: 0
dev.ndis.0.Afterburner: 0
dev.ndis.0.WakeUpCapabilities: 3
dev.ndis.0.WowlKeyRot: 1
dev.ndis.0.ledbh0: -1
dev.ndis.0.ledbh1: -1
dev.ndis.0.ledbh2: -1
dev.ndis.0.ledbh3: -1
dev.ndis.0.leddc: 0xa0000
dev.ndis.0.Interference_Mode: -1
dev.ndis.0.ccx_rm: 1
dev.ndis.0.ccx_rm_limit: 300
dev.ndis.0.EFCEnable: 0
dev.ndis.0.Country: BE
dev.ndis.0.Chanspec: 11
dev.ndis.0.WME: -1
dev.ndis.0.IBSSAllowed: 1
dev.ndis.0.ssid_auto_promote: 0
dev.ndis.0.RadioState: 1
dev.ndis.0.WZCCoexist: 0
dev.ndis.0.Managed: 1
dev.ndis.0.LockWlSettings: 0
dev.ndis.0.vlan_mode: 0
dev.ndis.0.PowerSaveMode: 2
dev.ndis.0.BTCoexist: 1
dev.ndis.0.BTC_stuck_war: 1
dev.ndis.0.abcap: 1
dev.ndis.0.AssocRoamPref: 1
dev.ndis.0.RoamTrigger: 0
dev.ndis.0.11HNetworks: 1
dev.ndis.0.IBSSMode: 0
dev.ndis.0.IBSSGProtection: 2
dev.ndis.0.LegacyMode: 2
dev.ndis.0.band: 0
dev.ndis.0.BandPref: 0
dev.ndis.0.RateA: 0
dev.ndis.0.Rate: 0
dev.ndis.0.ApCompatMode: 0
dev.ndis.0.BandwidthCap: 2
dev.ndis.0.1028000A: Dell Wireless 1505 Draft 802.11n WLAN Mini-Card
dev.ndis.0.Environment: 1
dev.ndis.0.NdisVersion: 0x00050001
dev.ndis.0.BusType: 5
dev.ndis.0.InterruptNumber: 17
dev.ndis.0.DriveStrength: UNSET
dev.ndis.0.DPCPriority: UNSET
dev.ndis.0.DongleImagePath: UNSET
dev.ndis.0.SROMImagePath: UNSET
dev.ndis.0.AllowIntfUp: UNSET
dev.ndis.0.ForcePIO: UNSET
dev.ndis.0.AdapterDesc: UNSET
dev.ndis.0.DriverDesc: UNSET
dev.ndis.0.Brand: UNSET
dev.ndis.0.featureflag: UNSET
dev.ndis.0.LegacyProbe: UNSET
dev.ndis.0.ledblinkslow: UNSET
dev.ndis.0.ledblinkmed: UNSET
dev.ndis.0.ledblinkfast: UNSET
dev.ndis.0.WME_qosinfo: UNSET
dev.ndis.0.ccx_enable: UNSET
dev.ndis.0.RoamScanFreq: UNSET
dev.ndis.0.FullRoamScanInterval: UNSET
dev.ndis.0.IBSSLink: UNSET
dev.ndis.0.mimo_antsel: UNSET
dev.ndis.0.AbRateConvert: UNSET
dev.ndis.0.11NPreamble: UNSET
dev.ndis.0.PwrOut: UNSET
dev.ndis.0.BadFramePreempt: UNSET
dev.ndis.0.assoc_recreate: UNSET
dev.ndis.0.scan_channel_time: UNSET
dev.ndis.0.scan_unassoc_time: UNSET
dev.ndis.0.scan_home_time: UNSET
dev.ndis.0.scan_passive_time: UNSET
dev.ndis.0.scan_passes: UNSET
dev.ndis.0.EnableAutoConnect: UNSET
 
Are you sure that hardware rf switch is turned on?

How many APs should appear in scan results?

If AP does not broadcast SSID you will not see it in scan results, until you change SSID via ifconfig(8)
 
There should appear around 16 ssids.
Yes hardware is on, because if I boot with hardware switch off, kernel panics during boot.

Yes, I will change country. I did not touched it at all, so I guess BE is default.
 
I am running 8.0 STABLE.
That patch I've applied on 7.2 and was able to scan thereafter.

Panic is completely irrelevant here, as it is further step.
Now I just need to be able to scan.

PS: I did successfully connected to WPA AP, buy setting 1 critical option in wpa_supplicant.conf
Code:
scan_ssid=1
 
richardpl said:
Not FreeBSD version, miniport driver version (bcmwl5.inf).

wpa_supplicant use another logic for scanning.
Looks like your AP is not broadcasting SSID.
I said that in WinXP I see around 16 SSIDs (mine and neighbors).
In FreeBSD with ndis I see none.
richardpl said:
Try code from:
http://www.gitorious.org/NDISulator

Better to use IRC or something else for faster communication ...
I did it and installed if_ndis and ndis and now not only that I can't scan but wpa_supplicant can't find ssid too, any ssid.
I have no IRC installed at the moment.
Anyway, scanning SSIDs is nmb. 1 issue here.
 
I use i386.
I installed git from ports in order to run:
Code:
git clone git://gitorious.org/ndisulator/ndisulator.git
Then, from downloaded folder, I copied src folder and moved it to /usr/src
Then went to where ndis and if_ndis are and did:
Code:
make && make install && make clean
for each.
 
You could use mount_nullfs.

I did not asked that.

Let me repeat once again:
What version of miniport driver are you using?
If you dunno how to find that post link from where you
downloaded miniport driver.
 
How do I obtain version of miniport driver
Heck, I even don't know, to what does miniport driver refers.

PS: I dunno is this relevant, but I use this for wlan0 creation:
Code:
create_args_wlan0="wlanmode sta"
 
Version is in *.inf file.
It is usually in unicode but it can be converted to ascii via ndisgen, before it build modules, after that it will probably clean up temp files.
 
Back
Top