从休眠状态恢复时,Wi-Fi 丢失。
无法从 appindicator 或 >setting >Network 打开 Wi-Fi。
通过热键(Fn+ F2)打开/关闭也是没用的。
我必须先暂停,然后从暂停状态恢复,然后 Wi-Fi 才能再次工作。
我的平台:Ubuntu 14.04 LTS。
如何解决wifi从休眠恢复后仍然自然工作(无需干预)的问题。
按照威廉姆森的指示,
sudo gedit /etc/pm/power.d/wireless
,无线”文件不是空白的,它显示:
#!/bin/sh
# tlp - if tlp is enabled, override corresponding script
# in /usr/lib*/pm-utils/power.d/
CONFFILE=/etc/default/tlp LIBDIRS='/usr/lib /usr/lib64'
for d in ${LIBDIRS}; do
if [ -d "${d}/pm-utils/power.d" ]; then
blocked="${d}/pm-utils/power.d/${0##*/}"
break
fi done
if [ -n "$blocked" ] && [ -x "$blocked" ]; then
# else nothing to disable -> don't read $CONFFILE
if [ -e "$CONFFILE" ] && . "$CONFFILE" -- && [ "$TLP_ENABLE" = '1' ]; then
# TLP is enabled -> disable $blocked
echo "Notice: '${blocked}' disabled by TLP."
else
exec "$blocked" $*
fi fi
exit 0
答案1
打开终端并输入以下命令;我们需要查看该卡上是否启用了电源管理。
iwconfig wlan0
通过运行此代码,我们应该看到类似这样的输出:
jayadmin@jayadmin-OptiPlex-GX280:~$ iwconfig wlan0
wlan0 IEEE 802.11bgn ESSID:"MU WiFi"
Mode:Managed Frequency:2.412 GHz Access Point: 18:33:9D:C6:76:72
Bit Rate=65 Mb/s Tx-Power=20 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Power Management:off
Link Quality=40/70 Signal level=-70 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:18 Invalid misc:80 Missed beacon:0
如果电源管理处于打开状态,则运行以下命令(您需要 SU 权限才能执行此操作,因此需要使用“sudo”命令):
sudo iwconfig wlan0 power off
您必须在此命令后输入您的密码;如果没有“sudo”,您可能没有用户权限来运行它。
要使此设置永久生效,您必须添加/创建一个系统文件,以防止 Ubuntu 在重启后使用 PM。为此,请打开终端(如果您已将其关闭)并输入以下命令:
sudo gedit /etc/pm/power.d/wireless
这将打开一个带有空白文件的文本编辑器。将以下行插入到文件中:
#!/bin/sh
/sbin/iwconfig wlan0 power off
现在,保存文件并关闭 gedit 和终端窗口。即使重启后 PM 也应该被禁用。
听起来 Ubuntu 和您的特定显卡在休眠后恢复电源管理方面存在问题。我的笔记本电脑也遇到过同样的问题,我禁用了 PM,问题就解决了。
我知道这不是您想要的“自然工作”非命令行干预,但它应该可以解决您的问题。有时您必须使用终端来解决奇怪的问题。
附加信息
@常绿
您的无线文件中提到的 TLP 是 Ubuntu 中的高级电源管理实用程序。这可能是您的无线网卡无法正常工作的问题;您的 wifi 卡可能不完全兼容。
在终端中运行此代码(如果有效的话,这应该是一个永久修复):
sudo gedit /etc/default/tlp
在该文件中,搜索以下两行。它们应该在一起:
WIFI_PWR_ON_AC=5
WIFI_PWR_ON_BAT=5
请注意,如果我没记错的话。1是已禁用, 尽管5是已启用. 更改5在两行中1然后保存文件并exit
退出终端。
为了安全起见,请重新启动计算机以确保更改在您的系统上生效。如果不替换这两行,您更改 wifi PM 设置所做的任何其他操作都将被 TLP 脚本阻止。
我希望这能有所帮助。我今晚剩下的时间都不在我的 Ubuntu 机器旁,所以如果这没有帮助,那么我下次尝试解决这个问题将会被推迟几个小时。你可以完全用我的第一个答案中的文本替换 /etc/pm/power.d/wireless 中找到的文本,但它将不会除非文件中的此设置tlp
被改变,否则它将正常工作。
答案2
我一直遇到同样的问题,最后找到了一个完整的解决方案,如下所示:
Ctrl按+ Alt+进入终端T
打开一个新
.txt
文件来写入新命令。(您可以更改文件名,但仍必须以此开头,99-
因为系统按字母顺序工作,我们需要这是最后一个:sudo nano /etc/pm/sleep.d/99_synclient`
将以下行粘贴到空
.txt
文件中:#!/bin/bash case "$1" in suspend|hibernate) ;; resume|thaw) sudo -u <USERNAME> env DISPLAY=:0 service network-manager restart ;; *) exit $NA ;; esac
请将以上内容替换为您的用户名,不带<>
使文件可执行:
sudo chmod +x /etc/pm/sleep.d/99_synclient
如果您之前已经更改过名称,请不要忘记更改。
您已完成!休眠后,您的 WiFi 应该可以正常工作。
答案3
我会跑
sudo service network-manager restart
sudo
使其成为超级用户或 root,因此您可以运行它。service
运行脚本,删除大多数环境变量并将目录设置为/
。network-manager
告诉它我们想要的服务,然后restart
停止并启动该过程。