[SOLVED] - Wireless on Lenovo Y700 (Intel 8086:1010)

Questions about WIFI networks and devices
Forum rules
Before you post please read how to get help
Post Reply
UltramaticOrange
Level 3
Level 3
Posts: 104
Joined: Fri Sep 05, 2014 2:48 am

[SOLVED] - Wireless on Lenovo Y700 (Intel 8086:1010)

Post by UltramaticOrange » Sat Feb 13, 2016 4:42 pm

Here's how I got Wireless working for my Lenovo Y700. This is mix of different solutions that I pieced together to be as Mint-y/Ubuntu-y as possible. That's also to say that, while I'm doing this on Mint, these instructions should also work on Ubuntu.

Verify that you're working with the correct hardware as Lenovo can swap out the wireless card on a whim:

Code: Select all

lspci -knn | grep Net -A2
08:00.0 Network controller [0280]: Intel Corporation Wireless 8260 [8086:24f3] (rev 3a)
	Subsystem: Intel Corporation Device [8086:1010]
	Kernel driver in use: iwlwifi
The "Subsystem:" line is what we care about here. If you have the 8086:0010 variant of this card, this is not the tutorial for you (although, I've read that you just need to go to the 4.2 or newer kernel).

Step 1:
Install the 4.2 (or whatever is newest) Kernel from the repos. This gets us the necessary hardware support. The below should do the trick, but I used the Synaptic GUI and don't remember exactly what I selected. Hopefully someone can verify the packages I've listed here.

Code: Select all

user@linux$ sudo apt-get install linux-headers-4.2.0-27 linux-headers-4.2.0-27-generic linux-image-4.2.0-27-generic linux-image-extra-4.2.0-27-generic
Optional step:
Verify that the wireless card is now detected by rebooting and then clicking the network icon in the notification area. It'll show up as an available wireless NIC, but you won't be able to toggle it on and you won't see any wireless networks.

Step 2:
backup the current blacklist config file

Code: Select all

user@linux$ cp /etc/modprobe.d/blacklist.conf ~/
append an additional blacklist line

Code: Select all

user@linux$ sudo echo "blacklist ideapad_laptop" >> /etc/modprobe.d/blacklist.conf
Step 3:
download and add the new firmware for the wireless card:

Code: Select all

user@linux$ wget https://wireless.wiki.kernel.org/_media/en/users/drivers/iwlwifi-8000-ucode-25.30.13.0.tgz
user@linux$ tar -zxvf iwlwifi-8000-ucode-25.30.13.0.tgz
user@linux$ cd iwlwifi-8000-ucode-25.30.13.0
user@linux$ sudo cp iwlwifi-8000C-13.ucode /lib/firmware/
Step 4:
Reboot and wireless should now work.

JeremyB
Level 20
Level 20
Posts: 11142
Joined: Fri Feb 21, 2014 8:17 am

Re: [SOLVED] - Wireless on Lenovo Y700 (Intel 8086:1010)

Post by JeremyB » Sun Feb 14, 2016 8:56 am

And there is a way to eliminate the need to blacklist ideapad-laptop as you can change the source code to include your model

First you go into Software Sources, enable source code repositories, refresh cache, then in terminal, do not use sudo to download source code

Code: Select all

apt-get source linux-image-$(uname -r)
That will download the kernel source into your home folder and with your kernel it should be linux-4.2.0
You can change into the directory with the source for ideapad-laptop with

Code: Select all

cd linux-4.2.0/drivers/platform/x86
Check for your exact model name with

Code: Select all

sudo dmidecode | grep -i version
Mine shows

Code: Select all

	Version: 8ECN91WW
	Version: Lenovo G710
	Version: 31900058Std
	Version: Lenovo G710
	Version: Intel(R) Core(TM) i5-4200M CPU @ 2.50GHz
	SBDS Version: Not Specified
	String: Compiler Version: VC 9.0
So the exact model name is Lenovo G710, now we can edit the source with

Code: Select all

gedit ideapad-laptop.c
Go to line 828 and it should look like this

Code: Select all

/*
 * Some ideapads don't have a hardware rfkill switch, reading VPCCMD_R_RF
 * always results in 0 on these models, causing ideapad_laptop to wrongly
 * report all radios as hardware-blocked.
 */
static const struct dmi_system_id no_hw_rfkill_list[] = {
	{
		.ident = "Lenovo G40-30",
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
			DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo G40-30"),
		},
	},
	{
		.ident = "Lenovo G50-30",
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
			DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo G50-30"),
		},
If my laptop was affected, I would change Lenovo G40-30 to Lenovo G710 and the one part would look like

Code: Select all

{
		.ident = "Lenovo G710",
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
			DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo G710"),
		},
I would save the file after double checking to see if the tabs were unaffected and the model name is an exact match, capital letters matter

Then make sure I had the packages needed installed

Code: Select all

sudo apt-get install linux-headers-$(uname -r) build-essential
Then copy the config

Code: Select all

cp /usr/src/linux-headers-$(uname -r)/.config ./
Then make the modules

Code: Select all

make -C /lib/modules/$(uname -r)/build M=$(pwd) modules
With any luck, they build without error

If you want to backup your current module

Code: Select all

sudo mv /lib/modules/$(uname -r)/kernel/drivers/platform/x86/ideapad-laptop.ko /lib/modules/$(uname -r)/kernel/drivers/platform/x86/ideapad-laptop.ko.bak
Then copy in the patched version

Code: Select all

sudo cp ideapad-laptop.ko /lib/modules/$(uname -r)/kernel/drivers/platform/x86/ideapad-laptop.ko
Then edit the blacklist and remove

Code: Select all

blacklist ideapad-laptop

Code: Select all

sudo gedit /etc/modprobe.d/blacklist.conf
Reboot

Post Reply

Return to “Wireless”