SOLVED: Lenovo Yoga 2 13″ with “hardware-disabled” Wifi
Overview
Having a Lenovo Yoga 2 13″ (non-pro) running Ubuntu 14.04.1, I couldn’t get Wireless LAN up and running, as the WLAN NIC appeared to be “hardware locked”. This is the summary of how I solved this issue. If you’re not interested in the gory details, you may jump right to bottom, where I offer a replacement module that fixes it. At least for me.
Environment details: Distribution kernel 3.13.0-32-generic on an Intel i5-4210U CPU @ 1.70GHz. The Wifi device is an Intel Dual Band Wireless-AC 7260 (8086:08b1) connected to the PCIe bus, taken care of by the iwlwifi driver.
The problem
Laptops have a mechanism for working in “flight mode” which means turning off any device that could emit RF power, so that the airplane can crash for whatever different reason. Apparently, some laptops have a physical on-off switch to request this, but on Lenovo Yoga 13, the arrangement is to press a button on the keyboard with an airplane drawn on it. The one shared with F7.
It seems to be, that on Lenovo Yoga 13, the ACPI interface, which is responsible for reporting the Wifi’s buttons state, always reports that it’s in flight mode. So Linux turns off Wifi, and on the desktop’s Gnome network applet it says “Wi-Fi is disabled by hardware switch”.
In the dmesg log one can tell the problem with a line like
iwlwifi 0000:01:00.0: RF_KILL bit toggled to disable radio.
which is issued by the interrupt request handler defined in drivers/net/wireless/iwlwifi/pcie/rx.c, which responds to an interrupt from the device that informs the host that the hardware RF kill bit is set. So the iwlwifi module is not to blame here — it just responds to a request from the ACPI subsystem.
rfkill
The management of RF-related devices is handled by the rfkill subsystem. On my laptop, before solving the problem, a typical output went
$ rfkill list all 0: ideapad_wlan: Wireless LAN Soft blocked: yes Hard blocked: yes 1: ideapad_bluetooth: Bluetooth Soft blocked: no Hard blocked: yes 6: hci0: Bluetooth Soft blocked: no Hard blocked: no 7: phy1: Wireless LAN Soft blocked: yes Hard blocked: yes
So there are different entities that can be controlled with rfkill, enumerated and assigned soft and hard blocks. Each of these relate to a directory in /sys/class/rfkill/. For example, the last device, “phy7″ enumerated as 7 corresponds to /sys/class/rfkill/rfkill7, where the “hard” and “soft” pseudo-files signify the status with “0″ or “1″ values.
The soft block can be changed by “rfkill unblock 0″ or “rfkill unblock 7″, but this doesn’t really help with the hardware block. Both has to be “off” to use the device.
As can be seen easily from the rkfill list above, each of the physical devices are registered twice as rfkill devices: Once by their driver, and a second time by the ideapad_laptop driver. This will be used in the solution below.
The ideapad_laptop module
The ideapad-laptop module is responsible for talking with the ACPI layer on machines that match “VPC2004″ as a platform (as in /sys/devices/platform/VPC2004:00, or /sys/bus/acpi/devices/VPC2004:00, but doesn’t fit anything found in /sys/class/dmi/id/).
Blacklisting this module has been suggested for Yoga laptops all over the web. In particular this post suggests to insmod the module once with a hack that forces the Wifi on, and then blacklist it.
But by blacklisting ideapad-laptop, the computer loses some precious functionality, including disabling Wifi and the touchpad by pressing a button. So this is not an appealing solution.
Ideapad’s two debugfs output files go:
# cat /sys/kernel/debug/ideapad/cfg cfg: 0x017DE014 Capability: Bluetooth Wireless Camera Graphic: # cat /sys/kernel/debug/ideapad/status Backlight max: 16 Backlight now: 9 BL power value: On ===================== Radio status: Off(0) Wifi status: Off(0) BT status: On(1) 3G status: Off(0) ===================== Touchpad status:Off(0) Camera status: On(1)
So the Radio and Wifi statuses, which are read from the ACPI registers, are off. This makes the ideapad_laptop module conclude that everything should go off.
The solution
In essence, the solution for the problem is to take the ideapad_laptop’s hands off the Wifi hardware, except for turning the hardware block off when it’s loaded. It consists of making the following changes in drivers/platform/x86/ideapad-laptop.c:
- First, remove the driver’s rfkill registration. Somewhere at the beginning of the file, change
#define IDEAPAD_RFKILL_DEV_NUM (3)
to
#define IDEAPAD_RFKILL_DEV_NUM (2)
and in the definition of ideapad_rfk_data[], remove the line saying
{ "ideapad_wlan", CFG_WIFI_BIT, VPCCMD_W_WIFI, RFKILL_TYPE_WLAN }
This prevents the driver from presenting an rfkill interface, so it keeps its hands off.
- There is however a chance that the relevant bit in the ACPI layer already has the hardware block on. So let’s turn it off every time the driver loads. In ideapad_acpi_add(), after the call to ideapad_sync_rfk_state(), more or less, add the following two lines:
pr_warn("Hack: Forcing WLAN hardware block off\n"); write_ec_cmd(priv->adev->handle, VPCCMD_W_WIFI, 1);
- And finally, solve a rather bizarre phenomenon, that when reading for the RF state with a VPCCMD_R_RF command, the Wifi interface is hardware blocked for some reason. Note that radio is always in off mode, so it’s a meaningless register on Yoga 2. This is handled in two places. First, empty ideapad_sync_rfk_state() completely, by turning it into
static void ideapad_sync_rfk_state(struct ideapad_private *priv) { }
This function reads VPCCMD_R_RF and calls rfkill_set_hw_state() accordingly, but on Yoga 2 it will always block everything, so what’s the point?
Next, in debugfs_status_show() which prints out /sys/kernel/debug/ideapad/status, remove the following three lines:if (!read_ec_data(priv->adev->handle, VPCCMD_R_RF, &value)) seq_printf(s, "Radio status:\t%s(%lu)\n", value ? "On" : "Off", value);
Having these changes made, the Wifi works properly, regardless of it was previously reported hardware blocked.
This can’t be submitted as a patch to the kernel, because presumably some laptops need the rfkill interface for Wifi through ideapad_laptop (or else, why was it put there in the first place?).
Also, maybe I should have done this for Bluetooth too? Don’t know. I don’t use Bluetooth right now, and the desktop applet seems to say all is fine with it anyhow.
Download the driver fix
For the lazy ones, I’ve prepared a little kit for compiling the relevant driver. I’ve taken the driver as it appears in kernel 3.16, more or less, and applied the changes above. And I then added a Makefile to make it compile easily. Since the kernel API changes rather rapidly, this will probably work well for kernels around 3.16 (that includes 3.13), and then you’ll have to apply the changes manually. If it isn’t fixed in the kernel itself by then.
Download it from here, unzip it, change directory, and compile it with typing “make”. This works only if you have the kernel headers and gcc compiler installed, which is usually the case in recent distributions. So a session like this is expected:
$ make make -C /lib/modules/3.13.0-32-generic/build SUBDIRS=/home/eli/yoga-wifi-fix modules make[1]: Entering directory `/usr/src/linux-headers-3.13.0-32-generic' CC [M] /home/eli/yoga-wifi-fix/ideapad-laptop.o Building modules, stage 2. MODPOST 1 modules CC /home/eli/yoga-wifi-fix/ideapad-laptop.mod.o LD [M] /home/eli/yoga-wifi-fix/ideapad-laptop.ko make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-32-generic'
Then replace the fresh ideapad-laptop.ko with the one the kernel uses. First, let’s figure out where to. The modinfo command help here:
$ modinfo ideapad_laptop
filename: /lib/modules/3.13.0-32-generic/kernel/drivers/platform/x86/ideapad-laptop.ko
license: GPL
description: IdeaPad ACPI Extras
author: David Woodhouse <dwmw2@infradead.org>
srcversion: BA339D663FA3B10105A1DC0
alias: acpi*:VPC2004:*
depends: sparse-keymap
vermagic: 3.13.0-32-generic SMP mod_unload modversions
parm: no_bt_rfkill:No rfkill for bluetooth. (bool)
So the directory is now known (marked in red). This leaves us with copying it into the right place:
$ sudo cp ideapad-laptop.ko /lib/modules/3.13.0-32-generic/kernel/drivers/platform/x86/
The new module is valid on the next reboot. Or the next insmod/modprobe, if you’re have the same allergy as myself regarding rebooting a Linux system.
Reader Comments
Hi
Thanks! This looks very helpful.
I also bought this kind of computer about a month ago. I didn’t install Linux on it yet, but I’m planning to do so. Have you had any other kind of problems? Does it work with the pre-installed Windows side-by-side? From reading, I understand that there is some issue with the partition table type (GPT or MBR). I also understand that the trackpad is not working properly. Did it work for you?
Avishay
Hi,
Aside from the problem with the Wifi card, it seems like Ubuntu is running smoothly out of the box. That includes suspend and wakeup.
The touchpad as well as the touch screen work well (at least for a single screen touch). You can make drawings with GIMP by touching the screen, for example.
But I haven’t used the machine much, so I hope no new problems will surface.
As for co-existence with Windows — I never got there. I just wiped the Windows 8.1 installation with great pleasure. :)
Really helpful, Eli!
Well done, Eli. I tried three other solutions posted around the net, but this was the only one that worked (and by editing the driver source rather than just blocking the entire driver, it’s the most elegant solution). By the by, I deployed this to a Yoga 2 13″ (not pro) with Linux Mint 17.
I tested the following, also:
Sleep/wakeup: OK
Trackpad: OK
Screen re-orientation: Not OK (but that’s a different driver)
Sound: OK
Screen brightness control: OK
Airplane Mode: OK
Mute button: OK
Volume Up/Dn: OK
Hi,
Does anyone of you guys use the yoga 2 13 with Windows 8.1?
I do, and the Wi-fi by far doesn’t work properly! Either it works very slow, or it disconnects all the time. Sometimes it even doesn’t find the network.
The wifi device runs with the latest driver, and I did some other updates, but since I’m not that much of a Computerpro, I don’t know what to do to solve the problem.
If anyone can help me, I would be very glad.
greets, Richi
Hi,
This seems like the closest match to the issues I am having with my Lenovo Yoga 2 13″.
‘rfkill list’ was showing a software block on wifi that could be toggled with the airplane mode key. However no wifi was available.
Running ‘cat /sys/kernel/debug/ideapad/status’ showed that ‘Radio status:’ and ‘Wifi status:’ were ‘off(0)’ even when no rfkill yeses could be found.
I tried your kernel – I had to disable secure boot – but modprobe gives ‘Exec format error’.
Is this compiling for the wrong architecture or something? I’m on 64 bit Fedora 20.
Thank you Eli! It worked!
I had exactly the same problem.
I downloaded your zip consisting of the C code, generated the .ko and deployed on the given path and restarted.
The wifi is working fine now.
I tried to install the module you wrote, and I didn’t receive an error when copying the file in the last step, but I tried to compile it from Kubuntu 14.04 on my Yoga, I realized that it didn’t have the gcc compiler installed. It was a fresh installation from a few minutes before, after trying to fix the problem from a live usb. So I compiled the source file on another machine running Kubuntu 14.04, and had the compiler. I then moved the files with a usb drive. Would this affect anything?
Also, I’d like to know if this will also fix the problem in Windows, because I unfortunately need to use it for certain classes in college. My Yoga 2 13 is currently dual booted with Kubuntu 14.04 and Windows 8.1
Thanks!
It’s safe to assume that if the kernel module is loaded, it’s running properly (at least in this case). So if it works, it works.
As far as I know, there is no problem with Wifi in Windows. And even if there is, I wouldn’t know, because I never ran Windows on my laptop. :)
Hi
I tried to install the driver from your zip file.
But after that also my ideapad connect to wifi and continously fluctuating after every 5 to 10 minutes.
Details of Ideapad
Lenovo yoga 2 13
Model 20344
Os :- Ubuntu 14.04 LTS (64 bit)
kernel :- 3.13.0-24-generic
Can you please suggest solution for this.
Thanks in advance
Thank you very much!!! I was in deadlock till the time I didn’t find your post. After which it only took 10 mins to solve the problem. You are awesome Eli!!!
Thank you very much for sharing this. It’s the easiest solution I’ve seen, and it works well.
Hi, Same results than Bryce.
I followed everything, everything steps were ok… but wifi is still hard blocked…
And as Bryce, I did a dualboot from w8.1 (the wifi ran fine before installing ubuntu) but now I don’t have any wifi at all in ubuntu and windows ! I’m really blocked right now and I don’t know what to do, your solutions was the most complete I have seen and it doesn’t work for me :-(
Hi again,
The reason why your protocol doesn’t work for me is because we don’t have the same wifi card… you have the intel one, and I have the realtek one… If you have a look on the lenovo website, you will see that this yoga 2 can have an intel or a realtek wifi card…
Do you have any idea to figure out how I could do similar things with the realtek driver ? Thanks a lot….
Hmmm… Obviously, I can’t say much about Realtek cards. Looks like you’ll have to solve your problem from scratch — maybe the guidelines above help a bit.
And frankly speaking, I just published my own experiences, and have no particular motivation to deal with other problems that may be related.
Tried with Yoga Pro 2 13″, works as charm!
The Wi-Fi, though, is awful (both in Win and Linux) – it disconnects and sometimes doesn’t find my network at all.
Will this persist across kernel upgrades, or does this need to be re-applied every time a new kernel comes along?
P.S. Wifi seems quite stable on my Yoga 2 under Ubuntu 14.04. I have the Intel card. Thanks again.
This needs to be re-applied each time the kernel is upgraded.
I’ve bought the same laptop as yours 3 days ago.
I am a basis Linux user and tried to boot ubuntu from a live usb.
At the moment the Wifi card is disabled as well.
I am not an expierenced linux user, and try to solve this problem by your download script.
Could you tell step by step what to do, like:
1. download the file.
2. Typ $maken into the terminal
3. press enter
I am very disapointed at the moment and hope there is a more easy solution. Thanks in advance.
I was literally on the verge of a full mental breakdown before finding this, fixed both windows and linux wifi problems. I am ever so grateful for people like you figuring out how to control the evil computer faeries who ruin my wifi. You can pat yourself on the back for preventing a potential suicide. :)
Hi Eli
Thanks so much for this solution! I have to admit to using the binary version due to time constraints and a new baby in the house but it worked like a charm.
Cheers
Andy
You Sir are an absolute star! Thank you for this explanation and fix!
with my wifi down, I found a handy side door in the form of Tethering my smartphone to serve up the wifi through USB.
Hi,
I recently got a yoga pro 2. For few days I could get the Internet connection through wi fi. However, now I am not able to connect. I have updated all the drivers as well. The irony is I am able to connect through Ethernet. Could you please help in solving the issue.
Thanks and Regards
Uma
What do you mean by “…Or the next insmod/modprobe…” ?? How do I achieve this?
rmmod ideapad-laptop
modprobe ideapad-laptop
Hi.
In the last part of the installing driver, It gives me this:
cp: cannot stat `ideapad-laptop.ko`: No such file or directory.
But I am sure it exist, there. What can I do?
THANKS !!!!
I’m not an informatician, it too me quite a long time, but it was clear and efficient.
Worked for me. Ubuntu 14.04 Desktop 64-bit on Lenovo Yoga 2.
I am still not getting it. my LAN works fine, but can’t get wlan working. can someone please explain step by step how I get wireless working on my Mint 17 for yoga 2 pro.
Thanks so much! It worked out all perfectly!!!
After days off trying to fix my Wlan hardwareblocked = yes on my yoga 2 11 with wubi running, I found your blog entry! 10 minutes later it worked! Now I can start my bachelor thesis!
INSANE!
Greetings,
Dominik
for windows, you can use the .bat file provided by Lenovo. See this thread:
https://forums.lenovo.com/t5/Idea-Windows-based-Tablets-and/Yoga-2-13-wifi-hard-blocked/td-p/1685805/page/2
None of the solutions found online worked for me until I switched from Ubuntu 14.04 to 14.10. It worked without any modifications after that, and has been reliable for the last 3 weeks.
Hi guys,
could you please share some info about the energy autonomy of Lenovo Yoga 2 13″ and Lenovo Yoga 2 Pro under Linux? How many hours are you able to use the laptop with a single battery charge?
Thank you very much!
Hi Eli,
just to say you really big thanks,
works perfectly and nice job for the community!
kenavo ;)
if it can help, i updated the linux kernel to 3.18 under ubuntu 14.04 and it’s working !
Eli,
Great article! As a new Ubuntu user it was super easy to follow and fix my wifi issue. Much appreciated!
As of late December 2014, the update manager of Linux Mint (View->Linux kernels) allows directly and conveniently to upgrade to kernel 3.16.0-some which solves the issue as well.
For anyone still struggling with the Realtek driver, the combination working for me is 96CN29WW (V1.15) (Nov 2014) BIOS, 3.16 Kernal, Ubuntu 14.10, and then running make && make install on this repo of driver updates https://github.com/lwfinger/rtlwifi_new . Good luck!
I don’t understand. These files don’t actually exist?
thanks #39
Written By Andy on December 30th, 2014 @ 16:44
I was starting to despair, your hint fixed my wifi!
happy 2015 to all!
andrea
Hola también tengo una Yoga 13 mi wifi lo detecto bien, también mi tarjeta de video hd 4000 pero lo malo es que no se activan los efectos gráficos de las ventanas o el cubito, revise en todo lado y la única explicación es que lo efectos de compiz no los trabaja mi tarjeta de vídeo ….como hago eso ???
I can’t find the file that needs to be modified, I was looking for “ideapad-laptop.c” but I can’t see it anywhere. Can someone please help me with the complete path to locating this file so I can open it and make changes.
Thank you
Works, thanks!
Thanks!!!
Fixed wifi on Lenovo Yoga 2 Pro + fresh install of openSUSE 13.2 64bit.
Just bought this laptop for my son. Same problem. Why does nt the company fix it instead of Eli having to do this. Have nt tried yet. Might just take back to the shop.
Depends on who “the company is”: If you referred to Lenovo, well, they supplied the laptop with almighty Windows 8. Why would anyone want to use anything else?…
As for Linux, this issue has been resolved in recent kernels. Someone said in a comment above that Wifi works without this fix on Ubuntu 14.10.
first of all thanks dear your information is authentic so now my wifi working well again thanks !
regards
Dave Gill
Thanks man, you are a life saver
This solution is too complex to implement and therefore impossible for any real-world user.
The real solution?
Abandon linux, go back to Windows. Wifi works on Windows. Wifi just doesn’t work on linux.
I have Yoga 2 Pro with windows 8.1. Wifi was working fine till last week. All of a sudden after few windows update, WIFI is not working. Network adapter is not showing in the Device Manager.
Could you please anyone help to solve this issue? I have tried resetting to factory defaults, loading retail Windows8.1, updating new drivers. Nothing working.
It would be great if someone can help in this.
thanks! After figuring out how it works it was a very helpful hint. When i create USB install media i always add persistent space to include your modified modules. No i am able to boot a live session, fix the missing wifi and finally install ubuntu or elementary while i am connected to the internet.
i did the same, i got this error. Please help me.. I am new to UBUNTU. Thanks
make -C /lib/modules/3.16.0-30-generic/build SUBDIRS= /home/vickybaba/Documents/yoga-wifi-fix modules
make: Entering directory `/usr/src/linux-headers-3.16.0-30-generic’
arch/x86/Makefile:136: CONFIG_X86_X32 enabled but no binutils support
Makefile:652: Cannot use CONFIG_CC_STACKPROTECTOR_REGULAR: -fstack-protector not supported by compiler
HOSTCC scripts/basic/fixdep
scripts/basic/fixdep.c:462:1: fatal error: opening dependency file scripts/basic/.fixdep.d: Permission denied
}
^
compilation terminated.
make[2]: *** [scripts/basic/fixdep] Error 1
make[1]: *** [scripts_basic] Error 2
make: Nothing to be done for `/home/vickybaba/Documents/yoga-wifi-fix’.
make[1]: *** No rule to make target `arch/x86/syscalls/syscall_32.tbl’, needed by `arch/x86/syscalls/../include/generated/asm/syscalls_32.h’. Stop.
make: *** [archheaders] Error 2
make: Leaving directory `/usr/src/linux-headers-3.16.0-30-generic’
I was using this fix for about 4 months and it was the only thing out there that worked. Recently, I reformatted my laptop and upgraded to 14.10, and there was no longer a hardware block for the WIFI. Anyone who wants a permanent fix (as far as I can tell) should try the dist-upgrade and see what happens.
Thanks!
I just loaded Mint on my Yoga 2 Pro and could not make the wifi work until I came across your blog. This worked great for me right off the bat. Thank you very much! Lifesaver!
Mint 17.1 Rebecca, kernel 13.3.0-37
Everything works out of the box with Ubuntu 15.04, everything. All the Function buttons, webcam, internal mic, SD reader, Bluetooth, Wi-Fi, touch screen, touch pad, …
It’s working! Thanks :)
Oh man, I just lost 3 hours tinkering with this until I found your Post! Many many thanks for the details and the solution provided. (I’m no linux pro, that was very helpful with the pre-configured file)
Saved my life as the Yoga has no ethernet port.
hello .. you have given me valuable information but need a little more of your help .. in my case I have a Miix 2 i5 lenovo .. I’m new and do not know how to modify the kernel to turn off the airplane mode ..
$ rfkill list
0: ideapad_wlan: Wireless LAN
Soft blocked: no
Hard blocked: yes
1: ideapad_bluetooth: Bluetooth
Soft blocked: no
Hard blocked: yes
2: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
5: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
$ sudo cat /sys/kernel/debug/ideapad/cfg
cfg: 0x007D0002
Capability: Bluetooth Wireless Camera
Graphic:
$sudo cat /sys/kernel/debug/ideapad/status
Backlight max: 16
Backlight now: 16
BL power value: On
=====================
Radio status: Off(0)
Wifi status: On(1)
BT status: On(1)
3G status: Off(0)
=====================
Touchpad status:Off(0)
Camera status: Off(0)
$ cat /etc/*-release
ISTRIB_ID=Ubuntu
DISTRIB_RELEASE=15.04
DISTRIB_CODENAME=vivid
DISTRIB_DESCRIPTION=”Ubuntu 15.04″
NAME=”Ubuntu”
$ uname -mrs
Linux 3.19.0-15-generic x86_64
Please can you teach me how and what I have to modify the kernet to work Wifi, 3G, touchpad, camera
MY LENOVO YOGA 2-13 KEYBOARD IS BLOCKED
Hi friend…
Thanks for ur nice solution…everything was going fine but at last, i am facing problem as it displays..
cp: cannot stat ‘ideapad-laptop.ko’ : No such file or directory
Pls help.
OMFG THANK YOU!
I am a skilled professional Linux admin and I’ve been banging my head against this for hours. Thank you for posting this and the patch as well, you’ve saved my bacon.
– R
Thank you so much for helping. I spend 1 full day experimenting with ask-Ubuntu and other. Could not make it working. With your simple and clear explanation I could fix Wi-Fi issue in 10 minutes.
I have Lenovo Yoga 3.
Cheers Eli.
This solution work for my Lenovo G50-80 with Intel 3160 AC wifi card, kernel 3.19.0-31, running elementary OS Freya.
Thanks Eli.
hello!
can you help me get the internal wifi to work on my lenovo yoga 700-14isk running kali 2.0?
Intel® Dual Band Wireless-AC 7265
thanks!
Are you a wizard?
I have the same Yoga 2 13″ non-pro and I purchased and installed the Intel Dual Band Wireless-AC 7260. It wouldn’t go past POST. It complains I have unsupported hardware. I may have newer BIOS and they have blacklist this card. Is there a work around fix for this?
I imagine you don’t check this anymore, but I’m having the same issue. I’m just confused where you say:
” It consists of making the following changes in drivers/platform/x86/ideapad-laptop.c”
I can’t find that file or that path anywhere on my machine, except for the one in red (/lib/modules/3.13.0-32-generic/kernel/drivers/platform/x86/) but those are all .ko files, not .c, so I’m really confused. Are we supposed to create the .c file? They way to describe it makes me think it’s supposed to be there already.
I would really appreciate if someone (especially the OP) could help clarify this very vague guide.
The said file is part of the Linux kernel’s sources. They aren’t installed by default on most distributions.
So you need to obtain the sources (probably with an apt-get or yum install), make the change, and then have the module compiled. That’s not necessarily trivial without any experience in kernel hacking or compilation.
On ubuntu 1604 the after the make command I get the following error: ” error: implicit declaration of function ‘acpi_video_backlight_support’ [- Werror=implicit-function-declaration]”
What can i do to bypass this situation? Thank you!
Actually, I don’t think you need to fix anything on Ubuntu 1.04.
Anyhow, it sounds like you went for the “lazy fix” and it didn’t work on a more updated kernel. So you’ll have to go through the manual procedure, if necessary.
I’m having the same problem but running tails from a usb drive. Is this a solution that could run like a script and I could just run it every time I start a session?
Hello,
You could compile the kernel module once on the target system, and then write a small script that removes the module and then does an insmod on the updated one.
But I doubt there’s something written already. This was a very transient problem, as later kernels fixed the original driver.
Hello,
Just wanted to say thanks for this post. It totally fixed the wifi under my CentOS 7 install on my Lenovo Yoga 2 13
Thanks!!
Try this command, it works for me.
sudo modprobe -r ideapad_laptop
Thanks for this great guide. It really helped me. I installed Linux Mint 18.1 on a Lenovo Y520 and had the same problem. The kernel is 4.4.0-53-generic.
I fist looked for kernel sources with
sudo apt-cache search linux-source
and then loaded the 4.4.0 sources with
sudo apt-get install linux-source-4.4.0
There I found the ideapad-laptop.c file under /usr/src/linux-source-4.4.0 in the only archive in this directory.
I located the function “static const struct dmi_system_id no_hw_rfkill_list” and extended the structure of laptops that do not have a kill switch as such:
{
.ident = “Lenovo Y520-15IKBN”,
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, “LENOVO”),
DMI_MATCH(DMI_PRODUCT_VERSION, “Lenovo Y520-15IKBN”),
},
},
I had previously obtained the id of my laptop with
sudo dmidecode | grep “Version: Lenovo”
Then I used your makefile and followed your instructions.
Thanks again
Reinhard
Thanks a lot for the blog. But this command works for me too.
sudo modprobe -r ideapad_laptop
Thank you my friend, it was really helpful!!!
It sounds like the problem I am having… well, one of the problems. The other problem is that I don’t understand most of what you said. :)
verry good bro
Nice Blog ! I have found here lots of interesting information for my knowledge I need. all the details you provide to us, it was very helpful and useful, thanks for sharing this amazing post.
I have the exact same problem with an Thinkpad x230.
Is there a solution for it too? I have no ideapad module
Hey.
Could someone reup or repost the link to the .bat file for the windows solution?
Looks like it doesn’t exist anymore on the lenovo forums:
.bat file provided by Lenovo:
https://forums.lenovo.com/t5/Idea-Windows-based-Tablets-and/Yoga-2-13-wifi-hard-blocked/td-p/1685805/page/2
Thank you guys!