If things are not working as expected, follow instructions below.
Run ndiswrapper -l to make sure that Windows drivers are installed properly. You should get similar to
bcmwl5 : driver installed
device (14E4:4320) present
If you get “alternate driver” information, such as,
bcmwl5 : driver installed device (14E4:4320) present (alternate driver: bcm43xx)
then the kernel may load bcm43xx instead of ndiswrapper to initialize the device. If you want to use ndiswrapper, you must unload the alternate driver (in this case bcm43xx) e.g., ‘rmmod bcm43xx. * If you get “invalid driver” for any driver in the output of ndiswrapper -l, then remove that driver (with ndiswrapper -r) and reinstall the Windows driver as per instructions in Installation. * Unload and reload ndiswrapper with ‘rmmod ndiswrapper; modprobe ndiswrapper. If there are errors, there could be many reasons for this. If you get “unresolved symbols”, you may be using old kernel; upgrade the kernel and recompile ndiswrapper and reinstall. If you get ‘loadndisdriver’ failed, then you may have older version of ndiswrapper module in kernel modules directory. See Uninstall to remove all ndiswrapper files and reinistall again. See also [FAQ] for more details on common issues with loading ndiswrapper module.
Now check system messages with ‘dmesg | grep ndiswrapper’. At the end, you should see messages from ndiswrapper. If everything works fine, you should see something like
ndiswrapper version 0.11 loaded (preempt=no,smp=no)
ACPI: PCI interrupt 0000:00:0c.0[A] -> GSI 10 (level, low) -> IRQ 10
ndiswrapper: using irq 10
wlan0: ndiswrapper ethernet device 00:c0:49:d7:b6:e4 using driver netwg311.sys
ndiswrapper device wlan0 supports WPA with TKIP cipher
ndiswrapper: driver netwg311.sys (NETGEAR, Inc.,04/04/2004,188.8.131.52) added
If, instead, the module loading never finishes or immediately you see “Disabling IRQ”, then you have issues with interrupts in the kernel (nothing ndiswrapper can do about it). You may try booting with “acpi=noirq” if ACPI is being used. Alternately, try a different kernel or disable ACPI.
If scan shows the node that you want to connect to, then you need to associate with it. First, set the essid of the node with ‘iwconfig wlan0 essid ESSID’, where ESSID is the essid of the node. Note that you shouldn’t give quotes around ESSID. If any encryption is not being used, this should associate. If WEP (encryption) is being used, first set the encryption key and encryption mode with ‘iwconfig wlan0 key restricted 123456789A’ where encryption mode is ‘restricted’ and key is ‘123456789A’. If the encryption setting is correct, the card should now be associated with the node. Check output of ‘iwconfig wlan0’ to see that it is indeed associated (ESSID should be the ESSID you set earlier and Access Point should be like the ethernet address of the card: hexadecimal integers, and not all of them should be 00). For example:
wlan0 IEEE 802.11g ESSID:"ESSID"
Mode:Managed Frequency:2.412 GHz Access Point: 00:09:5B:9F:8F:00
Bit Rate:11 Mb/s Tx-Power:10 dBm Sensitivity=0/3
RTS thr:4096 B Fragment thr:4096 B
Encryption key:1234-5678-9A Security mode:restricted
Link Quality:100/100 Signal level:-40 dBm Noise level:-256 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
If ESSID shows “off/any”, then the card is not associated to the node. If scan (see above) shows the node and ESSID is not set, then most likely encryption is not correctly. Make sure both mode and key are correct. Many nodes are set to use open encryption mode, so you should set the mode as “iwconfig wlan0 key open 123456789A” in that case.
When alternate (linux kernel) drivers are installed and if you would rather disable that and use ndiswrapper, you can do so by blacklisting the module. For example, if bcm43xx is the alternate driver, to disable it, add blacklist bcm43xx to module configuration file (typically /etc/modprobe.conf).