This part of the guide is designed to help you troubleshoot your wireless adpater's driver issues. This page is part of the WirelessTroubleShootingGuide. You should have correctly identified your device as detailed in the Devices page of this guide. See also the comprehensive explanations of commands for troubleshooting your wireless.
1. Check for Loaded Device Drivers
First you should check if a driver automatically loaded. (Your device may be supported in Ubuntu with a native driver.) Use the lshw command. As explained under lshw, if there is a line saying configuration: ...driver=... in the description of the wireless card, this indicates the driver is installed.
If you are not running the most recent kernel, update your system (System > Administration > Update Manager). Drivers, especially wireless, are constantly being added and modified.
2. Choosing, Finding and Installing Drivers
2.1. Using Native Linux Drivers
Check in System > Administration > Hardware Drivers for a binary driver. For instance, many Broadcom cards will work with the Broadcom STA driver. Unfortunately, the driver is proprietary (the source code is not freely available), and so cannot be installed automatically as part of Ubuntu. If you are willing to accept this limitation, activate the driver.
- Search your card manufacturer's website for a Linux driver.
2.2. Using ndiswrapper for Cards Without a Linux Driver
If you find your card does not have a Linux driver you will have to look at an app called ndiswrapper.
full information on ndiswrapper kept on this page including troubleshooting help specific to ndiswrapper.
- There may be a native driver that comes with Ubuntu which is conflicting with ndiswrapper. In such cases, if you want to use ndiswrapper, you can blacklist the native driver. See below for details.
3. Check Driver
If you ran lshw -C network and saw a driver bound to the device then let's test to make sure it's communicating with the kernel.
Run the command lsmod to see if driver is loaded. (look for the driver name that was listed in the output of lshw, "configuration" line).
If you did not see the driver module in the list then use the modprobe command to load it.
- If you see two modules (usually ndiswrapper and a native Linux driver) blacklist one of them (see below).
run the command sudo iwconfig. If you see output like in the example in the command section then the driver is at least identifying the device as a wireless device to the kernel.
Opening networking in system>administration> and seeing the device in the list is how to identify through a gui if the driver is at least communicating with the kernel.
run the command sudo iwlist scan to scan for a router. If an access point is identified this shows that the card is probably working properly as it can complete a wireless interface task. (note not all cards support scanning)
3.1. Multiple drivers loaded
For some cards (e.g., SMC2632W v1.02), an additional set of drivers is incorrectly loaded, effectively disabling wireless networking by generating two apparent wifi cards where there should only be one. Typically, you'll see entries for both eth1 and wlan0_rename after running the iwconfig command, with your communication speed divided evenly between them. One of those drivers should not be loaded, and should be blacklisted. To do so, edit /etc/modprobe.d/blacklist and add the following lines:
blacklist <drivername> blacklist <drivername>_cs
where <drivername> is, for example, "hostap" (the "hostap" driver apparently causes problems for several cards). Then save, reboot, and check your connection with iwconfig.
3.2. Driver looks ok, device disabled
Newer laptops come with battery saving features to disable the wireless radio. Usually this is switched by a FN+Fx key combo or a specific button for the purpose. It is possible the driver and connection is ok but the wireless device is disabled and can't be used. Using the designated key(s) in linux sometimes does not work.
Options for identifying this:
rfkill list will show if there is a hardware or software block.
lshw command you see *-network:1 DISABLED or wireless=radio off
If you run the iwconfig command you see eth1 NOT READY!.
So how do you rectify this? It varies so much the exact solution can't be put here in this document for all the different models. So...
Look at the LaptopTestingTeam page on the team wiki to see if your laptop is listed with any information.
- Do a google search using terms such as manufacture, model, linux, wireless, enable, button, radio....etc. When searching and finding similar pages that don't help, use words that are used in those pages to help you search.
Go to the ubuntu forums and ask, maybe someone else has the same laptop and knows the work around.
- Some laptops have a controller chip on the motherboard that is only accessible through a different OS. If you have turned off your wireless adapter in a different operating system, you may have to boot back into that OS and enable the card before it is accessible to Linux.