My Thinkpad's wireless just wouldn't work in ubuntu even though it worked in Windows, eventually putting some tape on the PCI express connector of the Wifi card did the trick.
Here are a few troubleshooting steps for wifi problems on a Lenovo Edge 13 laptop.
Run all these commands in a terminal.
1. Start here:
The following is what you want to see. If there is a yes in any of the lines or if the Wireless item is missing then go to the relevant troubleshooting section:
# sudo rfkill list all8: phy3: Wireless LAN Soft blocked: no Hard blocked: no10: tpacpi_bluetooth_sw: Bluetooth Soft blocked: no Hard blocked: noIf you see the above then your hardware is turned on and ready to connect, now you must install and configure the "network-manager" or "WICD" which is not covered here.
2. No Wireless LAN listed
If the wireless lan is not listed then the hardware or your drivers may be missing:
Check if hardware is there:
# lshw -class net -short
H/W path Device Class Description
=========================================================
/0/100/1c.1/0 wlan0 network RTL8191SEvB Wireless LAN Controller
/0/100/1c.5/0 eth0 network RTL8111/8168B PCI Express Gigabit Ethernet controller
Check if drivers are loaded:
Take a few number(not letters) from the above and see if the driver is loaded:
# lsmod |grep 819rtl8192se 99931 0 thinkpad_acpi 81819 0 rtlwifi 110972 1 rtl8192semac80211 462092 2 rtl8192se,rtlwifiIf the driver is not loaded then you must find out how to compile it.
3. Soft blocked: yes
The radio is turned off by software, run:
# sudo rfkill unblock all
go back to 1 and re-test.
4. Hard blocked: yes
The Lenovo does not have a hardware radio switch. It does however have a hotkey combination.
Press "Fn-F9" then return to 1 to re-test.
If the button does nothing then check if ACPI is installed:
# lsmod |grep thinkthinkpad_acpi 81819 0 nvram 14413 1 thinkpad_acpisnd 68266 19 thinkpad_acpi...4.1 Check if the keyboard event is fired:
# xev | sed -n 's/^.*state \([0-9].*\), keycode *\([0-9]\+\) *\(.*\), .*$/keycode \2 = \3, state = \1/p'
keycode 246 = (keysym 0x1008ff95, XF86WLAN), state = 0x0The above keycode says XF86WLAN which means the correct button has been pressed.
Find the event ID, look for the ThinkPad Extra Buttons event:
# lsinput/dev/input/event10 bustype : BUS_HOST vendor : 0x17aa product : 0x5054 version : 16641 name : "ThinkPad Extra Buttons" phys : "thinkpad_acpi/input0" bits ev : EV_SYN EV_KEY EV_MSC EV_SWListen for the event ID. Put the above event ID in the command below :
# input-events 10/dev/input/event10 bustype : BUS_HOST vendor : 0x17aa product : 0x5054 version : 16641 name : "ThinkPad Extra Buttons" phys : "thinkpad_acpi/input0" bits ev : EV_SYN EV_KEY EV_MSC EV_SWwaiting for events08:52:13.257779: EV_MSC MSC_SCAN 408:52:13.257789: EV_KEY KEY_WLAN (0xee) pressed08:52:13.257793: EV_SYN code=0 value=008:52:13.257809: EV_MSC MSC_SCAN 408:52:13.257813: EV_KEY KEY_WLAN (0xee) released08:52:13.257816: EV_SYN code=0 value=04.2 Hotkey won't lift hardblock
If all else fails and the hotkey won't lift the hardblock then override the hardblock connection on the card.