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