Skip to content

Instantly share code, notes, and snippets.

@jcberthon
Last active June 21, 2024 06:28
Show Gist options
  • Save jcberthon/ea8cfe278998968ba7c5a95344bc8b55 to your computer and use it in GitHub Desktop.
Save jcberthon/ea8cfe278998968ba7c5a95344bc8b55 to your computer and use it in GitHub Desktop.
NetworkManager Wi-Fi powersaving configuration

NetworkManager WiFi Power Saving

NetworkManager supports WiFi powersaving but the function is rather undocumented.

From the source code: wifi.powersave can have the following value:

  • 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

Then I propose 2 files, only one of them needs to be put under /etc/NetworkManager/conf.d/.
One is forcing to disable powersaving, while the other one enable it.

Once you have put the file in the right folder, simply restart NetworkManager:

sudo systemctl restart NetworkManager
# File to be place under /etc/NetworkManager/conf.d
[connection]
# Values are 0 (use default), 1 (ignore/don't touch), 2 (disable) or 3 (enable).
wifi.powersave = 2
# File to be place under /etc/NetworkManager/conf.d
[connection]
# Values are 0 (use default), 1 (ignore/don't touch), 2 (disable) or 3 (enable).
wifi.powersave = 3
@thomas2net
Copy link

Spelling correction in comment: "File to be placed under", with a d after place
Thanks!

In any case, interesting and long-lasting bug...
https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/1960817

@jeremyb31
Copy link

@JonasGroeger
Copy link

Check with

iwconfig <interface> | grep "Power Management"

@aceqbaceq
Copy link

this is amazing.

# cat /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf 
[connection]
wifi.powersave = 3

literally kills ssh performance.
and
wifi.powersave = 2
creates a miracle!

@owainkenwayucl
Copy link

owainkenwayucl commented Feb 3, 2024

If you aren't using NetworkManager (default in the minimal RaspberyOS 11 install at least) you can temporarily (until reboot) turn off power management with:

iwconfig wlan0 power off

There are many conceivable ways of making this persist, e.g. putting it in rc.local.

@jeremyb31
Copy link

If you aren't using NetworkManager (default in the minimal RaspberyOS 11 install at least) you can temporarily (until reboot) turn off power management with:

iwconfig wlan0 power off

There are many conceivable ways of making this persist, e.g. putting it in rc.local.

It may just be Ubuntu and its derivatives that set the wifi.powersave=3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment