November 22, 2004

DriverLoader and NDISWrapper gift-wrap your wireless Windows devices

Author: Mayank Sharma

Most wireless network interface cards (NICs) lack a bundled Linux driver, but of course they come with a Windows driver. Some open source community developers, on their own time, study the product specifications and create their own drivers, and allow the community to use and develop them further. But some popular chipset vendors don't release their specifications, making it impossible for their device to work for the Linux community. End of the line? No way.

Linuxant's DriverLoader is a "compatibility wrapper" that allows Linux users to run the standard Windows NDIS driver shipped by the card's vendor.

DriverLoader supports various devices whose chipsets come from Atheros, Broadcom, Cisco, Intel, Conexant, Texas Instruments, and others. It can work with both 2.4 and the 2.6 kernel.

Unfortunately, DriverLoader is not free software. You can download the software for a 30-day trial, after which you have to pay $20. If commercial software doesn't suit your lifestyle, you can turn to NDISWrapper as an open source alternative.

NDISWrapper

NDISWrapper, which comes bundled with several Linux distributions, is another way to set up your wireless network cards with NDIS drivers to work on Linux-based distributions, and this one's free and open source (released under the GPL). While the level of support might not be as exhaustive as DriverLoader's, NDISWrapper is being actively developed. Currently it works with many built-in cards, and some PCMCIA cards and a few USB cards.

What are NDIS drivers?

NDIS is an acronym for Network Device Interface Specification and was originally developed by IBM, 3Com, Intel, and Microsoft for MS-DOS 3.0 to resolve interoperability issues being faced by the users due to every hardware vendor providing their own proprietary drivers for their devices.

NDIS solved this problem by providing a software API or layer between the network protocols such as TCP/IP and the actual physical devices. As per the standard, all of the hardware interaction with a network card was performed in the NDIS driver.

The NDISWrapper allows Windows NDIS drivers to interact with the Linux kernel by creating an environment in which the NDIS driver's calls to the NT kernel are translated into native Linux calls.

To use NDISWrapper, first check whether your card is listed among the supported cards. Chances are it is, and even if it's not, it may still work. You can download the source tarball, and binary packages for some distributions are available as well. Also make sure you have the Windows drivers for your card someplace where NDISWrapper can find them and install them for your distribution.

The NDISWrapper project provides detailed installation instructions. After you install the software and load it with modprobe you need to configure the wireless interface with iwconfig, as documented on the NDISWrapper site, or set up the configuration manually. If you choose the latter approach, make sure you have the service set identifier (SSID) and the mode (either managed or ad-hoc) of your network.

You can either use the Network Configuration dialog (System Settings -> Network) or create a wlan0 config file in /etc/sysconfig/network-scripts/ifcfg-wlan0. Add the following lines to the file. Lines in bold will vary according to your configuration:

# NDIS Wrapper Configuration: Linksys WMP11

DEVICE=wlan0
ONBOOT=yes
BOOTPROTO=dhcp
TYPE=Wireless
MODE=Managed
ESSID="geekybodhi"CHANNEL=6IPADDR=DOMAIN=NETMASK=255.255.255.0GATEWAY=61.16.150.1
USERCTL=no
PEERDNS=no
IPV6INIT=no
RATE=Auto
HWADDR=DHCP_HOSTNAME=FC2 #only enter this if you use DHCP

Finally, restart the network with the new settings:

service network restart

As you can see, setting up a wireless card on a Linux box isn't rocket science. Configuring a wireless network isn't really different from configuring a wired one. And while NDISWrapper is a great enabling tool, the real proliferation of wireless hardware on open source software will happen when their vendors provide out-of-the-box support for Linux.

For more general help on networking, I've found the Linux Home Networking ebook to be especially helpful.

Mayank Sharma is a freelance technology writer and FLOSS migration consultant in New Delhi, India.

Click Here!