Advertisement
Guest User

Untitled

a guest
Nov 19th, 2019
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 4.10 KB | None | 0 0
  1. #!/bin/sh
  2.         #
  3.         # Automatic Fan Controlling of ZW1050 (by CCWu 2005-05-06)
  4.         #
  5.  
  6.         # PWMx at Min Duty Cycle while temp < T_min
  7.         #/sbin/i2cset -y 0x0 0x2e 0x62 0xa0 b 1>/dev/null 2>/dev/null
  8.         #/sbin/i2cset -y 0x0 0x2e 0x63 0x00 b 1>/dev/null 2>/dev/null
  9.  
  10.         # PWM_min = 25%, if temp is below T_min, fan will operate with 25% duty cycle
  11.         #/sbin/i2cset -y 0x0 0x2e 0x64 0x40 b 1>/dev/null 2>/dev/null
  12.         #/sbin/i2cset -y 0x0 0x2e 0x65 0x40 b 1>/dev/null 2>/dev/null
  13.         #/sbin/i2cset -y 0x0 0x2e 0x66 0x40 b 1>/dev/null 2>/dev/null
  14.  
  15.         # T_min = 25
  16.         #/sbin/i2cset -y 0x0 0x2e 0x67 0x19 b 1>/dev/null 2>/dev/null
  17.         #/sbin/i2cset -y 0x0 0x2e 0x68 0x19 b 1>/dev/null 2>/dev/null
  18.         #/sbin/i2cset -y 0x0 0x2e 0x69 0x19 b 1>/dev/null 2>/dev/null
  19.  
  20.         # THERM Limit = 55 degree C, if exceeded this, fan will operate with 100% duty cycle, full speed
  21.         #/sbin/i2cset -y 0x0 0x2e 0x6A 0x37 b 1>/dev/null 2>/dev/null
  22.         #/sbin/i2cset -y 0x0 0x2e 0x6B 0x37 b 1>/dev/null 2>/dev/null
  23.         #/sbin/i2cset -y 0x0 0x2e 0x6C 0x37 b 1>/dev/null 2>/dev/null
  24.  
  25.         # Fastest Speed calculated by all three temperature channels controls PWMx
  26.     # (Automatic Fan Control Mode)
  27.         # work-around: disable fan control to avoid abnormal fan speed
  28.         #/sbin/i2cset -y 0x0 0x2e 0x5C 0xC2 b 1>/dev/null 2>/dev/null
  29.         #/sbin/i2cset -y 0x0 0x2e 0x5D 0xC2 b 1>/dev/null 2>/dev/null
  30.         #/sbin/i2cset -y 0x0 0x2e 0x5E 0xC2 b 1>/dev/null 2>/dev/null
  31.        
  32.     # (Manual Fan Control Mode)
  33.         /sbin/i2cset -y 0x0 0x2e 0x5C 0xe2 b 1>/dev/null 2>/dev/null
  34.         /sbin/i2cset -y 0x0 0x2e 0x5D 0xe2 b 1>/dev/null 2>/dev/null
  35.         /sbin/i2cset -y 0x0 0x2e 0x5E 0xe2 b 1>/dev/null 2>/dev/null
  36.     # Set PWMx current duty cycle
  37.     /sbin/i2cset -y 0x0 0x2e 0x30 0x50 b 1>/dev/null 2>/dev/null
  38.     /sbin/i2cset -y 0x0 0x2e 0x31 0x50 b 1>/dev/null 2>/dev/null
  39.     /sbin/i2cset -y 0x0 0x2e 0x32 0x50 b 1>/dev/null 2>/dev/null
  40.  
  41.     ####################
  42.     # Emma-2006.12.1  
  43.     # Initialization of HW monitor interrupt
  44.    
  45.     # set ADT7463 pin 10 as /SMBALERT
  46.     /sbin/i2cset -y 0x0 0x2e 0x78 0x1 b 1>/dev/null 2>/dev/null
  47.  
  48.     # set fan1 minimum to 0
  49.     #i2cset -y 0x0 0x2e 0x54 0x0 b
  50.     #i2cset -y 0x0 0x2e 0x55 0x0 b
  51.     i2cset -y 0x0 0x2e 0x54 0xff b 1>/dev/null 2>/dev/null
  52.     i2cset -y 0x0 0x2e 0x55 0xff b 1>/dev/null 2>/dev/null
  53.  
  54.     # set thermal interrupt limits, 0xb5=-75 degreeC, 0x4b=75 degreeC
  55.     # (refer to ADT7463 dastasheet p.17)
  56.     i2cset -y 0x0 0x2e 0x4e 0xb5 b 1>/dev/null 2>/dev/null
  57.     i2cset -y 0x0 0x2e 0x4f 0x4b b 1>/dev/null 2>/dev/null
  58.     i2cset -y 0x0 0x2e 0x50 0xb5 b 1>/dev/null 2>/dev/null
  59.     i2cset -y 0x0 0x2e 0x51 0x4b b 1>/dev/null 2>/dev/null
  60.     i2cset -y 0x0 0x2e 0x52 0xb5 b 1>/dev/null 2>/dev/null
  61.     i2cset -y 0x0 0x2e 0x53 0x4b b 1>/dev/null 2>/dev/null
  62.  
  63.     # enable interrupts: Remote 1 temperature channel, local temperature channel, Remote 2 temperature channel, and fan1.
  64.     i2cset -y 0x0 0x2e 0x74 0x0f b 1>/dev/null 2>/dev/null
  65.     i2cset -y 0x0 0x2e 0x75 0xfb b 1>/dev/null 2>/dev/null
  66.    
  67.     # End of Initialization of HW monitor interrupt
  68.     ###################
  69.  
  70.     ###################################################
  71.     # Make sure fan speed will be greater than 2000 rpm
  72.     #fanrpm=`cat /sys/devices/platform/i2c-0/0-002e/fan1_input`
  73.     fanrpm=`cat /sys/bus/i2c/devices/0-002e/fan1_input`
  74.     var=`i2cget -y 0x0 0x2e 0x30`
  75.  
  76.     while [ $fanrpm -lt 2000 ]; do
  77.         var=$((var+0x8))
  78.         if [ $var -gt 112 ]; then
  79.             break;
  80.         fi
  81.  
  82.         echo "fanspeed $fanrpm , pwm value $var"
  83.  
  84.         /sbin/i2cset -y 0x0 0x2e 0x30 $var b 1>/dev/null 2>/dev/null
  85.         /sbin/i2cset -y 0x0 0x2e 0x31 $var b 1>/dev/null 2>/dev/null
  86.         /sbin/i2cset -y 0x0 0x2e 0x32 $var b 1>/dev/null 2>/dev/null        
  87.         sleep 1
  88.         #fanrpm=`cat /sys/devices/platform/i2c-0/0-002e/fan1_input`
  89.         fanrpm=`cat /sys/bus/i2c/devices/0-002e/fan1_input`
  90.     done
  91.     # End of fan speed adjustment
  92.     ##################
  93.  
  94.     ###################################################
  95.     # Start PID Fan  control
  96.     if [ -x /sbin/fanctrld ]; then
  97.         /bin/echo "Starting PID Fan Control.."
  98.         /bin/nice -n 15 /sbin/fanctrld 0x0 0x2e
  99.     fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement