Ndiswrapper
Introduction
ndiswrapper is a really nifty application and Linux kernel module that will let you use just about any network card supported by Windows. Here are some notes for enabling various wireless cards (both PCMCIA and PCI). The tips are quite specific to Ubuntu so you may want to look elsewhere if you aren't running that.
Handy commands to use
This will show what wireless networks are visible to your wlan0 card
iwlist wlan0 scan
This will show the wireless capability of each visible network interface
iwconfig
This will show what drivers and hardware is visible to ndiswrapper
ndiswrapper -l Installed ndis drivers: 2802w driver present, hardware present 2802wo invalid driver!
To ensure the kernel module gets loaded at boot ...
echo "ndiswrapper" >> /etc/modules
This method applies to Ubuntu, other distributions might use an entry in modules.conf To blacklist a module, add it to /etc/modprobe.d/blacklist
blacklist bcm43xx
To see pci device information - useful for identifying what wireless devices you have
lspci -vv
Same, but show the pciid listed on the ndiswrapper index.
lspci -vvn
D-Link AWG-510 PCI wireless / Ubuntu / Dell Optiplex GX200
'Updated: 2007-09-27'
The card appears like this in the lspci output. Though not obvious, the model corresponds to a WL-138g on the ndiswrapper list.
02:07.0 Ethernet controller: Marvell Technology Group Ltd. Marvell W8300 802.11 Adapter (rev 07) Subsystem: D-Link System Inc Unknown device 3b09 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 64, Cache Line Size: 32 bytes Interrupt: pin A routed to IRQ 9 Region 0: Memory at fbff0000 (32-bit, non-prefetchable) [size=64K] Region 1: Memory at fbfe0000 (32-bit, non-prefetchable) [size=64K] Capabilities: [40] Power Management version 2 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME-
- Visit http://support.asus.com/sitemap/sitemap.aspx?SLanguage=en-us and go to Wireless downloads. Grab the driver for WinXP.
- Do a sudo aptitude install ndiswrapper-utils-1.9
# unzip Driver.zip Archive: Driver.zip creating: Driver/ creating: Driver/WinXP/ inflating: Driver/WinXP/mrv8ka51.inf ...
ndiswrapper -i Driver/WinXP/mrv8ka51.inf Installing mrv8ka51
ndiswrapper -l Installed ndis drivers: mrv8ka51 driver present, hardware present modprobe ndiswrapper
iwconfig wlan0 wlan0 IEEE 802.11b ESSID:"linksys" Mode:Managed Frequency:2.437 GHz Access Point: 00:06:25:90:58:43 Bit Rate:11 Mb/s Sensitivity=-200 dBm RTS thr:2346 B Fragment thr:2346 B Encryption key:off Power Management:off Link Quality:98/100 Signal level:-94 dBm Noise level:-256 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:5 Missed beacon:0
iwlist wlan0 scan wlan0 Scan completed : Cell 01 - Address: 00:0F:B5:1F:89:D2 ESSID:"BEANTOWN" Protocol:IEEE 802.11b Mode:Managed Frequency:2.462 GHz (Channel 11) Quality:0/100 Signal level:-96 dBm Noise level:-256 dBm Encryption key:on Bit Rate:1 Mb/s Bit Rate:2 Mb/s ...
Netgear WG511 PCMCIA wireless 802.11g card / Ubuntu Breezy / IBM Thinkpad T22
2006-03-19
Great instructions can be found at http://www.ubuntuforums.org/archive/index.php/t-76804.html Resulting device was wlan0 - not eth1 as I had expected.
Broadcom onboard BCM4309 802.11a/b/g wireless device / Ubuntu / Dell Latitude 800
2006-03-21 (updated 2006-12-11)
Note that is device is rebranded as a Dell Truemobile 1450 MiniPCI.
Found driver from ndiswrapper driver page referenced above
wget http://ftp.us.dell.com/network/R76521na.EXE
unzip from /tmp/tmp2 (warning: the .exe doesn't have friendly subfolder structure)
ndiswrapper -i AR/bcmwl5a.inf Installing bcmwl5a Forcing parameter IBSSGMode|0 to IBSSGMode|2
ndiswrapper -l Installed ndis drivers: bcmwl5a driver present, hardware present
The rest follows as above, modprobe ndiswrapper and so on. After running modprobe ndiswrapper, dmesg shows:
[5079478.159000] ndiswrapper version 1.1 loaded (preempt=no,smp=no) [5079478.245000] ndiswrapper: driver bcmwl5a (Broadcom,04/09/2004, 3.40.69.0) loaded [5079478.246000] ACPI: PCI Interrupt 0000:02:03.0[A] -> Link [LNKB] -> GSI 7 (level, low) -> IRQ 7 [5079478.254000] ndiswrapper: using irq 7 [5079478.915000] wlan0: ndiswrapper ethernet device 00:90:96:c6:41:87 using driver bcmwl5a, configuration file 14E4:4324.5.conf [5079478.916000] wlan0: encryption modes supported: WEP, WPA with TKIP, WPA with AES/CCMP
Next step... enable WPA with TKIP !
Update 2006-08-23...
Ok so I finally get back around to enabling WPA, using the instructions found here, and what would you know but the output from dmesg has changed!
jetson:/var/log> dmesg | egrep 'ndis|wlan' [4294690.470000] ndiswrapper version 1.1 loaded (preempt=no,smp=no) [4294690.515000] ndiswrapper: driver bcmwl5a (Broadcom,04/09/2004, 3.40.69.0) loaded [4294690.521000] ndiswrapper: using irq 7 [4294691.023000] wlan0: ndiswrapper ethernet device 00:90:96:c6:41:87 using driver bcmwl5a, configuration file 14E4:4324.5.conf [4294691.023000] wlan0: encryption modes supported: WEP
Somehow I lost WPA support along the way. Mystery unfolds.
Update 2006-12-11... So after upgrading to 6.06 LTS (Dapper) I now have a different version of ndiswrapper installed now (as per dmesg)...
ndiswrapper version 1.8 loaded (preempt=yes,smp=no)
Also wlan0 has dissappeared to be replaced by eth1, which appears as this in the output of iwconfig.
eth1 IEEE 802.11b/g ESSID:off/any Nickname:"Broadcom 4306" Mode:Managed Access Point: Invalid Bit Rate=1 Mb/s RTS thr:off Fragment thr:off Encryption key:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Hrm, this it not a 4306 but a 4309.