如何永久关闭无线电源管理

Lin*_*eak 53 linux wifi power-management

在 Linux Mint 17.3 / 18 中iwconfig说我的无线网卡的电源管理已打开。我想永久关闭它或解决此问题。

sudo iwconfig wlan0 power off 工作,直到我重新启动笔记本电脑。

另外,如果我随机检查iwconfig,有时它会打开,尽管我确实运行了这个命令。

我阅读了一些关于使修复永久化的文章。它们都包含第一步“转到目录/etc/pm/power.d”,在我的情况下不存在。

我按照以下步骤操作:

sudo mkdir -p /etc/pm/power.d
sudo nano /etc/pm/power.d/wireless_power_management_off
Run Code Online (Sandbox Code Playgroud)

我在文件中输入了这两行:

#!/bin/bash

/sbin/iwconfig wlan0 power off
Run Code Online (Sandbox Code Playgroud)

我完成了设置适当的用户权限:

sudo chmod 700 /etc/pm/power.d/wireless_power_management_off
Run Code Online (Sandbox Code Playgroud)

但是重新启动后,电源管理又重新打开了。

iwconfig 手动关闭电源管理后

eth0      no wireless extensions.

wlan0     IEEE 802.11abgn  ESSID:"SSID"  
          Mode:Managed  Frequency:2.462 GHz  Access Point: 00:00:00:00:00:00   
          Bit Rate=24 Mb/s   Tx-Power=22 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=42/70  Signal level=-68 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:2  Invalid misc:18   Missed beacon:0

lo        no wireless extensions.
Run Code Online (Sandbox Code Playgroud)

我不认为这个问题只适用于 Linux Mint,它是特定无线适配器的普遍问题。

小智 92

用你最喜欢的文本编辑器打开这个文件,我nano在这里使用:

sudo nano /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf
Run Code Online (Sandbox Code Playgroud)

默认情况下有:

sudo nano /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf
Run Code Online (Sandbox Code Playgroud)

将值更改为2。重新启动以使更改生效。


wifi.powersave字段的可能值为:

[connection]
wifi.powersave = 3
Run Code Online (Sandbox Code Playgroud)

(这些值的GitHub 上的非正式来源。)

  • 您无需重新启动计算机。重新启动 NetworkManager 服务就足够了。如果您的系统使用 systemd:`systemctl restart NetworkManager` (8认同)
  • 只是想在这里添加一条注释:我认为这不起作用,但后来意识到我总是将计算机置于“挂起”状态而不是重新启动。挂起不会重新启动 NetworkManager 服务,但当您从挂起恢复时,它会将省电设置为默认值。因此@Governa 建议的手动服务重启是必要的。 (3认同)

Lin*_*eak 8

在启动时关闭无线电源管理是不够的。

可能有钩子,就像我拔掉电源适配器一样。

因此,可能的解决方案之一如下;一步步。

创建一个目录,您希望在其中存储文件,如果还没有用于所有脚本的目录,我个人希望将其放在/etc/pm/

sudo mkdir -p /etc/pm/power.d
Run Code Online (Sandbox Code Playgroud)

创建(你喜欢的任何地方)一个脚本,命名它是合理的,对我来说是:

sudo nano /etc/pm/power.d/wireless_power_management_off
Run Code Online (Sandbox Code Playgroud)

我使用nano,但使用任何东西,例如,如果您想以图形方式创建文件,例如。与gedit(LM17) 或xed(LM18):

gksudo gedit /etc/pm/power.d/wireless_power_management_off
gksudo xed /etc/pm/power.d/wireless_power_management_off
Run Code Online (Sandbox Code Playgroud)

在文件中输入以下内容:

#!/bin/bash

/sbin/iwconfig wlan0 power off
Run Code Online (Sandbox Code Playgroud)

保存文件。

文件的所有者应该是root,如果您在某处以普通用户身份创建了该文件,请转到它所在的文件夹并使用以下命令修复它:

sudo chown root:root wireless_power_management_off
Run Code Online (Sandbox Code Playgroud)

接下来,您需要rwx为所有者设置适当的文件权限:

sudo chmod 700 wireless_power_management_off
Run Code Online (Sandbox Code Playgroud)

最后,我们将使用 CRON 每分钟执行一次脚本;肮脏但工作

sudo crontab -e
Run Code Online (Sandbox Code Playgroud)

如果您以前从未编辑crontab过,它会询问您希望使用什么编辑器,这完全取决于您。

将此粘贴到文件末尾:

*/1 * * * * /etc/pm/power.d/wireless_power_management_off
Run Code Online (Sandbox Code Playgroud)

稍等片刻,然后您可以检查电源管理是否关闭:

iwconfig wlan0 | grep "Power Management"
Run Code Online (Sandbox Code Playgroud)

示例输出:

Power Management:off
Run Code Online (Sandbox Code Playgroud)

即使有什么东西触发了电源管理,它也只会持续一分钟。完毕。


Vla*_*tka 5

TLP - Linux 高级电源管理工具在 Ubuntu 18.04 和 20.04 上开箱即用。

> grep WIFI /etc/default/tlp 
WIFI_PWR_ON_AC=off
WIFI_PWR_ON_BAT=off

> iw dev wlan0 get power_save
Power save: off
Run Code Online (Sandbox Code Playgroud)

FWIW。Ansible 角色可用于在 Ubuntu 中配置 TLP。