Subdomain Posts
C | 15 days ago
C | 16 days ago
C | 16 days ago
C | 16 days ago
None | 23 days ago
None | 30 days ago
Bash | 37 days ago
None | 37 days ago
None | 39 days ago
None | 40 days ago
Recent Posts
None | 4 sec ago
None | 10 sec ago
Delphi | 14 sec ago
C# | 50 sec ago
FreeBasic | 1 min ago
None | 1 min ago
None | 1 min ago
None | 1 min ago
None | 1 min ago
None | 1 min ago
Sitereport
Find cool info about any domain on the internet?
visit sitereport
Free Subdomains
Want a pastebin.com sub-domain for your community?
learn more...
What is pastebin?
Pastebin is a website that hosts all your text & code on dedicated servers for easy sharing.
learn more...
Learn a little bit about the new Pastebin.com on our help page. hide message
By jagsph on the 2nd of Feb 2010 11:57:44 PM Download | Raw | Embed | Report
  1. THIS IS AN UPDATE TO THE POWER-MANAGEMENT.SH THAT WAS INCLUDED IN EVERY ROOTNEXUS RELEASE.
  2. THERE IS A BUG IN 0.13 THAT WILL TURN THE SCREEN OFF WHEN HEADPHONES ARE INSERTED
  3.  
  4. PLEASE UPDATE YOUR /ETC/POWER-MANAGEMENT.SH WITH THIS FILE ... THANKS
  5.  
  6. #!/bin/bash
  7. export DISPLAY=:0
  8. #################################
  9. #POWER MANAGEMENT INTERFACE FOR Z2
  10. # -JAGSPH 2010 VERSION 0.14
  11. # Warnings are off until they can be
  12. # Implemented better.
  13. # http://zipit.rootnexus.org/
  14. # with help from #zipit irc.freenode.net
  15. # rkdavis, mozzwald
  16. #########
  17. # Vars for LID
  18. #
  19. #AC POWERED SCREEN BRIGHTNESS
  20. SCRB=500
  21.  
  22. #AC POWERED KEY BRIGHTNESS
  23. KEYB=0
  24.  
  25. #BATTERY POWERED SCREEN BRIGHTNESS
  26. BTDISP=420
  27.  
  28. #BATTERY POWERED KEY BRIGHTNESS
  29. BTKEY=0
  30.  
  31. #LID CLOSED SCREEN BRIGHTNESS
  32. SCRBO=0
  33.  
  34. #LID CLOSED KEY BRIGHTNESS
  35. KEYBO=0
  36.  
  37. #POWER BUTTON COMMAND
  38. PWRBO="/home/user/.bin/shutdown-script"
  39. #PWRBO="echo Put shutdown command here"
  40.  
  41.  
  42. #Switched to another function without polling
  43. #How fast do we check the lid open/close status
  44. #LIDTIME=2
  45.  
  46. ####################################
  47. #Vars for power management interface
  48. #
  49. # /proc/apm reads from 40 to 90
  50. # We will eventually access another interface
  51. # Until now this is how its done.
  52. #
  53. # Read status with numbers only
  54. # This is now done in the loop function
  55. # BATST="`cat /proc/apm | awk '{ print $7}'|  awk -F "" '{print $1$2}'`"
  56. #
  57. #
  58.  
  59. #Low Threshold (Shutdown in 2 minutes) 6% Left
  60. BATLT="46"
  61.  
  62. #Warning Threshold <-- xmessage power warning
  63. BATWT="50"
  64.  
  65. #High Threshold <-- This is a good charge level
  66. BATHT="80"
  67.  
  68. #Fully Charged on AC <--- We are fully charged at 89-90
  69. FULLC="89"
  70.  
  71. #How often do we check power status (seconds)
  72. POLL=30
  73.  
  74. #How many seconds do we have until shutdown on VERY
  75. #Low power?
  76. SHUTTIME=120
  77.  
  78. #Leave this alone
  79. #Warned?
  80. WARN=0
  81. WARNS=0
  82.  
  83. function warning1 {
  84. if [ "$WARN" -eq "1" ]; then
  85. echo "Function warning1 Doing nothing"
  86. else
  87. xmessage -center "Power low; SHUTDOWN:$BATLT CUR:$BATST"
  88. WARN=1
  89. fi
  90. }
  91.  
  92. function warning2 {
  93. if [ "$WARNS" -eq "1" ]; then
  94. echo "Function warning2 Doing nothing"
  95. else
  96. xmessage -center "Power low; Shutdown in 2 MIN; Save Work" &
  97. WARNS=1
  98. fi
  99. }
  100.  
  101. function fullcharge {
  102. echo Fully Charged Function
  103. echo "#################################"
  104. if [ "$BATST" -lt "$FULLC" ]; then
  105. echo Charge is $BATST out of $FULLC
  106. else
  107. #echo $BATST greather than $FULLC
  108. echo "FC: Fully Chared $BATST OF $FULLC"
  109. fi
  110. }
  111.  
  112.  
  113. function batpower {
  114. #echo On battery power function
  115. #echo "#################################"
  116. #if [ "$BATST" -lt "$BATHT" ]; then
  117. #echo $BATST less than $BATHT
  118. #echo System Is Officially on battery power
  119. #else
  120. #echo $BATST greather than $BATHT
  121. #echo "System Is over the $BATHT Threshold"
  122. #echo "BAT: Charging over $BATST over $BATHT on AC Power"
  123. #echo "Even though it may not be"
  124. #echo "Since we cannot accurately calculate"
  125. #echo "BP: $BATST of $BATHT Threshold"
  126. #fi
  127. echo ""
  128.  
  129. }
  130.  
  131.  
  132. function warn {
  133. echo Warning Function
  134. echo "#################################"
  135. if [ "$BATST" -lt "$BATWT" ]; then
  136. #echo $BATST less than $BATWT
  137. echo Warning
  138. echo System will shutdown at $BATLT
  139. echo System is at $BATST
  140. #warning1 &
  141. sleep 2
  142. WARN=1
  143. #xmessage -center "Power low; SHUTDOWN:$BATLT CUR:$BATST"
  144. else
  145. #echo $BATST greather than $BATWT
  146. echo "WARN: $BATST of $BATWT Threshold"
  147. fi
  148. echo ""
  149.  
  150. }
  151.  
  152.  
  153. function low {
  154. echo Low Function
  155. echo "#################################"
  156. if [ "$BATST" -lt "$BATLT" ]; then
  157. echo $BATST less than $BATLT
  158. echo System shutdown in 120 Seconds
  159. echo Save your work
  160. #warning2 &
  161. sleep 5
  162. WARNS=1
  163. sleep $SHUTTIME ; op shutdown
  164. else
  165. echo "LOW: $BATST above $BATLT Shutdown Threshold"
  166. fi            
  167. echo ""
  168.  
  169. }
  170.  
  171.  
  172. #function lid {
  173. #while true ; do
  174. #LID="`cat /proc/irq/162/spurious | grep count | awk '{ print $2}'`"
  175. #echo $LID
  176. #
  177. #rem=$(( $LID % 2 ))
  178. #
  179. #if [ $rem -eq 0 ]
  180. #then
  181. #  echo "$LID is even number"
  182. #  echo "According to this we should turn on the display.. right?"
  183. #echo $SCRB > /sys/class/backlight/pwm-backlight.0/brightness
  184. #echo $KEYB > /sys/class/backlight/pwm-backlight.1/brightness
  185. #disppwr
  186. #else
  187. #  echo "$LID is odd number"
  188. #echo "According to this we should turn off the display, right?"
  189. #echo 0 > /sys/class/backlight/pwm-backlight.1/brightness
  190. #echo 0 > /sys/class/backlight/pwm-backlight.0/brightness
  191. #fi
  192.  
  193. #sleep $LIDTIME
  194. #done
  195. #}
  196.  
  197. function poweredby {
  198. while true ; do
  199. POWERED=`cat /sys/devices/platform/z2-battery/power_supply/Z2/status`
  200. if [ "$POWERED" = "Charging" ]; then
  201. clear
  202. echo "We are on AC $POWERED. So we do nothing"
  203. echo $SCRB > /sys/class/backlight/pwm-backlight.0/brightness
  204. echo $KEYB > /sys/class/backlight/pwm-backlight.1/brightness
  205. else
  206. clear
  207. echo "We are not on AC $POWERED. So we are entering the battery-daemon."
  208. echo $BTDISP > /sys/class/backlight/pwm-backlight.0/brightness
  209. echo $BTKEY > /sys/class/backlight/pwm-backlight.1/brightness
  210. BATST="`cat /proc/apm | awk '{ print $7}'|  awk -F "" '{print $1$2}'`"
  211. echo "System is reporting "$BATST"% from /proc/apm"
  212. low;
  213. #warn;
  214. batpower;
  215. fullcharge;
  216. sleep $POLL
  217. fi
  218. sleep $POLL
  219. done
  220. }
  221.  
  222. function disppwr {
  223. POWERED=`cat /sys/devices/platform/z2-battery/power_supply/Z2/status`
  224. if [ "$POWERED" = "Charging" ]; then
  225. echo $SCRB > /sys/class/backlight/pwm-backlight.0/brightness
  226. echo $KEYB > /sys/class/backlight/pwm-backlight.1/brightness
  227. else
  228. echo $BTDISP > /sys/class/backlight/pwm-backlight.0/brightness
  229. echo $BTKEY > /sys/class/backlight/pwm-backlight.1/brightness
  230. fi
  231. }
  232.  
  233.  
  234.  
  235.  
  236. function loop {
  237. # This is where we keep the daemon running
  238. #
  239. while true ; do
  240. poweredby
  241. sleep $POLL
  242. done
  243. }
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253. function eventstatus {
  254. EVENT1=`dd if=/dev/input/event1 bs=16 count=1 2>/dev/null | od -x | grep -v 0000020`
  255.  
  256. CODE=`echo $EVENT1 | awk '{ print $7 }'`
  257. VALUE=`echo $EVENT1 | awk '{ print $8 }'`  
  258.  
  259. echo "HEX=$EVENT1"
  260. echo "CODE=$CODE"
  261. echo "VALUE=$VALUE"
  262.  
  263. }
  264.  
  265. function code {
  266.  
  267. if [ $CODE -eq 0074 ] ; then
  268. poweroff
  269. fi
  270. if [ $CODE -eq 0000 ] ; then
  271. lid
  272. fi
  273. if [ $CODE -eq 0002 ] ; then
  274. headphones
  275. fi
  276. }
  277.  
  278. function lidloop {
  279. while true ; do
  280. eventstatus
  281. code
  282. done
  283. }
  284.  
  285. function poweroff {
  286. if [ $VALUE -eq 0001 ] ; then
  287. echo "POWER BUTTON PRESSED"
  288. $PWRB0
  289. fi
  290. if [ $VALUE -eq 0000 ] ; then
  291. echo "POWER BUTTON RELEASED"
  292. fi
  293. }
  294.  
  295. function lid {
  296. if [ $VALUE -eq 0000 ] ; then
  297. echo "Lid open: Turn on display"
  298. echo $SCRB > /sys/class/backlight/pwm-backlight.0/brightness
  299. echo $KEYB > /sys/class/backlight/pwm-backlight.1/brightness
  300. fi
  301. if [ $VALUE -eq 0001 ] ; then
  302. echo "Lid closed: Turn off display"
  303. echo $SCRBO > /sys/class/backlight/pwm-backlight.0/brightness
  304. echo $KEYBO > /sys/class/backlight/pwm-backlight.1/brightness
  305. fi
  306. }
  307.  
  308. function headphones {
  309. if [ $VALUE -eq 0001 ] ; then
  310. echo "Inserted Heaphones"
  311. fi
  312. if [ $VALUE -eq 0000 ] ; then
  313. echo "Removed Headphones"
  314. fi
  315. }
  316.  
  317.  
  318. #Entry Point
  319. #############
  320. #
  321. #
  322. #
  323.  
  324. lidloop &       #FORK() THE LID AND POWER BUTTON DAEMON OUT
  325. sleep 1         #CHILLOUT
  326. loop;           #ENTER POWER MANAGEMENT DAEMON LOOP
Submit a correction or amendment below. [ previous version ] | [ difference ] | Make A New Post
To highlight particular lines, prefix each line with @h@
Syntax highlighting:
Post expiration:
Post exposure:
Name / Title:
Email: