This guide is to install a Windows driver for a supported wireless adapter in Fedora Core. Here is the guide for SUSE installation wireless instructions. In this guide i shall walk you through, checking the compatability list, downloading the wireless drivers you need, downloading NDISWrapper, configuring and installing the drivers, using NDISWrapper, and finally, troubleshooting and further resources. If you have a WPA secured network, you will need to follow these instructions and those listed in Section 6. How to use WPA with ndiswrapper, and WEP secured network instructions can be found in Section 7. How to use WEP with ndiswrapper. I hope this guide provides much of what you will need, but remember Google, and FedoraForum.org, are great resources that should always be looked into.
If a problem arises, search the forum, or search Google. If you still need help, post to the forum and someone will help, maybe even me if im awake and online!! The community always helps, including newbies and you are very welcome to join and post and become an active member. If you have an OS different to Fedora Core 5, this guide is still relevant, but not specific to any other OS. You should find the forums for your OS and post there if you have trouble with ndiswrapper. The other forums list can be found in the Links page. If you are a SuSE user (SuSE 9.x / 10 / 10.1) then you can also see a specific wireless guide here.
Chances are you already have a wireless network interface card (Wireless NIC), and it is either a PCI card, USB Adapter, or built-in, like those in laptops. HotPlug devices (Pcmcia, CardBus, USB...) are most supported, and PCI cards have multiple driver support for most PC's. The methods are the same for all types of NIC. You need to see if your NIC is supported by NDISWrapper, before you begin. This is done by looking here: http://ndiswrapper.sourceforge.net/mediawiki/index.php/List. Just look through the list, which is in alphabetic order and search for your Wireless NIC.
If there are multiple drivers listed for your card, as is the case for Linksys Wireless, WUSB11v4, you need to find a match to your card or NIC. The "pciid" is the specific number given to your NIC. To find yours, and then match you NIC's pciid to the list open up a bash prompt (CLI; command line interface). Type:
/sbin/lspci for PCI NIC's or /sbin/lsusb, for USB NIC's
In the output, the stuff that appears on the screen after entering those commands, you will see numbers and colons, and also you should see your Network Interface Card (NIC). You are looking for the pciid which is the first part of the line that your NIC sits on.
If you recieved an error with lsusb, and it says it is not installed, you need the wireless-tools package and usbutils package. These are worth installing at this point, anyway. These give you greater control over much of your settings for Wireless Extensions. The "lsusb" command lists all USB devices attached, with manufacturer, and pciid number. Thus you can see which version you will need, as in the example above.
You need to download the drivers for you NIC. Look it up in the Hardware Compatability List. It is in alphabetical order, and most NIC's are listed. If yours is not listed, it may still work with the drivers that came on your Windows Driver CD. The list, http://ndiswrapper.sourceforge.net/mediawiki/index.php/List, has the details on where to downlaod your driver from. Always try and use these suggested downloads, as the ones on your CD may not always work with ndiswrapper. Now, download the driver that is mentioned for you NIC. You may need to extract it using "cabextract" for EXE, Self Installing Executables, or "unshield" for .cab files (cabinet files). More information can be read here. Files and drivers in .Zip formats can be read using file managers already on your system such as Ark.
When you have downloaded the drivers, it is a good idea to put them somewhere easily found. You should copy ALL files that came with the download, including all hidden or system files, as they get installed too with ndiswrapper. Start by making a directory to store the wireless drivers in. Type this
su -
Enter Password and Hit Return
mkdir /ndiswrapper_drivers
Hit Return
Manually transfer the files to this directory using Konqueror (GUI File Manager), or extract the files to this location as is mentioned above. Alternativly use the cp [FileToBeCopied] [LocationOfDestination] command to copy files using the Terminal
There are 2 ways to install ndiswrapper. For professional users, compile the ndiswrapper following the Compile section below the Livna Repo Method section. For newbies, i recommend using livna repo install using yum. First you need to make sure you have the livna repo configured on your system. To do so, simply do the following:
Open a terminal. Type:
su -
Hit enter, type your root password and hit enter.
Type:
gedit /etc/yum.repos.d/livna.repo
Hit enter.
In gedit type or copy and paste these lines:
[livna]
name=Livna for Fedora Core $releasever - $basearch - Base
baseurl=
http://rpm.livna.org/fedora/$releasever/$basearch/
http://livna.cat.pdx.edu/fedora/$releasever/$basearch/
http://wftp.tu-chemnitz.de/pub/linux/livna/fedora/$releasever/$basearch/
http://ftp-stud.fht-esslingen.de/pub/Mirrors/rpm.livna.org/fedora/$releasever/$basearch/
failovermethod=priority
#mirrorlist=http://rpm.livna.org/mirrorlist-5
enabled=0
gpgcheck=1
(Note that we have the "enabled" bit set to "0" (off) in this file so that the livna-stable repository will not conflict with our RPMForge repositories for automatic updates.) Be sure there is a carriage return (blank line) at the bottom of the file. Click the "save" icon in gedit and then close gedit.
Type the following in the root terminal:
rpm --import http://rpm.livna.org/RPM-LIVNA-GPG-KEY
Hit enter.
Now you are ready to install ndiswrapper to your system. Type the following in the root terminal:
yum -y --enablerepo=livna install kmod-ndiswrapper
Hit enter.
You can now skip the 2.b) Manual Compile section and move onto the 3. Installing your Windows Drivers to NDISWrapper section.
You now need to download and install NDISWrapper. Information and Downloads are obtained from http://ndiswrapper.sourceforge.net/. You now need to un-tar the file, and set-up NDISWrapper. Here's how:
You need a recent kernel at least 2.6.6 or 2.4.26 with source. Under Red Hat or Mandrake, the sources can be installed using the package kernel-source
ln -s /usr/src/linux-/lib/modules/VERSION/build
Make sure you have started compiling the kernel sources, so needed header files are present. Some vendors ship ndiswrapper in their distributions. Fedora Core 5 has an RPM in the linva repo. Instructions for this are in the section above. Either use it or make sure you remove it before installing ndiswrapper by yourself. Make sure you have the Wireless Tools installed. Again, there is a package that comes along with Red Hat and Mandrake distributions. SuSE users can add ndiswrapper using YaST, or download the RPM package.
Go to the source-directory, and run as root followed by the return key:
make make install
This should compile and install both the kernel module and the userspace utilities. If you don't need USB support in ndiswrapper, with recent versions, you can compile with 'make DISABLE_USB=1' and install with 'make DISABLE_USB=1 install'. Some users experience trouble compiling ndiswrapper with the kernel manually so installing using livna may be better.
Next you need to install the driver to NDISWrapper. This is done by:
ndiswrapper -i [location of .inf file].inf
You can check your installation at anytime, to see if the driver was sucessful, by typing:
ndiswrapper -l
Now you need to get the internet up and running!! If you have made it this far, then this is great. Troubleshooting is at the bottom for those who are having difficulties. If you have a WPA secured network, you will either need to connect to an unsecured network, or use the instructions in Section 6. How to use WPA with ndiswrapper, and if you have a WEP secured network you will need to read Section 7. How to use WEP with ndiswrapper. Simply type these commands in to the Bash prompt:
*NOTE: That sometimes you may or may not need to include /sbin before the commands. If you are tying these commands without /sbin you may get a message saying:
bash: modprobe: command not found
As root type these, one at a time, followed by RETURN key:
/sbin/depmod -a /sbin/modprobe ndiswrapper /sbin/iwconfig /sbin/iwlist wlan0 scan /sbin/iwconfig wlan0 essid ESSID #(By the way the ESSID in upper case should be replaced by the network ID like "linksys_54g"_ _or whatever it is. This can be seen when you type in scan, and the essid is listed next to the access point of choice) iwconfig wlan0 mode Managed
then finally:
/sbin/ifconfig wlan0 up or /sbin/dhclient wlan0 (i do this one, but depends on which you have on system) or /sbin/dhcpcd wlan0
Now test your connection to the internet. You may find you wish to review the Installation instructions if you have a problem at this stage, http://ndiswrapper.sourceforge.net/mediawiki/index.php/Installation, or follow the links at the bottom of this HOWTO.
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
ndiswrapper
in /etc/modules. For Fedora Core5, add a line
alias wlan0 ndiswrapper
in /etc/modprobe.conf. If this does not work, instead add a line
modprobe ndiswrapper
in /etc/rc.d/rc.local
If this still doesnt get the internet to load on boot, as has been noted on some systems, check section 4. Troubleshooting, for my own special way to get the internet to work, and this has worked for me, of look at Section 8. Useful Links!!
Depending on your problem, or where it occured, you should read the above wiki's on installation, and also read the posts on http://www.fedoraforum.org. Simply search for wireless, and look at the fixes others have found.
If you problem is, that once you restart, the internet doesnt start, or you get intermittent service, and you are sure that you are close enough to a strong signal zone then try this:
For getting the internet on boot, if those commands bring the internet up then you can simply add those lines, by editing /etc/profile, with just those lines. then everytime you log in it activates the wireless, and when you log out it disables it...hope this helps.
My /etc/profile looks like this:
# /etc/profile # System wide environment and startup programs, for login setup # Wireless initiation goes here /sbin/depmod -a /sbin/modprobe ndiswrapper /sbin/iwconfig /sbin/iwconfig wlan0 mode Managed /sbin/iwconfig wlan0 essid licari /sbin/dhclient wlan0
So for you simply place the two commands before the main functions and under the "System wide..." section. a # is a comment, and thus is skipped over, so just type your commands free of anything other than the commands themselves as you need them so for you it should read:
# /etc/profile # System wide environment and startup programs, for login setup # Wireless initiation goes here /sbin/depmod -a /sbin/modprobe ndiswrapper /sbin/iwconfig /sbin/iwconfig wlan0 mode Managed /sbin/iwconfig wlan0 essid licari /sbin/dhclient wlan0
It is always a good idea to uninstall the current version and reinstall the new version. This way, if there are changes in formats of configuration files, etc., the new version will work without problems.
Download the latest version of the ndiswrapper sources from here and extract it with
tar zxvf ndiswrapper-version.tar.gz
This will create the ndiswrapper-version directory. Change to that directory with
cd ndiswrapper-version.
If you are having problems with the release version, or you want to try the bleeding-edge version, you can either get the latest SVN version with
svn co https://svn.sourceforge.net/svnroot/ndiswrapper/trunk/ndiswrapper ndiswrapper
or if you already have SVN code, with
svn up
Note that the snapshot tar balls and SVN versions may or may not work - they may not even compile. If you have problems with these, please don't complain, except to provide feedback/debug trace to help fix bugs. However, sometimes, these may work better than release versions, as bugs are fixed, features are added, etc.
Get 0.2.5 version of wpa_supplicant from [[1]] latest CVS or later releases may work better. In wpa_supplicant directory, add .config file so it contains driver support for ndiswrapper and a control interface i.e., add the following line to .config file:
CONFIG_DRIVER_NDISWRAPPER=y CONFIG_CTRL_IFACE=y
Now compile it with "make" and copy wpa_supplicant, wpa_passphrase and wpa_cli to some place that is in your PATH, e.g., /usr/local/bin.
Get ndiswrapper version 1.2 or later and install it. By now you should have this done.
Create wpa_supplicant configuration somewhere, say, /etc/wpa_supplicant.conf. A simple configuration such as ctrl_interface=/var/run/wpa_supplicant for wpa_cli support
network={
ssid="myssid"
psk="mysecret"
key_mgmt=WPA-PSK
proto=WPA
}
should suffice. Note that psk given above can be plain text ASCII pass phrase that is used on the AP or 64 hex digits that can be generated with wpa_passphrase from the same ASCII pass phrase. For simplicity, go with ASCII pass phrase.
Above configuration causes wpa_supplicant to negotiate which encryption scheme to use. Certain AP's might not work with this negotiation procedure. So it can help to limit the scheme to the most basic WPA one: TKIP. Add this line to your config to do so: pairwise=TKIP
Now start the interface and then wpa_supplicant. For example, as
ifconfig wlan0 up wpa_supplicant -Dndiswrapper -iwlan0 -c/etc/wpa_supplicant.conf -dd
Note: With ndiswrapper version 1.12 and later, use '-Dwext' instead of '-Dndiswrapper'.
The option -dd to wpa_supplicant gives lot of output so you can see if there is a problem. If everything works, you can drop -dd option. You may also want to leave wpa_supplicant running in the background with the option "-Bw" so you don't need to start it everytime. Once wpa_supplicant authenticates, you can use DHCP to configure the network interface.
wpa_supplicant by default tries CCMP also known as AES and TKIP ciphers in that order. So if your AP supports both, you can use either ndiswrapper works with both, if the driver supports them.
You can also use wpa_supplicant to set WEP keys if you don't want/need to use WPA. This way, you can specify bssid in each network block so you can set different WEP keys for different APs automatically.
ndiswrapper works with WPA-EAP tested freeradius with TLS, TTLS, PEAP, IEEE8021X also.
WEP 64-bit and 128-bit encrypted networks can be accessed using a simple command. ON some systems, it may be needed to run a sequence of commands. The basic command, for WEP keys, is to type:
iwconfig wlan0 key kestricted XXXXXXXXXX
It may be necessary to associated the network to the access point. The commands need to be run in the same order listed here. The commands all need to be run as root. You will need to run iwlist wlan0 scan in order to find the access point for the encrypted network. You will need to copy the numbers listed by Access Point. Replace the numbers and letters after iwconfig wlan0 ap with the access point...Just type these one at a time, followed bit the Return / Enter key.
iwconfig wlan0 iwconfig wlan0 ap 00:16:X6:YC:21:Z8 #Replace the series of numbers with the numbers listed by iwlist wlan0 scan iwconfig wlan0 key restricted XXXXXXXXXX iwconfig wlan0 essid YOUR_ESSID iwconfig wlan0 #This should list the device and access point associated with wlan0. If yours is still not listed, re-run the above commands. dhclient wlan0
My name is MAniX. This is my website... Copyright (C) 2006 Adam "MAniX" Moreland, under the GNU/GPL