ndis0 no link on 6.3-RELEASE

Ted Mittelstaedt tedm at toybox.placo.com
Sun Mar 16 09:12:10 UTC 2008

> -----Original Message-----
> From: owner-freebsd-questions at freebsd.org
> [mailto:owner-freebsd-questions at freebsd.org]On Behalf Of Glen Barber
> Sent: Thursday, March 13, 2008 6:56 PM
> To: freebsd-net at freebsd.org; freebsd-questions at freebsd.org
> Subject: ndis0 no link on 6.3-RELEASE
> Hello everyone.  
> First off, sorry for the double post, but I'm not 100% certain at 
> where this 
> post belongs.  
> I've found via Google many problems with ndis0 and failure to 
> find a link in 
> 6.3-RELEASE, without resolution.  So here's my setup.
> I'm using a Broadcom 4318 chipset, with drivers created from 
> ndisgen.  If you 
> need more specific information on the drivers, I'll be more than happy to 
> provide information, however I believe it to be irrelevant at 
> this moment, as 
> I have used more than one driver version, with the same results.  
> In 6.3-RC1 and below (tested in 6.2-RELEASE, and all -STABLE releases in 
> between), my ndis0 adapter works as exptected, using WPA and 
> DHCP.  I can't 
> pinpoint exaclty what changed (I've check in /usr/src/UPDATING, 
> as it seemed 
> to be most relevant), with no avail to finding anything regarding 
> either wpa 
> or dhclient.  
> Since an upgrade to 6.3-RELEASE (both, via csup and a fresh 
> install off of 
> cd), I generate my ndis module, create an /etc/wpa_supplicant.conf, 
> leaving /etc/dhclient as default, and am prompted with:
> ndis0: no link.......... giving up
> Upon 'kldunload bcmwl5.ko; kldload bcmwl5.ko', my ndis0 card 
> looses all WPA 
> capabilities.  
> What seems to me to be the interesting part is this:
> If I 'csup' to 6.3-RELEASE from -RC1, and build a kernel, the 
> problem does not 
> occur -- as long as I do not 'buildworld'.  However, once I 'buildworld; 
> installworld', I am faced with the same problems as if I had installed 
> 6.3-RELEASE from cd.  
> I would really like to figure out what is causing this (both for 
> myself, and 
> the other affected ndis0 victims), but I'm not sure where to look -- 
> dhclient, wpa_supplicant or ndis itself.  Any other information I could 
> provide, please let me know.  

Hi Glen,

  I just setup my laptop with a wireless card a couple weeks
ago and FreeBSD 6.3-RELEASE.  (it's an older Toshiba)

  I went through a total of 5 different wireless cards before
I found one that I was able to get working ndis drivers from
ndisgen.  Fortunately there's a used computer place near here
(freegeek.org) that had a box of pcmcia wireless cards of all
different makes and models, which kindly allowed me to plunk
down my laptop  (which dual-boots between Windows 98 and FreeBSD)
and they have wireless.  So I would pick a card out of their bin,
boot into Windows, download the Windows driver, make sure the
card worked under Windows, then boot into FreeBSD and mount
the Windows partition, copy over the Windows driver and inf
file to the FreeBSD side, run ndisgen and then try loading the

With some cards, the driver wouldn't even activate the card.
With other cards, the driver would allow me to list the wireless
nodes then panic the system when I tried associating.

The card that did work was a Realtek-based card.  And, it did
not work with the most current Windows drivers from the Realtek
website, it worked with the Windows drivers that were from a couple
years ago.  (I found this out quite by accident)

Fortunately, they DID also have a number of the Wavelan
cards - these are supported natively with the wi0 driver -
that worked out of the box.  Those cards are only 802.11b
though so I kept at it with ndisgen and the newer cards.

The interesting thing is that the original wireless card I
had in the Toshiba - a Texas Instruments-based chipset model -
never really quite worked properly in the Toshiba under Windows.
I put it into a different laptop I owned - a Thinkpad, and
it worked great in that.

Unfortunately, in your case, nothing has changed with ndisgen
since 2006 (see http://www.freebsd.org/cgi/cvsweb.cgi/src/usr.sbin/ndiscvt/ )
so it's not that, it's something else in the system that changed.

Start with the basics.  Copy your bcmwl5.ko into /boot/modules
then in loader.conf put bcmw15_load="YES" and reboot the system,
check dmesg, and see if it's even loading

Next put in /etc/rc.conf  "ifconfig_ndis0="inet ssid myssid"
and see if it even comes up at all and you can ping out (obviously
you will have to temporairly turn off wpa on your wireless node,
set the correct ssid, and set the correct IP address to hard-code an
IP address)

If that doesen't work, regen the bcmw15.ko file using the "old"

# cp foo.sys foo.inf /sys/modules/if_ndis
# cd /sys/modules/ndis
# make; make load
# cd /sys/modules/if_ndis
# ndiscvt -i foo.inf -s foo.sys -o ndis_driver_data.h
# make; make load

You need to isolate the problem to see if the driver is simply
just not working at all under 6.3, or if it is working, but it's
a scripting or turnup out of sequence error.  And you need to
see if wpa has anything to do with it.


More information about the freebsd-questions mailing list