如何防止打开iwconfig电源管理?


37

我受到以下bug的影响:869502

一种似乎可以阻止内核崩溃的解决方法是禁用wlan0电源管理:

sudo iwconfig wlan0 power off

但是,当我拔下电源线时,它似乎会自动重新打开电源管理,我想在其他很多时候也是如此。

是否有可能导致这种情况?有谁知道我可以预防吗?



1
7年,而且还在继续。这是错误还是功能?
Ufos

Answers:


25

无线电源管理通过钩子来运行pm-utils。您可以通过以下任意一种方式将其关闭:

在中创建文件/etc/pm/config.d。我已将其命名为黑名单:

gksu gedit /etc/pm/config.d/blacklist

在文件内部保留:

HOOK_BLACKLIST="wireless"

如果要禁用任何其他挂钩,则默认挂钩位于/usr/lib/pm-utils/power.d/

要么

您可以只在/etc/pm/sleep.d或中创建一个空钩子/etc/pm/power.d。看看哪一种适合您。即

做就是了

sudo touch /etc/pm/sleep.d/wireless

要么

sudo touch /etc/pm/power.d/wireless

我用第一种方法。工作正常 谢谢!
亚历克斯(Alex)

2
这些方法都不适合我。
MihaiCapotă2012年

1
我们可以chmod -x /usr/lib/pm-utils/power.d/wireless代替吗?
Emad Arshad Alam

23

输入iwconfig并查看输出。您应该看到芯片组的名称以及电源管理是关闭还是打开。如果不说,可能是关闭了。

要关闭电源管理,请转到/etc/NetworkManager/conf.d/default-wifi-powersave-on.conf,您将看到

[connection]
wifi.powersave = 3

将更3改为,2然后重新启动。

然后运行iwconfig,如果它起作用,您应该会看到Power Management:off

来源:https//sites.google.com/site/easylinuxtipsproject/internet


这似乎关闭了我的电源管理!
user3273814

这似乎也是正确的方法
-Ufos

这在Ubuntu 17.10上对我有用。似乎比其他方法(例如,列入黑名单)更直接,更容易逆转。
josephwb

22

如果关闭无线接口的电源管理可加快互联网速度,例如:

sudo iwconfig wlan0 power off

比使其成为永久运行命令如下:

  1. cd /etc/pm/power.d

  2. sudo gedit wifi_pwr_off

    这将打开一个空文件,将以下代码复制到其中:

    #!/bin/sh 
    /sbin/iwconfig wlan0 power off
    
  3. 保存文件,记住要

    sudo chmod +x wifi_pwr_off
    

    然后重新启动。


2
当我写时,sudo iwconfig wlan0 power off我收到此消息:无线请求“设置电源管理”(8B2C)错误:设备wlan0上的SET失败;无此设备。
Murhaf Sousli 2014年

3
在没有任何麻烦的情况下运行iwconfig sudo iwconfig并检查哪个接口具有无线扩展。有时候是eth1
Dilawar 2014年

6

我的首选方法是在/etc/network/interfaces无线接口的设置中添加以下行:

post-up iwconfig wlan0 power off

这是一个完整的示例:

auto wlan0
iface wlan0 inet static
 address 192.168.1.2
 network 192.168.1.0
 netmask 255.255.255.0
 broadcast 192.168.1.255
 gateway 192.168.1.254
 post-up iwconfig wlan0 power off
 wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

请注意,man interfaces这种行为post-up将来可能会改变。


此解决方案比编写关闭电源脚本要好得多。断电之前涉及睡眠的解决方案是,如果客户端在睡眠到期之前未能关联,即使网络在范围内,wlan0也会保持关闭状态。
MerlinTheMagic

此选项在Raspbian Stretch上像吊饰一样工作。对我来说是更好的选择。
Jagoliveira

3

由于某种原因,最受好评的解决方案对我不起作用,并且电源管理功能继续打开。我最终做了以下工作:

sudo gedit /etc/rc.local

并在前面添加以下行exit 0

( sleep 30 && iwconfig wlan0 power off )&

登录后30秒关闭电源管理...

编辑:其实这还不够。我一直在尝试很多东西,包括https://askubuntu.com/a/614245,我认为这解决了我的问题(希望如此)。


3

另一种方法是wireless-power/etc/network/interfaces配置文件中添加一个显式指令()以控制电源管理(例如,使用DHCP对wlan0禁用它):

auto wlan0
iface wlan0 inet dhcp     
  wireless-power off

1

很好的建议。'sudo iwconfig wlan0 power off'似乎是使我的ath9k模块稳定工作的唯一方法(对于内核3.2-奇怪的是,在内核> 3.5中似乎没有问题,但是该内核由于其与RAM /磁盘的挂起问题而存在)不幸的是,amd64似乎是行不通的。


1

更好的方法(至少在Ubuntu 16.04上)是/etc/network/if-up.d/wifi-powerman-off使用以下内容创建:

#!/bin/sh

IWCONFIG=/sbin/iwconfig
WLAN_IFACE=<your wireless device here>

if [ ! -x $IWCONFIG ]; then
    exit 1
fi

if [ "$IFACE" = $WLAN_IFACE ]; then
    $IWCONFIG $IFACE power off
fi

并将其设置为可执行文件。下次连接网络时,电源管理将关闭。

这与NetworkManager配合良好。


我希望这行得通。我希望,我希望,我希望!!!厌倦了Linux在任意时间扔我的wifi连接。/ rant Ubuntu 16.04在这里有一些重大问题/ endant
RyanNerd

不,没有用。英特尔7260简直就是废话!我已经放弃了。
RyanNerd

1

如果使用laptop-mode-tools,则可以通过编辑/etc/laptop-mode/conf.d/wireless-iwl-power.conf(Ubuntu 14.04)禁用无线电源管理:

# Control Intel IWL wireless power?
# Set to 0 to disable
CONTROL_IWL_POWER=0

0

我创建了以下systemd服务,以在重启后永久终止 WiFi上的电源管理。经过测试并已知可以工作。只需将以下bash脚本粘贴到一个文件中,chmod 700该文件和sudo ./yourFileName.sh

if [ -d /root/scripts ]; then
    mkdir /root/scripts
fi

apt-get -y install iw
apt-get -y install wireless-tools

cat <<EOF> /root/scripts/pwr-mgmnt-wifi-disable.sh
#!/bin/bash
iw dev wlan0 set power_save off
EOF

chmod 700 /root/scripts/pwr-mgmnt-wifi-disable.sh


cat <<EOF> /etc/systemd/system//pwr-mgmnt-wifi-disable.service
[Unit]
Description=Disable WiFi Power Management
Requires=network-online.target
After=hostapd.service

[Service]
User=root
Group=root
Type=oneshot
ExecStart=/root/scripts/pwr-mgmnt-wifi-disable.sh

[Install]
WantedBy=multi-user.target

EOF

chmod 644 /etc/systemd/system/pwr-mgmnt-wifi-disable.service

systemctl enable pwr-mgmnt-wifi-disable.service
systemctl start pwr-mgmnt-wifi-disable.service
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.