Advertisement
Guest User

Untitled

a guest
Oct 7th, 2013
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/bin/sh
  2. # A script to enable laptop power saving features
  3.  
  4. # List of modules to unload, space seperated. Edit depending on your hardware and preferences.
  5. modlist="uvcvideo"
  6.  
  7. # Bus list for runtime pm.
  8. buslist="pci spi i2c"
  9.  
  10. # Enable some power saving settings while on battery
  11.  
  12. case "$1" in
  13. true)
  14.  
  15. #hdparm settings
  16. hdparm -B 1 -S 60 /dev/sda
  17.  
  18. # Intel audio power saving
  19. echo Y > /sys/module/snd_hda_intel/parameters/power_save_controller
  20. echo 1 > /sys/module/snd_hda_intel/parameters/power_save
  21.  
  22. #Enable multi core power savings
  23. echo 1 > /sys/devices/system/cpu/sched_smt_power_savings
  24.  
  25. #Enable laptop mode
  26. echo 5 > /proc/sys/vm/laptop_mode
  27.  
  28. #Keep dirty writes in memory – non scrive sul disco finchè il 90% della memoria è piena: la predefinita di pm-utils è 60 noi la settiamo a 90
  29. echo 90 > /proc/sys/vm/dirty_ratio
  30.  
  31. # Keep dirty writes out of cache – Quando arriva al valore impostato sopra, svuota la cache fino al valore impostato qui
  32. echo 1 > /proc/sys/vm/dirty_background_ratio
  33.  
  34. # Writeback 10 min – ogni quanto si attiva il demone per scrivere su disco se la memoria non si riempie mai al valore impostato a dirty_ratio
  35. echo 60000 > /proc/sys/vm/dirty_writeback_centisecs
  36.  
  37. #Imposta la frequenza dei processori su conservative
  38. cpufreq-set -r -g conservative
  39.  
  40. #Fa in modo che i programmi che hanno un bassa priorità non causino l'incremento della frequenza vale solo se la policy è conservative o ondemand, cioè con frequenza variabile. Con powersave che tiene sempre il processore al minimo non serve.
  41. echo 1 > /sys/devices/system/cpu/cpufreq/conservative/ignore_nice_load
  42.  
  43. # Set backlight brightness
  44. echo 1 > /sys/class/backlight/acpi_video0/brightness
  45.  
  46. # wireless powersave
  47. iwconfig wlan0 power on
  48. iwconfig wlan0 power timeout 500ms
  49.  
  50. # disable ethernet on battery
  51. ifconfig eth0 down
  52.  
  53. # i915
  54. #echo 1 > /sys/module/i915/parameters/i915_enable_rc6
  55. #echo 1 > /sys/module/i915/parameters/i915_enable_fbc
  56. #echo 1 > /sys/module/i915/parameters/lvds_downclock
  57.  
  58. # Disable nmi watchdog
  59. echo 0 > /proc/sys/kernel/nmi_watchdog
  60.  
  61. # Swappiness
  62. echo 9 > /proc/sys/vm/swappiness &
  63.  
  64.  
  65. # USB powersaving
  66. for i in /sys/bus/usb/devices/*/power/autosuspend; do
  67. echo 1 > $i
  68. done
  69. for i in /sys/bus/usb/devices/*/power/level; do echo auto > $i; done
  70.  
  71. # SATA power saving
  72. for i in /sys/class/scsi_host/host*/link_power_management_policy; do
  73. echo min_power > $i
  74. done
  75.  
  76. #Disable hardware modules to save power
  77. for mod in $modlist; do
  78. grep $mod /proc/modules >/dev/null || continue
  79. modprobe -r $mod 2>/dev/null
  80. done
  81.  
  82. # Enable runtime power management.
  83. for bus in $buslist; do
  84. for i in /sys/bus/$bus/devices/*/power/control; do
  85. echo auto > $i
  86. done
  87. done
  88.  
  89. ;;
  90. false)
  91.  
  92. #Return settings to default on AC power
  93.  
  94. hdparm -B 128 -S 0 /dev/sda
  95. echo N > /sys/module/snd_hda_intel/parameters/power_save_controller
  96. echo 0 > /sys/module/snd_hda_intel/parameters/power_save
  97. echo 0 > /sys/devices/system/cpu/sched_smt_power_savings
  98. echo 0 > /proc/sys/vm/laptop_mode
  99. echo 10 > /proc/sys/vm/dirty_ratio
  100. echo 5 > /proc/sys/vm/dirty_background_ratio
  101. echo 500 > /proc/sys/vm/dirty_writeback_centisecs
  102. cpufreq-set -r -g ondemand
  103. echo 0 > /sys/devices/system/cpu/cpufreq/conservative/ignore_nice_load
  104. echo 13 > /sys/class/backlight/acpi_video0/brightness
  105. iwconfig wlan0 power off
  106. ifconfig eth0 up
  107. #echo 0 > /sys/module/i915/parameters/i915_enable_rc6
  108. #echo 0 > /sys/module/i915/parameters/i915_enable_fbc
  109. #echo 0 > /sys/module/i915/parameters/lvds_downclock
  110. echo 1 > /proc/sys/kernel/nmi_watchdog
  111. echo 60 > /proc/sys/vm/swappiness
  112. for i in /sys/bus/usb/devices/*/power/autosuspend; do
  113. echo 2 > $i
  114. done
  115. for i in /sys/bus/usb/devices/*/power/level; do echo on > $i; done
  116. for i in /sys/class/scsi_host/host*/link_power_management_policy
  117. do echo max_performance > $i
  118. done
  119.  
  120. for mod in $modlist; do
  121. if ! lsmod | grep $mod; then
  122. modprobe $mod 2>/dev/null
  123. fi
  124. done
  125.  
  126. for bus in $buslist; do
  127. for i in /sys/bus/$bus/devices/*/power/control; do
  128. echo on > $i
  129. done
  130. done
  131. ;;
  132. esac
  133.  
  134. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement