diff --git a/scripts/h3consumption b/scripts/h3consumption index b3f7304ee..c8a9d7ecd 100755 --- a/scripts/h3consumption +++ b/scripts/h3consumption @@ -240,15 +240,42 @@ ChangeSettings() { "") : ;; on) - chmod 644 /etc/NetworkManager/dispatcher.d/99disable-power-management - sed 's/power\ off\ /power on /' </etc/NetworkManager/dispatcher.d/99disable-power-management \ - > /etc/NetworkManager/dispatcher.d/99enable-power-management - chmod 755 /etc/NetworkManager/dispatcher.d/99enable-power-management + rm -f /etc/NetworkManager/dispatcher.d/99enable-power-management \ + /etc/NetworkManager/dispatcher.d/99disable-power-management \ + /etc/NetworkManager/conf.d/zz-override-wifi-powersave-off.conf + ;; off) - chmod 755 /etc/NetworkManager/dispatcher.d/99disable-power-management - [[ -f /etc/NetworkManager/dispatcher.d/99enable-power-management ]] && - chmod 644 /etc/NetworkManager/dispatcher.d/99enable-power-management + rm -f /etc/NetworkManager/dispatcher.d/99enable-power-management \ + /etc/NetworkManager/dispatcher.d/99disable-power-management \ + /etc/NetworkManager/conf.d/zz-override-wifi-powersave-off.conf + + echo "Note: This action applies only to NetworkManager based connections" + + case "$(lsb_release -sc)" in + jessie) + mkdir -p /etc/NetworkManager/dispatcher.d/ + cat <<-'EOF' > /etc/NetworkManager/dispatcher.d/99disable-power-management + #!/bin/sh + case "$2" in + up) /sbin/iwconfig $1 power off || true ;; + down) /sbin/iwconfig $1 power on || true ;; + esac + EOF + chmod 755 /etc/NetworkManager/dispatcher.d/99disable-power-management + ;; + xenial) + mkdir -p /etc/NetworkManager/conf.d/ + cat <<-EOF > /etc/NetworkManager/conf.d/zz-override-wifi-powersave-off.conf + [connection] + wifi.powersave = 2 + EOF + ;; + *) + echo "This action is supported only in Jessie and Xenial based releases. Exiting" >&2 + exit 1 + ;; + esac ;; *) echo "Parameter error: -w requires either on or off. Exiting" >&2