Ndiswrapper

Introduction
Ndiswrapper is an utility for allowing drivers using NDIS (a Microsoft driver interface) to run on Linux (and other UNIX-like operating systems). This has allowed many closed-source proprietary Windows drivers to be supported on Linux.

Installation
Ndiswrapper is in the portage tree under net-wireless/ndiswrapper. It can be installed with emerge:

Once installed, the two pieces of ndiswrapper will need to be set up separately.

The Windows Drivers
Windows drivers will need to be installed into ndiswrapper before they can be used. This is done with the ndiswrapper utility.

The windows drivers should consist of two files in the same directory: a .SYS and a .INF. It is the second one which you pass as an argument to the utilty:

The files necessary will be copied to automatically.

The Kernel Module
Half of ndiswrapper is a kernel module. Once the drivers have been installed, this kernel module will need to be loaded at boot time. This is most easily done by setting it up to auto-load:

Troubleshooting and Module Conflicts
For some cards, linux drivers are available, but proprietary drivers may be more reliable or provide more functionality. In these cases, failures of card detection are often the result of the linux driver and the ndiswrapper module fighting for control of the device in the kernel.

The simplest way to see if there is already a device driver loaded is to use the lspci command:

This will result in a listing of devices. If there is a kernel module loaded for that device, then it will need to be blacklisted:

Make sure that you either reboot or run before trying again.

Ndiswrapper