Help Using NDIS & Broadcom 4321ag 802.11a/b/g/draft-n

std std at suddenlink.net
Sat Mar 29 19:27:28 PDT 2008


Hi:

I can't seem to find a definitive answer on the net to whether (and how) 
FreeBSD supports Broadcom 4321ag 802.11a/b/g/draft-n Wi-Fi Adapters.  
Apparently there's no native support (except through experimental drivers?) 
so you have to use NDIS (which is like ndswrapper for other linux os's only 
NDIS is built into the FreeBSD project).  I've tried ndisgen bcml##.inf 
bcml## for three different driver sets, blcmwl5.sys/inf, bcmwl564.sys/inf, 
and bcmwl6.sys/inf.  I've got the best results with the oldest drivers, 
bcmwl5.sys/inf.  kldstat shows ndis, if_ndis, and bcmwl5_sys loaded in the 
kernel and the system recognizes an ndis0 adapter, but, ifconfig ndis0 up 
scan just hangs forever.

My system is a HP tx1320us tablet pc [2.0 GHz AMD Turion 64 X2 Dual-Core 
Mobile Technology TL-60, 2048 MB DDR2 (2 Dimm), Broadcom 4321AG 
802.11a/b/g/draft-n Wi-Fi Adapter, fingerprint sensor, remote,.touch screen, 
etc. - 
http://h10025.www1.hp.com/ewfrf/wc/document?docname=c01161310&lc=en&cc=us&dlc=en&softwareitem=ob-58904-1&product=3548576&os=2093&rule=8034&lang=en ] 
running FreeBSD 7.0-RELEASE, installed from CDS and 
ftp://ftp.freebsd.org/pub/FreeBSD/ports/packages a couple weeks ago in a dual 
boot config with windows vista home premium (a good reason for dual booting 
fbsd :).

The procedure I followed was to

(1) identify the NIC;

(2) download the windows drivers from the manufacturers website.

I first tried the drivers built for windows vista because those are the 
drivers built for the 4321 card in my system.  
These drivers, bcmwl6, contained in hp's 
ftp://ftp.hp.com/pub/softpaq/sp38501-39000/sp38764.exe were apparently 
released March 12, 2008.  After running ndisgen bcmwl6.inf bcmwl6.sys and 
creating bcmwl6_sys.ko, when I kldload bcmwl6_sys.ko it loads ndis.ko and 
if_ndis.ko, but dmesg shows about 20 "no match" for various device settings 
(see below).

The latest bcmwl6 drivers don't seem to work.  It could be the inf has more 
than a few extraneous quotation marks which throw off the utf-8 to ascii 
conversion, but I tried several different methods and suspect it's NDIS 
itself which lacks the necessary support.

Is Bill Paul of Project Evil working on this (see 
http://lists.freebsd.org/pipermail/freebsd-hardware/2004-January/001005.html)?  

I downloaded the windows XP drivers for my broadcom 4321AG 
802.11a/b/g/draft-nftp: 
from //ftp.hp.com/pub/softpaq/sp36501-37000/sp36684.exe.  These were released 
August 15, 2007.
cabextract -l sp36684.exe
	Viewing cabinet: sp36684.exe
	File size | Date       Time     | Name
	-----------+---------------------+-------------
	14310 | 13.08.2007 14:46:28 | bcm43xx.cat
	14310 | 13.08.2007 14:46:28 | bcm43xx64.cat
	803496 | 13.08.2007 14:46:30 | bcmwl5.inf
	822272 | 13.08.2007 14:46:30 | bcmwl5.sys
	983552 | 13.08.2007 14:46:30 | bcmwl564.sys
	9028380 | 13.08.2007 14:46:32 | Setup.exe
	6584 | 14.08.2007 09:36:30 | sp36684.cva

(3) generate linux kernel modules with ndisgen and load them

ndisgen bcmwl6.inf bcmwl6.sys (without any additional files)
kldstat
	Id Refs Address    Size     Name
	1   17 0xc0400000 906518   kernel
	2    1 0xc0d07000 14324    snd_hda.ko
	3    2 0xc0d1c000 4a5ac    sound.ko
	7    1 0xc0fb2000 6a32c    acpi.ko
	8    1 0xc5c6a000 22000    linux.ko
kldload bcmwl6_sys
kldstat
	Id Refs Address    Size     Name
	1   17 0xc0400000 906518   kernel
	2    1 0xc0d07000 14324    snd_hda.ko
	3    2 0xc0d1c000 4a5ac    sound.ko
	7    1 0xc0fb2000 6a32c    acpi.ko
	8    1 0xc5c6a000 22000    linux.ko
	9    1 0xc69ae000 1a2000   bcmwl6_sys.ko
	10    1 0xc55dd000 c000     if_ndis.ko
	11    2 0xc6971000 16000    ndis.ko
ifconfig | grep ndis0           -- no match
tail -f /var/log/dmesg
	no match for NdisMRegisterInterruptEx
	no match for NdisMIndicateStatusEx
	no match for NdisFreeNetBufferList
	no match for NdisAllocateMdl
	no match for NdisFreeMdl
	no match for NdisMDeregisterScatterGatherDma
	no match for NdisMDeregisterInterruptEx
	no match for NdisMSynchronizeWithInterruptEx
	no match for NdisMRegisterMiniportDriver
	no match for NdisMSetMiniportAttributes
	no match for NdisMGetBusData
	no match for NdisMRegisterScatterGatherDma
	no match for NdisAllocateNetBufferListPool
	no match for NdisMOidRequestComplete
	no match for NdisAllocateIoWorkItem
	no match for NdisMSetBusData
	no match for NdisAllocateNetBufferAndNetBufferList
	no match for NdisMDeregisterMiniportDriver
	no match for NdisFreeNetBufferListPool
	no match for NdisOpenConfigurationEx
	no match for NdisFreeIoWorkItem
	no match for NdisMSendNetBufferListsComplete
	no match for NdisMIndicateReceiveNetBufferLists
	no match for NdisAllocateMemoryWithTagPriority
	no match for NdisQueueIoWorkItem
	no match for KeBugCheckEx
	no match for KeTickCount
	no match for KeQuerySystemTime
	NDIS dummy called...

ndisgen bcmwl5.inf bcmwl5.sys (w/o additional files)
kldstat
	Id Refs Address    Size     Name
	1   17 0xc0400000 906518   kernel
	2    1 0xc0d07000 14324    snd_hda.ko
	3    2 0xc0d1c000 4a5ac    sound.ko
	7    1 0xc0fb2000 6a32c    acpi.ko
	8    1 0xc5c6a000 22000    linux.ko
kldload bcmwl5_sys
tail -f /var/log/messages
	ndis0: <Broadcom 4321AG 802.11a/b/g/draft-n Wi-Fi Adapter> mem 
0xc8000000-0xc8003fff,0xc9200000-0xc92fffff irq 19 at device 0.0 on pci3
	ndis0: [ITHREAD]
	ndis0: NDIS API version: 5.1
	ndis0: using obsoleted if_watchdog interface
	ndis0: Ethernet address: 00:1a:73:b7:6e:2d
kldstat
	Id Refs Address    Size     Name
	1   17 0xc0400000 906518   kernel
	2    1 0xc0d07000 14324    snd_hda.ko
	3    2 0xc0d1c000 4a5ac    sound.ko
	7    1 0xc0fb2000 6a32c    acpi.ko
	8    1 0xc5c6a000 22000    linux.ko
	11    1 0xc69ae000 220000   bcmwl5_sys.ko
	12    1 0xc55dd000 c000     if_ndis.ko
	13    2 0xc6971000 16000    ndis.ko
ifconfig
ndis0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether 00:1a:73:b7:6e:2d
        media: IEEE 802.11 Wireless Ethernet autoselect
        status: no carrier
        ssid "" channel 1 (2412 Mhz 11b)
        authmode OPEN privacy OFF bmiss 7 scanvalid 60 bintval 0
ifconfig ndis0 up scan
[SYSTEM HANGS]

ndisgen bcmwl564.inf bcmwl564.sys       <=== the '64' appears to designate 
64-bit os and WILL crash on 32 bit os
kldload bcmwl564_sys
[12 ERROR, SYSTEM REBOOTING IN 15 SECONDS]

Do I also need to be loading WLAN modules or is it only for natively supported 
drivers?

Should I be running ndisgen bcmwl5.inf bcmwl5.sys and selecting additional 
files from a windows driver package? ndisgen has two menus for adding 
additional files, which files should be specified on what nidsgen menu?  I'm 
only including the sys and inf when I do ndisgen and some sources indicate 
that I might also be specifying other files contained in the driver packages.  
How do you determine what files are to be included with ndisgen?

ftp://ftp.hp.com/pub/softpaq/sp36501-37000/sp36684.exe = xp 2007-08-15
	Viewing cabinet: sp36684.exe
	File size | Date       Time     | Name
	-----------+---------------------+-------------
	14310 | 13.08.2007 14:46:28 | bcm43xx.cat
	14310 | 13.08.2007 14:46:28 | bcm43xx64.cat
	803496 | 13.08.2007 14:46:30 | bcmwl5.inf
	822272 | 13.08.2007 14:46:30 | bcmwl5.sys
	983552 | 13.08.2007 14:46:30 | bcmwl564.sys
	9028380 | 13.08.2007 14:46:32 | Setup.exe
	6584 | 14.08.2007 09:36:30 | sp36684.cva

I know I can knock out 64bit and Setup.exe is the windows driver installation 
program which I don't need, but what about the bcm43xx.cat?  Is that 
necessary to creat fully working drivers with ndisgen?

Does ifconfig ndis0 scan hang because there are no available networks?

Is this message significant, "ndis0: using obsoleted if_watchdog interface"?

Are there other drivers that I should be using instead?

Am I using if_config correctly?  Do I need to configure some wifi parameters 
in a .conf file somewhere before using ifconfig with an ndis# device?  My 
rc.conf is entirely sysinstall generated at the moment.
nebulae# more /boot/loader.conf
bcmwl5_sys_load="YES"
wlan_wep_load="YES"      <  === should this be here?
snd_hda_load="YES"

What other information can I collect about my pc & install to help me 
troubleshoot this issue?

Thanks in advance,
STD
wwww.turnerlit.com


More information about the freebsd-questions mailing list