<page xmlns="http://projectmallard.org/1.0/"
      type="topic" style="task"
      id="net-wireless-troubleshooting-device-drivers">
  <info>
    <link type="guide" xref="net-wireless-troubleshooting"/>
    <revision pkgversion="3.4.0" date="2012-03-05" status="outdated"/>

    <credit type="author">
      <name>Contributors to the Ubuntu documentation wiki</name>
    </credit>

    <credit type="author">
      <name>Phil Bull</name>
      <email>philbull@gmail.com</email>
    </credit>

    <desc>Some device drivers don't work very well with certain wireless adapters, so you may need to find a better one.</desc>
    <include href="legal.xml" xmlns="http://www.w3.org/2001/XInclude"/>
  </info>

<title>Wireless network troubleshooter</title>
<subtitle>Make sure that working device drivers are installed</subtitle>

<!-- Needs links (see below) -->

<p>In this step you can check to see if you can get working device drivers for your wireless adapter. A <em>device driver</em> is a piece of software which tells the computer how to make a hardware device work properly. Even though the wireless adapter has been recognized by the computer, it may not have drivers which work very well. You may be able to find different drivers for the wireless adapter which do work. Try some of the options below:</p>

<list>
 <item>
  <p>Check to see if your wireless adapter is on a list of supported devices</p>
  <p>Most Linux distributions keep a list of wireless devices that they have support for. Sometimes, these lists provide extra information on how to get the drivers for certain adapters working properly. Go to the list for your distribution (for example, <link href="https://help.ubuntu.com/community/WifiDocs/WirelessCardsSupported">Ubuntu</link>, <link href="http://linuxwireless.org/en/users/Drivers">Fedora</link> or <link href="http://en.opensuse.org/HCL:Network_(Wireless)">openSuSE</link>) and see if your make and model of wireless adapter is listed. You may be able to use some of the information there to get your wireless drivers working.</p>
 </item>

 <item>
  <p>Look for restricted (binary) drivers</p>
  <p>Many Linux distributions only come with device drivers which are <em>free</em> and <em>open source</em>. This is because they cannot distribute drivers which are proprietary, or closed-source. If the correct driver for your wireless adapter is only available in a non-free, or "binary-only" version, it may not be installed by default. If this is the case, look on the wireless adapter manufacturer's website to see if they have any Linux drivers.</p>
  <p>Some Linux distributions have a tool that can download restricted drivers for you. If your distribution has one of these, use it to see if it can find any wireless drivers for you.</p>
 </item>

 <item>
  <p>Use the Windows drivers for your adapter</p>
  <p>In general, you cannot use a device driver designed for one operating system (like Windows) on another operating system (like Linux). This is because they have different ways of handling devices. For wireless adapters, however, you can install a compatibility layer called <em>NDISwrapper</em> which lets you use some Windows wireless drivers on Linux. This is useful because wireless adapters almost always have Windows drivers available for them, whereas Linux drivers are sometimes not available. You can learn more about how to use NDISwrapper <link href="http://sourceforge.net/apps/mediawiki/ndiswrapper/index.php?title=Main_Page">here</link>. Note that not all wireless drivers can be used through NDISwrapper.</p>
 </item>
</list>

<p>If none of these options work, you may want to try a different wireless adapter to see if you can get that working. USB wireless adapters are often quite cheap, and will plug into any computer. You should check that the adapter is compatible with your Linux distribution before buying it, though.</p>

</page>