困扰了本人许久的wifi问题终于解决,因此记录一下
1. ASUS F552CL (本人所用的解决方法)
先给出自己最后的解决方法,在这里找到的方法,即在终端运行如下命令(修改asus_nb_wmi.conf):(坐等高人解释原因)
echo “options asus_nb_wmi wapf=1” | sudo tee /etc/modprobe.d/asus_nb_wmi.conf
2. 安装无线网卡驱动
打开Software Updates –> Additional drivers, 让其扫描,看能不能扫到无线网卡驱动。我是压根没找到,如下图:
Software_Updates
3. rfkill unblock
rfkill命令简单见附录,用rfkill list命令查看网络状况,我机器得到的结果如下:
qiankun@laptop:~$ rfkill list all
0: asus–wlan: Wireless LAN
Soft blocked: no
Hard blocked: no
1: asus–bluetooth: Bluetooth
Soft blocked: no
Hard blocked: no
2: phy0: Wireless LAN
Soft blocked: no
Hard blocked: yes
可见,phy0是hard blocked(表示不能用软件reactive),用命令rfkill unblock all没有什么反应。如果是soft blocked,用rfkill unblock all应该是有效的。
4. 更新BIOS
网上也有说更新完BIOS就解决问题的,但我的就没解决。ASUS在http://support.asus.com/根据自己的型号下载新的BIOS。重启,按F2进入BIOS,Advanced,Start Easy Flash,选择新的BIOS,确定就可以了。详细教程可以看这里。
5. 删除rfkill
还有人说删除rfkill,我删完重启后,又有rfkill又回来了,还是没解决问题。
sudo rm /dev/rfkill && sudo reboot
附:rfkill简介
RFKill is a subsystem in the Linux kernel that provides an interface through which radio transmitters in a computer system can be queried, activated, and deactivated. When transmitters are deactivated, they can be placed in a state where software can reactive them (a soft block) or where software cannot reactive them (a hard block).
The RFKill core provides the application programming interface (API) for the subsystem. Kernel drivers that have been designed to support RFkill use this API to register with the kernel, and include methods for enabling and disabling the device. Additionally, the RFKill core provides notifications that user applications can interpret and ways for user applications to query transmitter states.
原文:http://sparkandshine.net/ubuntu-enable-wifi-problem-solving-14-04-asus-f552cl/