Activating Ndiswrapper

sidux has all needed packages installed already: the kernel module and the ndiswrapper-utils.

apt-get update
apt-get install ndiswrapper-modules-2.6-sidux-i686 (or ndiswrapper-modules-2.6-sidux-amd64)
Do it yourself

Find a suitable driver for your card and install it using the command:

ndiswrapper -i driver.inf

To check if installation went ok, check it with -l:

root@blubb:/folder/with/driver# ndiswrapper -l
installed drivers:
net5416 : driver installed
 device (168C:0024) present 

It is important that you see "driver installed" and "device present" in the output of -l. If you don't see both then something went wrong (check error message from -i and/or dmesg), because if the output is wrong here you won't get a wlan connection.

Load the ndiswrapper-module:

modprobe ndiswrapper

To check if a wifi device was created type::

iwconfig

To check if the access-point was found:

iwlist wlan0 scan

then you can configure the card with:

ceni

Then load it with modprobe:

modprobe ndiswrapper

You don't have to reinstall the windows drivers as the windows driver part is separate from the kernel module.

You can also write ndiswrapper to /etc/modules to load ndiswrapper at startup

grep -q ^ndiswrapper /etc/modules|| echo ndiswrapper >> /etc/modules

You can also do this with the GUI control centre siduxcc: KDE-Start-Menu>System>sidux Control Centre

Ndiswrapper Advanced

The ndiswrapper is a module that enables Linux to use Windows WLAN drivers. This is necessary as some wlan-card producers do not offer an open source or free driver, thus making the implementation of the card in Linux difficult. Ndiswrapper works around this problem "wrapping" the Windows driver and translating output and input from card and Linux.

Identify required driver

First of all you need a proper windows driver for your WLAN card. WLAN cards have numerous different chip sets for one model and the only way to identify your card accurately is by the device id (USBID/PCIID).

To get this 'id' open a terminal:

For a USB WLAN adaptor
bla@blubb:~$ lsusb
Bus 004 Device 002: ID 2001:3700 D-Link Corp. [hex] DWL-122 802.11b
Bus 001 Device 001: ID 0000:0000
Bus 002 Device 003: ID 0db0:6982 Micro Star International Medion Flash XL V2.7A Card Reader
bla@blubb:~$

As you see in the example above ,the USBID for the D-Link Corp. [hex] DWL-122 adaptor is 2001:3700.

For a (mini) PCI / PCMCIA WLAN adaptor
bla@blubb:~$ lspci -nn
00:1f.3 SMBus [0c05]: Intel Corporation 82801G (ICH7 Family) SMBus Controller [8086:27da] (rev 02)
01:00.0 Ethernet controller [0200]: Marvell Technology Group Ltd. 88E8053 PCI-E Gigabit Ethernet Controller [11ab:4362] (rev 22)
02:00.0 Network controller [0280]: Atheros Communications, Inc. Unknown device [168c:0024] (rev 01)
03:03.0 FireWire (IEEE 1394) [0c00]: Agere Systems FW323 [11c1:5811] (rev 61)

This 'id' has the scheme vendor:device as well, here 168c:0024 for the Atheros card.

Now search: ndiswrapper.sourceforge.net/joomla/index.php?/component/option,com_openwiki/Itemid,33/id,list for an entry with that 'id', If you're lucky you'll find an corresponding entry and a recommendation for a driver.

You need the INF and SYS files from that driver. At the best you got a ZIP file which you can extract with unzip. If you get an EXE file it is an self-extracting archive (use wine to extract) or a CAB (extract with cabextract). Easiest way now is to store all files in a new folder in your home.

Activate Ndiswrapper and install driver

Now change to the directory with the windows driver files:

bla@blubb:~$cd /folder/with/driver
bla@blubb:~$su
root@blubb:/folder/with/driver# ndiswrapper -i <driver.inf>
installing net5416 

To check if installation went ok, check it with -l:

root@blubb:/folder/with/driver# ndiswrapper -l
installed drivers:
net5416 : driver installed
 device (168C:0024) present 

It is important that you see "driver installed" and "device present" in the output of -l. If you don't see both then something went wrong (check error message from -i and/or dmesg), because if the output is wrong here, the steps won't work.

Now load the kernel module:

root@blubb:/some/folder# modprobe ndiswrapper

If you don't get an output here everything went fine, if you get an output check dmesg for further information.

"iwconfig" should now print a wireless device:

root@blubb:~# iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.

lan0      no wireless extensions.

tun0      no wireless extensions.

wlan0     IEEE 802.11b  ESSID:"ConnectionPoint"
          Mode:Managed  Frequency:2.457 GHz  Access Point: 00:01:E3:0A:93:1B
          Bit Rate=11 Mb/s
          Encryption key:off
          Power Management: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

If you want ndiswrappper to load at start up just write ndiswrapper to /etc/modules, either by hand or use:

root@blubb:~# grep -q ^ndiswrapper /etc/modules|| echo ndiswrapper >> /etc/modules
Reinstall Ndiswrapper after kernel update

After A kernel update you have to reinstall the ndiswrapper kernel module.

apt-get update
apt-get install ndiswrapper-modules-2.6-sidux-i686 (or ndiswrapper-modules-2.6-sidux-amd64)

After installing, load it with:

root@blubb:/some/folder# modprobe ndiswrapper

You don't have to reinstall the windows drivers as the driver part is separated from the kernel module.

General information

To configure your new device use Ceni

A detailed how-to can be found here .

If you find another/newer driver please test this one as well. This can cause problems, a kernel panic in worst case but you can help the ndiswrapper project and other users to benefit from the best drivers for the different cards. Please don't forget to update/complete the ndiswrapper list after a successful test.

Content last revised 07/07/2008 0700hrs UTC