On this page:
NOTE: In general, it is preferable to first try to find a NATIVE wifi driver for your wifi-adapter. But, sometimes that driver is incomplete (not all features work yet) or a native driver may not exist at all yet. So, since there is probably a working Windows-driver that works in Windows, Linux can use that driver directly, via ‘Ndiswrapper’!
Ndiswrapper is an open source software driver “wrapper” that enables Linux to use the Microsoft Windows drivers for wireless network devices. MX Linux comes with Ndiswrapper pre-installed.
Within the pre-installed ndiswrapper, there are already about a dozen Windows-drivers pre-loaded, in case your adapter might need one of these popular drivers. But, of course, you can separately acquire the one needed for your particular adapter, if it is not already pre-loaded.
Note that you MUST use a Windows 32-bit driver if you have MX Linux 32-bit edition and you MUST use a Windows 64-bit driver if you have MX Linux 64-bit edition. In general, Windows-XP drivers work much better than Vista drivers, so try the Windows-XP driver first.
- First, make sure your wireless device is recognized by opening a terminal and typing:
to look for your device.
- Then, check if your card is already supported in Ndiswrapper, by a MX Linux pre-loaded Windows driver by opening MX Network Assistant and clicking on the Windows drivers tab.
- If not, obtain the Windows driver, either from the CD that comes with the wireless card or download it from the Internet. Check this list first, and then this one if the first does not have what you need. In general, drivers for Windows XP should work well unless your system is very old. The Windows XP driver needed may be available at the website of the manufacturer of your machine, especially if it is a laptop or netbook.
- Copy the entire driver directory to some user-created folder in your Linux user account.
Now proceed to install the driver, using one of the follow methods.
- If not installed already, install ndisgtk and ndiswrapper-utils from the repos.
- Click Start menu > System > Windows Wireless Drivers
- Click on the Install New Driver button
- Navigate to the folder where you stored the downloaded driver folder
- Highlight the *.inf file, and click OK
- Jump to the Blacklist section below to finish.
It is a good idea now to remove all the other drivers before installing the one you want to use. Type as root:
ndiswrapper -e drivername
Remove each driver one at a time until all the drivers have been removed. Even if you see a driver in ndiswrapper that is the same name or the same as the one ndiswrapper will build for you it may not work so it is a good idea to remove them all.
(A little shortcut is to type the command ndiswrapper -e into konsole and hit enter. It won’t do anything without a driver name, but by pressing the up arrow key you can scroll through the commands you have typed in until ndiswrapper -e shows up, then just add the drivername and hit enter. It speeds things up a bit.)
- Then unload the ndiswrapper module by typing as root:
modprobe -r ndiswrapper
If you want to check, type lsmod | grep ndiswrapper and you should get nothing in return.
- Change directory to that user folder with the Windows driver files
- Run as root:
ndiswrapper -i <.inf file>
where <.inf file> is the name of the driver file that has the .inf extension
- An example of the above command would be
ndiswrapper -i 8185.inf
- Now, check that Ndiswrapper has bound to a specific installed Windows driver. If ‘hardware present’ or ‘device present’ shows up next to your installed Windows driver, it is!
- Now reload the module back into the kernel:
- and create the ‘wlan0’ alias:
Lastly, we need to create a ‘blacklist’ entry into the file ‘/etc/modprobe.d/blacklist’, to instruct the system to NOT use the ‘alternate’ (native) driver. The ‘alternate-driver’ name should be listed on the ‘device … present’ line from ‘ndiswrapper -l’ command. For example, the blacklist-entry for alternate ‘ath_pci’ driver will be appended into that file with cmd:
echo 'blacklist ath_pci' >>/etc/modprobe.d/blacklist
Now reboot the machine.