Ndiswrapper

From ConShell
Jump to: navigation, search

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-


  • 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.