This page aims to help you check that Ubuntu has detected and recognised your wireless adpater. This page is part of the WirelessTroubleShootingGuide. See also the comprehensive explanations of commands for troubleshooting your wireless.
1. Identifying Your Device
Manufacturers and retailers often rebrand hardware to sell under their own brand. Because of this, some seemingly different devices can be internally identical and thence use identical drivers. Even if devices are not identical, there is a limited number of wireless chips that manufacturers can use. As a result, many drivers will work for multiple devices with little or no alteration.
For this section, it will be useful to have
- Your device
- The packaging and contents for your device
- A driver disc - even if it only contains Windows drivers.
- An alternate working internet connection for downloading software and drivers.
Initially, note down the following:
- Complete model number
- Any version numbers that may be printed on the device or its packaging. These can be crucial, so look carefully.
- Anything on the driver disc that identifies either the device itself or the components it uses. Wireless implementation chips are often operated by firmware, a type of software written specifically for that chip.
2. Check for Device Recognition
Check that Ubuntu can see and identify your device.
- Open a terminal window and type:
lshw -C networkThis command lists network hardware.
- Check that the results correspond to the information you gathered above.
*-network description: Wireless interface product: AR5212 802.11abg NIC vendor: Atheros Communications, Inc. physical id: 1 bus info: pci@03:00.0 logical name: ath0 version: 01 serial: 00:11:95:50:be:62 width: 32 bits clock: 33MHz capabilities: bus_master cap_list ethernet physical wireless configuration: broadcast=yes '''driver=ath_pci driverversion=0.9.6.0 (EXPERIMENTAL)''' ip=192.168.1.12 multicast=yes wireless=IEEE 802.11g resources: iomemory:10800000-1080ffff irq:11
- If no wireless devices are listed, the next step will depend on the type of interface your device uses.
If a wireless device shows up then continue to the Device Drivers page
3. PCI Devices
PCI devices should be fairly straightforward to identify. When a device is discovered, Ubuntu checks the device's PCI ID against the PCI ID Database and determines the manufacturer, model number and version (if applicable).
- Open a terminal window and enter the following command:
sudo lspci -nn
- The following command is specific to wireless chipsets:
lspci -nn | grep 0280
4. USB Devices
Like PCI devices, USB devices are identified by their USB ID, a unique number assigned to each device type.
For USB devices, use lsusb.
5. CardBus and PCMCIA Devices
- Startup your computer without the wireless adapter plugged in.
- Login when/if prompted.
- When the desktop loads, open a terminal window and type the following command:
sudo tail -f /var/log/messages
- Insert your wireless adapter into an available slot.
- Repeat the command above and note the difference between the two.
- If the above does not work, see the next section.
5.1. Manual Installation of a PCMCIA/CardBus Card
5.1.1. Non-recognized Card
Some devices are not recognized by the OS upon insertion.
If card doesn't show up (in lshw) try these steps:
Run the following command. Hopefully you'll get some output about the device.
sudo pccardctl ident
Socket 0: product info: "Atheros Communications, Inc.", "AR5001-0000-0000", "Wireless LAN Reference Card", "00" manfid: 0x0271, 0x0012 function: 6 (network)
If you get no output then the memory on the card cannot be read.
Now we need to open a configuration file and add this information to it:
gksudo gedit /etc/pcmcia/config.opts
the information you add should look like this, with your own data substituted.
card ""Atheros Communications, Inc.", "AR5001-0000-0000", "Wireless LAN" manfid 0x0271, 0x0012 function: 6 (network) bind "ath_pci"
After making this change run this command:
sudo kill -HUP `cat /var/run/cardmgr.pid`
Now run lshw to see if the card is recognized and loaded properly.
Most cards requiring this step will be older devices. You should not have to do this with any cards made in the past few years, but there can be exceptions.
Notice the bind line which states what driver should be allocated to the device. You will need to find what driver your device uses. More on that in the next step.
5.2. Problem with bridge in PCI bus line
On several, especially new systems the Yenta bridge is not on the root PCI bridge, but behind a PCI-to-PCI bridge. On some x86 or x86_64 systems, these bridges aren't corrreclty set up by the BIOS, which may cause CardBus and even PCMCIA devices not to show up in lspci or in pccardctl ident correctly. If you suspect that this may be the cause, issue this command:
lspci -v | grep subordinate
Its result may be like this:
Bus: primary=00, secondary=02, subordinate=04, sec-latency=64 Bus: primary=02, secondary=03, subordinate=06, sec-latency=176 Bus: primary=02, secondary=07, subordinate=0a, sec-latency=176
Let's decode the first line: bus 0 (primary) is bridged to busses 2 (secondary) to 4 (subordinate) by a bridge. The second and the third line state that bus 2 is bridged to busses 3-6, and 7-10. However, the CPU (which itself is connected to bus 0 through the root bridge) needs to be able to access all these busses. If you try to walk the tree to bus 7, for example, you see that the CPU can't get there, as bus 0 is only bridged to busses 2 to 4.
If this is the case, or you find a message stating "try pci=assign-busses" in the dmesg log, append the following to the kernel boot line:
5.2.1. System locks upon card insertion
When a card is first inserted, the system attempts to read the card's memory. This can sometimes cause your system to lock-up. Try this to see if it helps:
Open the file /etc/pcmcia/config.opts
gksudo gedit /etc/pcmcia/config.opts
- Find the following section:
include memory 0xc0000-0xfffff include memory 0xa0000000-0xa0ffffff include memory 0x60000000-0x60ffffff
- Change it to look like this:
include memory 0xd0000-0xdffff include memory 0xc0000-0xcffff include memory 0xc8000-0xcffff include memory 0xd8000-0xdffff