Recently purchased Lenovo V310, with Qualcomm Atheros wifi card. The rest of the hardware components work okay, the problem is only with wifi. Issues: - when installing, and being asked in ubiquity to connect to wifi, I only get an option 'Qualcomm Atheros', instead of wireless networks. - After Ubuntu is installed and fully updated, wifi doesn't work. There is an option in the wifi dropdown called 'Enable Wireless'. I enable it, but nothing happens. Still no Wifi.

I tried the following solutions: this, this, this, this (this one made wifi invisible as if I didn't have a wifi card) and this.

Nothing seems to work. Any idea what I could try next?

edit:

as requested, here's the output:

    03:00.0 Network controller [0280]: Qualcomm Atheros Device [168c:0042] (rev 30)
Subsystem: Lenovo Device [17aa:4035]
Kernel driver in use: ath10k_pci
Kernel modules: ath10k_pci


0: ideapad_wlan: Wireless LAN
    Soft blocked: no
    Hard blocked: yes
1: ideapad_bluetooth: Bluetooth
    Soft blocked: yes
    Hard blocked: yes
2: hci0: Bluetooth
    Soft blocked: no
    Hard blocked: no
3: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
  • Please edit your question and add output of lspci -knn | grep Net -A3; rfkill list terminal command. – Pilot6 Mar 16 '17 at 13:54
up vote 9 down vote accepted

You need to disable ideapad_laptop module that is blocking the Wi-Fi.

Run in a terminal

sudo tee /etc/modprobe.d/blacklist-ideapad.conf <<< "blacklist ideapad_laptop"

and reboot.

  • Why this woudl happen on a fresh install, any explanation(technical) would be great – Zia Ul Rehman Mughal Aug 9 '17 at 16:28
  • The module blocks the wireless device. An explanation would be rather long. It is a kernel issue. Nobody makes quirks for all laptop models. – Pilot6 Aug 9 '17 at 16:30

You don't need to disable ideapad_laptop anymore, just update the linux kernel to the latest version (or any version after v4.13). To find out what version you currently have

uname -r

If you have an older version, you can install a newer one with the Update Manager (e.g. View -> Linux kernels). If Update Manager doesn't have v4.13+, you can use this method:

https://wiki.ubuntu.com/Kernel/MainlineBuilds

E.g. get the right deb files from http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13/, install and reboot.

I had the exact same issue and this fixed it for me.

If you are curious about why this happened, this is what I understood about the problem:

This is a Lenovo V310 issue. The linux kernel comes with ideapad-laptop.ko kernel module (you can find it in /lib/modules/KERNEL-VERSION/kernel/drivers/platform/x86/ideapad-laptop.ko). This is a generic module for ideapad laptops, and most of them have a hardware switch for wifi. The module will try to read the value of the switch (on/off), and if the switch is absent it will wrongfully interpret it as off, so it disables the wifi. This happens on V310. However, there is a list of laptop models in ideapad-laptop.ko that don't have this hardware switch, so the module knows to ignore the value it reads from the switch and just keep wifi on. You can find this list here (ignore the x, I can't post more than 2 links)

https://github.com/torvalds/linux/blob/c65da8e22b1d1d8869af69d287fd699c31d2dd58/drivers/platform/x86/ideapad-laptop.c#L960

Lenovo V310 was not initially on the list, but it was added earlier this year to versions v4.13+ (kinda, if you are really interested about this, check the commits1, 2 or look at file history).

So possible solutions would be to update kernel to a version that has V310 (as I described above), add it yourself to ideapad-laptop.c, compile the module and replace the one in lib/modules or as the previous answer suggested, just disable the entire ideapad-laptop module (I guess you miss some functionality here, but it's probably not that big of a deal).

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.