Don't you just love it when some genius says, "read someone else's How-To" which may or may not exist any more. I also noticed that there are lots of people providing information here about Ndiwrapper and WiFi systems where the information has absolutly nothing to do with a DHCP WiFi connection.
The web site pages with the Ndiswrapper 'How-To' instructions seems to have disappeared, or have become restricted.
I'm working on figuring out how to upgrade it myself on FC3 with the latest kernel. The instructions below do not cover everything, but I am working on trying to remember the rest of what was involved when upgrading to a new kernel. (I have only upgraded it once in the last three months since I originally installed it.)
Here are some of the original instructions for Ndiswarppaer and Fedora Core 3:
(This is a long post.)
Note: For my D-Link DWL-G630, the drivers from the D-Link CD worked fine, contrary to the instructions below.
1. Compile and install
When you are upgrading an already existing source-directory do
before compiling the sources.
As root run
This should compile and install both the kernel module and the userspace utilities.
2. Install your Windows driver
Important: Do NOT use drivers on your CD. They may work, but you may experience kernel crashes etc., if the driver on your CD has not been tested.
Instead, you need to download appropriate Windows XP driver for your card from the Wiki entry List. To identify the driver that you need, first identify the card you have with "lspci" and note the first column (such as 0000:00:0c.0) and then find out the PCI ID of the card that with "lspci -n" corresponding to the first column of "lspci" output. The PCI ID is third column (or fourth in some distributions) and of the form "104c:8400". Now you need to get the Windows driver for this chipset. In the list of drivers, find out an entry for the same PCI ID and download the driver corresponding to it. Unpack the Windows driver with unzip/cabextract/unshield tools and find out the INF file (i.e., file with .INF or .inf extension) and SYS file (i.e., file with .SYS or .sys extension). If there are multiple INF/SYS files, you may look in the List if there are any hints about which of them should be used. Make sure the INF file, SYS file and any BIN files (for example, TI drivers use BIN firmware files) are all in one directory. Now use "ndiswrapper" tool to install the driver with
ndiswrapper -i filename.inf
This copies all necessary files to /etc/ndiswrapper and creates the config files for your card.
After installing you can run
to see the status of your installed drivers. If you have installed the correct driver you should see something like this
Installed ndis drivers
bcmwl5 driver present, hardware present
Where "present" means that you have a card that can be used with the driver installed. In this case, broadcom driver bcmwl5 is used.
3. Load module
To load the module type
If you get no error the driver should now be loaded. You can verify this by checking system log (produced by dmesg). If the driver is loaded successfully, you should see a message in the system log
ndiswrapper version V loaded
Make sure the version V here matches the version of ndiswrapper package that you downloaded and installed. If you get a different version, you have old version of package, which you should uninstall and go back to step 1.
If after modprob'ing, system is locked up (no response to keyboard etc.), it indicates that kernel has crashed. See Distributions and FAQ for hints on what may cause problems for your distribution/kernel.
If you have successfully installed windows drivers earlier (with ndiswrapper -i INFfile), the ndiswrapper module will load them all. You should then see the following messages in system log
ndiswrapper: driver driver1 added
for each of the drivers. If you don't see these messages, it usually means that there are no (usable) drivers installed in /etc/ndiswrapper directory. Check if the /etc/ndiswrapper directory has one sub-directory for each driver and if in each driver's directory there are inf, sys and conf files. Otherwise, you may need to repeat step 2.
If the system has a card that works with one of the loaded drivers, you should see the following message in the system log
wlan0: ndiswrapper ethernet device xx:xx:xx:xx:xx:xx
4. Configure interface
Use iwconfig to configure wireless network interface. First, see if the interface is available, with
This tool is not likely to be present on your system : it is part of the package 'wireless-tools', which you shall install.
This will print the wireless interface (e.g., wlan0). In the examples below wlan0 is used; replace wlan0 with the interface reported by iwconfig above. The wireless configuration to be used should match what your Access Point (AP) uses. First, find out if you can see your AP with
iwlist wlan0 scan
Note: You may have to set the network name before the scan can find
your Access Point. If the scan does not find your AP, try issuing the
iwconfig wlan0 essid ESSID
before the using the command
iwlist wlan0 scan
If this lists your AP, you can continue. Otherwise, you may have one of two problems: Your AP doesn't broadcast SSID (see the FAQ for more information) or the radio of the card is off (again, see the FAQ for details).
If you see the AP in scan above, set the operating mode of the interface according to your setup. In most cases, it is Managed
iwconfig wlan0 mode Managed
If you use encryption (WEP), set the key
iwconfig wlan0 key restricted XXXXXXXX
You can use 10 hex digits for 40-bit encryption or 26 hex digits for 128-bit encryption. You may need to use open security mode instead of restricted depending on the setup of your AP. If you want to write the key in ASCII use s: (e.g. iwconfig wlan0 key restricted s
Set the network name
iwconfig wlan0 essid ESSID
Replace ESSID with the network name used by your AP.
At this point, check to make sure that ESSID is set in output of iwconfig wlan0. If you see the ESSID as you set, you can proceed to next step. If you see ESSID: off/any, then your card is not associated to AP. Check if WEP encryption is set exactly as used by AP and the AP broadcasts ESSID. See FAQ for more details. Until ESSID is set in output of iwconfig wlan0, you may not use wlan0 as network interface.
Now, setup the network parameters for the interface wlan0. This varies from distribution to distribution. Refer to your distribution's documents on how to do this. Once this is done, you can use network tools to bring up the network; e.g.,
ifconfig wlan0 up
Once everything works fine you can write the correct modprobe settings to load ndiswrapper automatically when wlan0 interface is used, by running
Note that this doesn't automatically load ndiswrapper module at boot time. If you want the module to be loaded automatically at boot time, you should configure your module setup, which depends on the distrbution. Most distributions will load all modules listed in /etc/modules at boot time. Mandrake 10.x uses /etc/modprobe.preload. For them, you can add a line
4k kernel stack size/freezing issue
Recent 2.6 kernels have an option to enable/disable 4k stack size. However, Fedora kernels disable this option altogether and use a 4K stack size, which is not enough for some windows drivers. If you are running a Fedora 2.6 kernel and your machine freezes after running modprobe ndiswrapper as described in the Installation page, you are probably using a driver that requires a stack sizegreater than 4K. Try installing the 16K stack kernel update fo Linuxant:
Fedora Core 2/i686: http://www.linuxant.com/driverloader...ernel-i686.php
Fedora Core 2/i586: http://www.linuxant.com/driverloader...ernel-i586.php
Fedora Core 3/i686: http://www.linuxant.com/driverloader...ernel-i686.php
Fedora Core 3/i586: http://www.linuxant.com/driverloader...ernel-i586.php
Most users will want to download the complete kernel RPM and install it using rpm -Uhv as root. Advanced users may want to use the patch instead, or try compiling a vanilla kernel (from http://www.kernel.org
) and disabling 4K stack size (CONFIG_4KSTACKS).
Also, if you want to use the Fedora configuration tools, you need to set up your /etc/sysconfig/network-scripts configuration file (/etc/sysconfig/network-scripts/ifcfg-eth1 for eth1):
Alter your configuration details accordingly.
Finally, put your WEP keys in the /etc/sysconfig/network-scripts/keys-eth1 file (again assuming eth1):
With all the above, you should be able to use neat or ifup/ifdown to control your ndiswrapper-enabled wlan card in Fedora.