6

Recently purchased Lenovo V310, with Qualcomm Atheros wifi card. The rest of the hardware components work okay, the problem is only with wifi. Issues:

  • During installation, when 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:

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

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
Zanna
  • 70,465
uxbal
  • 197
  • Please [edit] your question and add output of lspci -knn | grep Net -A3; rfkill list terminal command. – Pilot6 Mar 16 '17 at 13:54

2 Answers2

9

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.

Pilot6
  • 90,100
  • 91
  • 213
  • 324
4

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 the method detailed on the Ubuntu wiki mainline kernel builds page. Just get the right deb files from the Ubuntu kernel page, 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 in the comment on the patch on GitHub

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 this commit, and this one 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).

Zanna
  • 70,465
dryhten
  • 41