Getting Wireless the NDISwrapper Way

How to make NDISwrapper work with different wireless devices.

to get back to square zero. I then inserted the card into its slot and used the lspci and lspci -v commands to learn more about it. I found the card at the bottom of the listing, and the second command produced its ID (11ab:1faa):

$ lspci
00:00.0 Host bridge: ATI Technologies Inc AGP Bridge 
                     [IGP 320M] (rev 13)
00:01.0 PCI bridge: ATI Technologies Inc PCI Bridge 
                    [IGP 320M] (rev 01)
00:07.0 ISA bridge: ALi Corporation M1533/M1535 PCI to 
                    ISA Bridge [Aladdin IV/V/V+]
00:08.0 Multimedia audio controller: ALi Corporation M5451 
          PCI AC-Link Controller Audio Device (rev 02)
00:09.0 Modem: ALi Corporation M5457 AC'97 Modem Controller
00:0a.0 CardBus bridge: ENE Technology Inc CB1410 Cardbus Controller
00:0d.0 USB Controller: NEC Corporation USB (rev 43)
00:0d.1 USB Controller: NEC Corporation USB (rev 43)
00:0d.2 USB Controller: NEC Corporation USB 2.0 (rev 04)
00:0e.0 Ethernet controller: Broadcom Corporation BCM4401 
                             100Base-T (rev 01)
00:10.0 IDE interface: ALi Corporation M5229 IDE (rev c4)
00:11.0 Bridge: ALi Corporation M7101 Power 
                Management Controller [PMU]
01:05.0 VGA compatible controller: ATI Technologies Inc 
                                   Radeon Mobility U1
02:00.0 Ethernet controller: Marvell Technology Group Ltd. 
              88w8335 [Libertas] 802.11b/g Wireless (rev 03)
$ lspci -s 02:00.0 -v
02:00.0 Class 0200: 11ab:1faa (rev 03)

This time, Googling for 11ab:1faa was lucky. I found several references saying that the card worked well, so I went ahead and installed it using the same method as with the USB card. It worked just fine—it was almost anticlimactic.

Now, back to the original idea of installing both devices at the same time. I wasn't even sure if NDISwrapper could handle two drivers at the same time, and when I searched the Web, I found nothing. Plowing ahead, I decided to experiment a bit. It turns out that the /etc/modprobe.d/ndiswrapper file read:

alias wlan0 ndiswrapper

So, I added an alias wlan1 ndiswrapper line to it, just to see if it made any difference. I went back to the beginning (uninstalled everything), rebooted (just in case) and started again. After setting up both devices, I tried iwconfig and happily saw that both interfaces were recognized. I could remove either of them, and the other still worked fine. I noted that the Allied Telesyn USB device was more sensitive—it could find more remote networks—than the Netgear card, but I guess that's reasonable, as the former is newer and could be expected to be more potent.


Even though wireless devices are still a low point for Linux, using NDISwrapper provides a good solution, if you are not dogmatic about proprietary binary drivers or using Windows software on your Linux box. I would prefer an OSS solution, but I can't wait for it. There are no guarantees, of course, but my experiments convinced me that getting wireless to work should be an easy job, and I was able to make two different devices work at the same time, which attests to the quality of NDISwrapper.

Federico Kereki is an Uruguayan Systems Engineer, with more than 20 years' experience teaching at universities, doing development and consulting work, and writing articles and course material. He has been using Linux for many years now, having installed it at several different companies. He is particularly interested in the better security and performance of Linux boxes.



Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Blacklisting existing drivers

Paul Schmidt's picture

This is an excellent article for a problem that perplexes many Linux users.

You are incorrect on the status of Linux drivers for some chipsets. There is a Linux native driver for Broadcom wireless chipsets. The bcm43xx driver, or the newer b43 driver, are included in many newer distros by default. Many consider them to be inferior to the NDISwrapper method, and use NDISwrapper instead.

If there is an existing driver being loaded for your card, you must first remove them. You must then prevent them from loading by adding them to the /etc/modprobe.d/blacklist file.