95

In Linux Mint 17.3 / 18 iwconfig says the power management of my wireless card is turned on. I want to turn it off permanently or some workaround on this issue.

sudo iwconfig wlan0 power off works, until I reboot the laptop.

Also, if I randomly check iwconfig, sometimes it's on, despite I did run this command.

I read some articles about making the fix permanent. All of them contained the first step "Go to directory /etc/pm/power.d", which in my case did not exist.

I followed these steps:

sudo mkdir -p /etc/pm/power.d
sudo nano /etc/pm/power.d/wireless_power_management_off

I entered these two lines into the file:

#!/bin/bash

/sbin/iwconfig wlan0 power off

And I finished with setting proper user rights:

sudo chmod 700 /etc/pm/power.d/wireless_power_management_off

But after reboot the power management is back on.

iwconfig after manually turning power management off

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.

I don't think this question applies only to Linux Mint, it is a general issue of particular wireless adapters.

0

4 Answers 4

187

Open this file with your favorite text editor, I use nano here:

sudo nano /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf

By default there is:

[connection]
wifi.powersave = 3

Change the value to 2.


Possible values for the wifi.powersave field are:

NM_SETTING_WIRELESS_POWERSAVE_DEFAULT (0): use the default value
NM_SETTING_WIRELESS_POWERSAVE_IGNORE  (1): don't touch existing setting
NM_SETTING_WIRELESS_POWERSAVE_DISABLE (2): disable powersave
NM_SETTING_WIRELESS_POWERSAVE_ENABLE  (3): enable powersave

(Informal source on GitHub for these values.)


To take effect, just run:

sudo systemctl restart NetworkManager
5
  • 3
    Just want to add a note here: I thought this wasn't working, but then realized I always put my computer on "suspend" rather than rebooting. Suspending doesn't restart the NetworkManager service, but it DOES set the power saving to default when you resume from suspend. So the manual service restart that @Governa recommends is necessary.
    – DariusK
    Commented Mar 30, 2021 at 15:14
  • Thank you! I got a huge improvement here with my RTL8821CE adapter. before avg=118ms, stddev=77. after avg=7ms, stddev=4
    – flaviut
    Commented Nov 10, 2023 at 22:18
  • This answer may work with some distros, but it is not generally accurate. On my (Debian-based) system for example, the file at /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf does not exist.
    – Seamus
    Commented Apr 25 at 19:43
  • @Seamus So create it, no? Commented Jun 22 at 7:53
  • @VlastimilBurián: Maybe that will work, and maybe it won't. Personally, I don't care for NetworkManager - it seems arcane to my way of thinking. For getting & setting wifi power save mode, I use iw.
    – Seamus
    Commented Jun 22 at 8:43
11

It is not sufficient to turn off wireless power management at boot.

There are probably hooks like if I plug off power adapter.

So one of possible solutions is as follows; step-by-step.

Create a directory, where you wish to store the file, if not already having one for all your scripts, I personally want to have it in /etc/pm/:

sudo mkdir -p /etc/pm/power.d

Create (anywhere you like) a script, name it to be sensible, for me it is:

sudo nano /etc/pm/power.d/wireless_power_management_off

I used nano, but use whatever, e.g. if you want to create the file graphically, eg. with gedit (LM17) or xed (LM18):

gksudo gedit /etc/pm/power.d/wireless_power_management_off
gksudo xed /etc/pm/power.d/wireless_power_management_off

Enter the following contents to the file:

#!/bin/bash

/sbin/iwconfig wlan0 power off

Save the file.

Owner of the file should be root, if you created the file as normal user somewhere, go to the folder where it is and fix it with:

sudo chown root:root wireless_power_management_off

Next, you need to set proper permissions to the file, rwx for owner:

sudo chmod 700 wireless_power_management_off

Finally we will be executing the script every minute using CRON; dirty but worky:

sudo crontab -e

If you never edited crontab before, it will ask what editor you wish to use, this is totally up to you.

Paste this to the end of the file:

*/1 * * * * /etc/pm/power.d/wireless_power_management_off

Wait a minute and then you may check if power management if turned off:

iwconfig wlan0 | grep "Power Management"

Example output:

Power Management:off

Even if something triggers the power management to turn on, it will last only a minute. Done.

1
  • this is the only thing that worked for me. side note, check what your wireless interface is called using $ iwconfig command, in my case it was wlo1
    – muon
    Commented Jan 5 at 1:22
9

TLP - Linux Advanced Power Management Tool works for me out of the box both in Ubuntu 18.04 and 20.04.

shell> grep WIFI /etc/default/tlp 
WIFI_PWR_ON_AC=off
WIFI_PWR_ON_BAT=off
shell> iw dev wlan0 get power_save
Power save: off

Notes

1
0

Using crontab, i.e., with sudo crontab -e, add the line

@reboot /bin/bash /etc/pm/power.d/wireless
0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .