无线硬块

我有一个联想瑜伽2 11“与Ubuntu 13.10(x64)。我的wifi只有一个小问题。(蓝牙正在工作)

我试过了:

sudo 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 3: hci0: bluetooth Soft blocked: no Hard blocked: no 

下一个:

 sudo rfkill unblock all sudo rfkill unblock number 

他们只使用软块…我的硬块仍然是“是”。

我的瑜伽没有硬件按钮。 我试过bios中的设置,但没有工作。

如果有人有任何其他解决方案,我将非常感激。

所以,听起来你的IdeaPad Yoga 2就像我的方式一样半砖砌rfkill。 我只是弄清楚如何使用以下方法修复它:

rfkill由嵌入式EC控制,由ideapad-laptop模块驱动。 这个模块调整了瑜伽2上的一些错误位,但幸好不是永久性地破坏东西的方式。

EC将自身呈现为ACPI平台设备,具有枚举命令和属性读写方法。 如果你在本地linux源代码树中查看ideapad-laptop.c,结构就相当明显了。

有3位感兴趣:VPCCMD_W_RF:一般打开/关闭RF设备? 这个很有意思,因为它没有用在ideapad_laptop.c中,而是它的逆VPCCMD_R_RF -is-。 VPCCMD_W_BT:打开/关闭蓝牙设备。 VPCCMD_W_WIFI:打开/关闭Wi-Fi。

对于这些命令中的每一个,向它们发送1将打开它们的function,0将它们关闭。 我怀疑W_RF在瑜伽上实际上是无function的。 ideapad-laptop驱动程序将看到它的设置,并打开BT和WIFI设备的持久性 rfkill标志。

我通过编译ideapad-laptop.c驱动程序的本地版本来修复此问题,该驱动程序尽快执行以下命令,然后使模块中止:

 write_ec_cmd(ideapad_handle, VPCCMD_W_RF, 1); write_ec_cmd(ideapad_handle, VPCCMD_W_BT, 1); write_ec_cmd(ideapad_handle, VPCCMD_W_WIFI, 1); 

之后,我确保将ideapad-laptop模块与黑名单ideapad-laptop选项保存在/etc/modprobe.d/whatever.conf中的文件中。

从那以后我一直很好。

不幸的是,ideapad-laptop模块已从一个内核版本更改为另一个内核版本,所以我不能只为完整的源文件转储构建的模块,但如果您在该文件中搜索write_ec_cmd字符串,并使用该文件构建您自己的副本像https://www.kernel.org/doc/Documentation/kbuild/modules.txt那样用于构建外部模块的说明,你可以没问题。

您可能希望将其放在其中一个debugfs文件中,以便您可以通过捕获debugfs文件来运行它,然后在意外命中rfkill按钮之前卸载该模块。

然后你应该能够rfkill列表,看到你自己畅通无阻!

有几件事要尝试

  • echo "blacklist ideapad_laptop" | sudo tee /etc/modprobe.d/ideapad.conf echo "blacklist ideapad_laptop" | sudo tee /etc/modprobe.d/ideapad.conf禁用Lenovo驱动程序模块 ,或
  • 重置BIOS :

    点击F2进入BIOS,然后按F9重置,然后按F10保存并退出。 你的无线应该在那时工作。

BIOS更新可用解决了它。