Friday, June 5, 2009

Ndiswrapper in Slackware

Sometimes native Linux drivers are not available for some network cards, because some vendors do not release specifications of the hardware for their wireless network cards. Ndiswrapper is an Open Source Project Software by which unsupported wireless network devices can be used on Unix-like operating systems using Microsoft Windows drivers.

I have a wireless USB network card (Airties WUS-300) which does not have Linux driver. I can find only Windows driver on vendor's support page. But, it is possible to use this USB wireless network card in Slackware with Ndiswrapper.

Installing "Airties WUS-300 Wireless USB Network Stick" driver with Ndiswrapper in Slackware 12.2

1. Build and install "ndiswrapper" package from SlackBuild.org. For building instructions read HOWTO page.

2. Extract Windows driver of your wireless network card and then be sure about that you have extracted ".INF" file.

(Some Windows drivers are distributed as compressed content of CD image and include "autorun.inf" file. Be carefull, this is not the file that we need!)

(Some other Windows drivers are in the form of ".exe". If you are lucky, unrar or unzip will extract ".exe" files on GNU/Linux. But sometimes these tools do not extract ".exe" files, in this case you need a Windows box and Universal Extractor which is an Open Source Software to extract any type of archive including ".exe" files.)

3. Open a terminal emulator and change your directory to where ".INF" file is located.

4. Now using ".INF" file, install wireless card driver by executing below command.

# ndiswrapper -i file_name.INF

(Replace file_name with the name of your ".INF" file)

5. Check whether installation was done correctly or not by:

# ndiswrapper -l


6. Load ndiswrapper kernel module by executing:

# /sbin/modprobe ndiswrapper


7. Executing

# ndiswrapper -m

writes an alias for "wlan0" into module configuration file /etc/modprobe.d/ndiswrapper so that ndiswrapper kernel module is loaded automatically when this interface is used.

8. Restart "wlan0" interface by:

# /etc/rc.d/rc.inet1 wlan0_restart

9. Execute below command to see whether your device has an available interface or not.

# iwconfig

If you do not see anything related with your wireless card, remove wireless card from computer and plug in, then execute iwconfig again.

10. To make ndiswrapper kernel module load on every boot add following red line to /etc/rc.d/rc.modules file.

/sbin/modprobe ndiswrapper

11. Now you need to configure your wireless network interface "wlan0". You can configure network manually but there is a software which is called "Wicd" configures network instead of you. Wicd is available in the /extra section of Slackware 12.2. Download Wicd package and simply install it by installpkg.

After installing Wicd, launch program by executing:

$ wicd-client &

Set default wireless interface as "wlan0" from "Preferences > General Setting > Wireless Interface" and connect to your wireless network.





As a Slackware fun sometimes I get annoyed with using Wicd, because you loose direct control on system and you can not learn anything about network configuration except Wicd. This is inconsistent with the Slackware philosophy.

2 comments:

  1. thanks for your effort

    ReplyDelete
  2. great clear info, thanks.
    On slackware 13.1 you don't need to add the /sbin/modprobe ndiswrapper to rc.modules because it works automatically once you have done the ndiswrapper -m (i think udev and the kernel loads the driver automatically)
    I agree about wicd. it ignores the default slack configuration entirely. maybe the dev's will add slackware integration so it uses slack config files for it's own config. that would be nice.

    ReplyDelete