Ndiswrapper

Revision 11 as of 2006-03-28 02:03:56

Clear message

1. Introduction

  • If your wireless network card does not have a native linux driver for it you can use the windows drivers with ndiswrapper. Ndiswrapper is a module in linux that allows linux to use the windows driver for wireless cards (in most cases).

    If you do not know what chipset your wifi card uses, issue the lspci command in a terminal. It should be listed there. In order to see if your chipset is known to work with the ndiswrapper module, find your card in the list [http://ndiswrapper.sourceforge.net/mediawiki/index.php/List here]. That link might even provide you with useful tips to get your specific card to work, as well as providing a link to the working Windows drivers.

Info <!> Before going any further, are you using a Live CD? If you are, give up now. This won't work.

Info <!> If you are running ubuntu AMD64 bit, go to links section for instructions.

2. Install Repository Version

2.1. Install necessary packages

  • Ubuntu comes with the necessary ndiswrapper module pre-installed but it needs the ndiswrapper-utils package to get it working. There is also a graphical interface to using ndiswrapper which you can use.

2.1.1. With internet access on ubuntu pc

  • If you have internet access via some other method while logged into ubuntu, you can install the apps from the repositories. If you don't know how to install apps then you can read [http://help.ubuntu.com/starterguide/C/ch02.html how to here]

(i) You may have to add the multiverse and universe repositories which is explained in the link.

2.1.2. With internet access from another pc

BR

  • Copy the appropriate files over to a directory on your ubuntu machine (a good location is /home/(user_name)/drivers) and install them in this order:

      sudo dpkg -i ndiswrapper-utils_1.1-4ubuntu2_i386.deb
      sudo dpkg -i ndisgtk_0.5-1ubuntu1_all.deb

Info <!> The commands listed above are a general example on how to install a .deb package from the command line. You need to be in the directory where the files were copied to and you need to replace the end with the actual package name you are installing. If you are new to the terminal, I suggest reading the wiki:BasicCommands:BasicCommands page here on the wiki.

2.1.3. With no internet access

  • With out any access you can still install ndiswrapper-utils from the install cd but ndisgtk is not on the disk. Put the disk back in the drive, open up synaptic from System>Admin and search for ndis. If you do not know how to install apps, click on the lifepreserver on the top panel and read Ubuntu X.XX starter guide.

Anchor(install)

2.2. Set up and install drivers

attachment:IconsPage/IconWarning3.png

  • Important: Do NOT use drivers on your CD. They may work and you can try them, 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 [http://ndiswrapper.sourceforge.net/mediawiki/index.php/list list], find out an entry for the same PCI ID and download the driver corresponding to it (don't worry if the link is not under your exact card as many cards you the same chipsets). Unpack the Windows driver with unzip/cabextract/unshield tools and find the INF file (.INF or .inf extension) and the SYS file (.SYS or .sys extension). (this is important as some drivers have a connection with the .sys file which makes the driver work properly) If there are multiple INF/SYS files, you may look in the [http://ndiswrapper.sourceforge.net/mediawiki/index.php/list 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 on your harddrive.

(i) The above statement is pulled from the ndiswrapper wiki site. Your drivers from your cd may work and you can try them, it's not hard to remove and try a different driver. It might save you some time searching to find someone who has verified a driver and provide a download site.

2.2.1. ndisgtk instructions

  • If you chose the ndisgtk route, after install, click on System > Admin > Windows wireless drivers and follow through the prompts.

Awesome! B) Some screen shots of ndisgtk can be found [http://lxer.com/module/newswire/view/46385/ here].

2.2.2. Command line instructions

2.2.2.1. Install the windows driver

  •   sudo ndiswrapper -i ~/drivers/{driver}.inf

    (assuming the driver is in a directory in your home folder called drivers)

(i) If file has spaces in name or it is named .INF, you will need to rename the file so there are no spaces and the file is in lower case letters.

ndiswrapper copies the .inf and sys files into /etc/ndiswrapper/....

2.2.2.2. checking to make sure it installed correctly.

  • Run this command:
      ndiswrapper -l
    If this is installed correctly you should see:

attachment:IconsPage/IconExample48.png

  •   Installed ndis drivers:
      {name of driver}  driver present, hardware present
    If you do NOT see this message.
    1. Try a different driver such as the drivers for win2k or another driver matching the pciid on the [http://ndiswrapper.sourceforge.net/mediawiki/index.php/List ndiswrapper list]

    2. There is a [#trouble troubleshooting] section, you can see if there is an answer there.
    3. Look for additional help at [http://www.ubuntuforums.org the Ubuntu Forums].

2.2.2.3. loading the new module.

  • First run this command:
      sudo depmod -a
    then:
      sudo modprobe ndiswrapper
    Check for error messages:
      tail /var/log/messages

    With no errors given you can go to the networking tool System > Administration > Networking and configure your device, or try the commands ifconfig and iwconfig. Your wireless card should now appear with an interface name of wlan0. If it doesn't appear here then the driver is not working properly.

    During startup, the system will activate the settings kept in /etc/network/interfaces. System > Administration > Networking saves settings there. Edit the file by hand if you discover settings with iwconfig beyond those on offer in the Networking user interface. Also, the order of the wireless settings can be very important. If you discover that issuing iwconfig commands in a certain order on the command line is necessary, make sure the file asserts the settings in the same order.

    Test /etc/network/interfaces by activating and deactivating the wireless network interface from the command line, which shows some diagnostic messages:

      sudo ifdown wlan0
      sudo ifup wlan0

2.2.3. automatically load at boot-time

  • If everything works, you need to tell your system to load the module on boot. Two ways you can do this are:
      sudo ndiswrapper -m
    which will add the proper line to the /etc/modules file or you can add it manually by opening the file with this command:
      sudo gedit /etc/modules

    and add the word ndiswrapper to the end of this file and save.

Anchor(trouble)

3. Troubleshooting

  • If you can not get a working driver, you may want to consider compiling and using the latest ndiswrapper release. Breezy comes with v1.1 As of Jan 2006 v1.8 is the stable release.
  • Can not modprobe ndiswrapper, fatal error given.
    • This error is usually given when ndiswrapper is compiled and installed. You have a bad installation or you didn't remove the module that came with ubuntu. Need to uninstall ndiswrapper and make sure you remove the ndiswrapper module that came with ubuntu. Uninstall instructions can be found [http://ndiswrapper.sourceforge.net/mediawiki/index.php/Uninstall here]

  • If you cannot connect, make sure eth0 (or any other network interface that may be in use) is down/deactivated. The command to take eth0 down is:

sudo killall dhclient
sudo ifconfig eth0 down

3.1. Some common errors

  • Tried to install driver from cd-rom
    • The files need to be on your hard drive, they can not be loaded from the cd-rom
  • Not all files are copied over to the hard drive
    • Not all files from the drive are needed. You basically need a .inf and a .sys file. Some drivers also use a .bin file but there shouldn't be any other file type needed.
  • Two many driver files copied to folder
    • You should only have 1 .inf and 1 .sys file in the directory on your hard drive.
  • Can't get driver.inf file to install - file not found

    • You have to be in the directory where the .inf file is or specify the full path to the file.
  • Another driver loads and binds to the device
    • Sometimes ndiswrapper is used prematuerly. There may be a native driver that comes with Ubuntu that's taking the primary driver position and conflicting with ndiswrapper. For more about this go to the wiki:WirelessTroubleshootingGuide:WirelessTroubleshootingGuide and the step on device drivers.

4. Compile latest version of ndiswrapper

BR

  •   sudo modprobe -r ndiswrapper 
      sudo apt-get --purge remove ndiswrapper-utils 
      sudo rm -r /etc/ndiswrapper/ 
      sudo rm -r /etc/modprobe.d/ndiswrapper
      sudo rm /lib/modules/`uname -r`/kernel/drivers/net/ndiswrapper/ndiswrapper.ko

4.1. Install kernel headers:

  •   sudo apt-get install linux-headers-$(uname -r)
    and dependencies:
      sudo apt-get install dh-make fakeroot gcc-3.4 build-essential

4.2. Download the current version

4.3. Untar

  • Move to the file where you downloaded the file and run these commands. On the second command replace [current version] with the actual version of the file you downloaded.

      tar xvfz ndiswrapper-[current version].tar.gz 
      cd ndiswrapper-[current version]

4.4. Build deb packages:

  •   fakeroot debian/rules binary-modules 
      fakeroot debian/rules binary-utils 
      cd ..

4.5. Install

  •   sudo dpkg -i ndiswrapper-modules-[your kernel]_[current version]-1_i386.deb ndiswrapper-utils_[current version]-1_i386.deb
    Now go back to the [#install install] section to set up and use your newly installed ndiswrapper package.

5. WPA setup

This information has been moved to: https://wiki.ubuntu.com/WPAHowto to reduce duplication

6. links

[http://ndiswrapper.sourceforge.net/mediawiki/index.php/Main_Page ndiswrapper wiki]

[https://wiki.ubuntu.com/HowtoUseNdiswrapperOnAmd64Ubuntu?highlight=%28ndiswrapper%29 Ndiswrapper on amd64 box]

wiki:WifiDocs/WifiDocs

7. FAQ

attachment:IconsPage/IconFAQ.png


CategoryDocumentation CategoryNetworking CategoryNetworking