Advertisement
Guest User

Untitled

a guest
Mar 2nd, 2014
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.15 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
  4. DAEMON=/usr/bin/cgminer
  5. NAME=cgminer
  6. DESC="Cgminer daemon"
  7.  
  8. set -e
  9.  
  10. test -x "$DAEMON" || exit 0
  11.  
  12. do_start() {
  13. # Stop SPI poller
  14. spi_ena=0
  15. i2cset -y 2 0x71 2 $spi_ena
  16.  
  17. good_ports=""
  18. bad_ports=""
  19.  
  20. # CLear faults in megadlynx's
  21. for b in 3 4 5 6 7 8 ; do
  22. for d in 0 1 2 3 4 5 6 7 ; do
  23. i2cset -y $b 0x1$d 3 >/dev/null 2>&1 || true
  24. done
  25. done
  26.  
  27. for p in 0 1 2 3 4 5 ; do
  28. i2cset -y 2 0x71 1 $((p+1))
  29. good_flag=0
  30. ar="$(spi-test -s 50000 -OHC -D /dev/spidev1.0 0x80,3,0,0,0,0,0,
  31. if [ "x$ar" = "x00 30 A0 01" ] ; then
  32. good_flag=1
  33. fi
  34. ar="$(spi-test -s 50000 -OHC -D /dev/spidev1.0 0x80,2,0,0,0,0,0,
  35. if [ "x$ar" = "x00 30 A0 01" ] ; then
  36. good_flag=1
  37. fi
  38. ar="$(spi-test -s 50000 -OHC -D /dev/spidev1.0 0x80,1,0,0,0,0,0,
  39. if [ "x$ar" = "x00 30 A0 01" ] ; then
  40. good_flag=1
  41. fi
  42. ar="$(spi-test -s 50000 -OHC -D /dev/spidev1.0 0x80,0,0,0,0,0,0,
  43. if [ "x$ar" = "x00 30 A0 01" ] ; then
  44. good_flag=1
  45. fi
  46.  
  47. if [ "$good_flag" = "1" ] ; then
  48. good_ports=$good_ports" $p"
  49. else
  50. bad_ports=$bad_ports" $p"
  51. fi
  52. done
  53.  
  54. if [ -n "$good_ports" ] ; then
  55. for p in $good_ports ; do
  56. # Re-enable PLL
  57. i2cset -y 2 0x71 1 $((p+1))
  58. for c in 0 1 2 3 ; do
  59. cmd=$(printf "0x84,0x%02X,0,0" $c)
  60. spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/
  61. cmd=$(printf "0x86,0x%02X,0x02,0x71" $c)
  62. if [ $p -eq 0 ]
  63. then
  64. if [ $c -eq 0 ]
  65. then
  66. cmd=$(printf "0x86,0x%02X,0x02,0x71" $c)
  67. fi
  68. if [ $c -eq 1 ]
  69. then
  70. cmd=$(printf "0x86,0x%02X,0x02,0x71" $c)
  71. fi
  72. if [ $c -eq 2 ]
  73. then
  74. cmd=$(printf "0x86,0x%02X,0x02,0x71" $c)
  75. fi
  76. if [ $c -eq 3 ]
  77. then
  78. cmd=$(printf "0x86,0x%02X,0x02,0x71" $c)
  79. fi
  80. fi
  81.  
  82. if [ $p -eq 1 ]
  83. then
  84. if [ $c -eq 0 ]
  85. then
  86. cmd=$(printf "0x86,0x%02X,0x02,0x41" $c)
  87. fi
  88. if [ $c -eq 1 ]
  89. then
  90. cmd=$(printf "0x86,0x%02X,0x02,0x41" $c)
  91. fi
  92. if [ $c -eq 2 ]
  93. then
  94. cmd=$(printf "0x86,0x%02X,0x02,0x41" $c)
  95. fi
  96. if [ $c -eq 3 ]
  97. then
  98. cmd=$(printf "0x86,0x%02X,0x02,0x41" $c)
  99. fi
  100. fi
  101.  
  102. if [ $p -eq 2 ]
  103. then
  104. if [ $c -eq 0 ]
  105. then
  106. cmd=$(printf "0x86,0x%02X,0x02,0x71" $c)
  107. fi
  108. if [ $c -eq 1 ]
  109. then
  110. cmd=$(printf "0x86,0x%02X,0x02,0x71" $c)
  111. fi
  112. if [ $c -eq 2 ]
  113. then
  114. cmd=$(printf "0x86,0x%02X,0x02,0x71" $c)
  115. fi
  116. if [ $c -eq 3 ]
  117. then
  118. cmd=$(printf "0x86,0x%02X,0x02,0x71" $c)
  119. fi
  120. fi
  121.  
  122. if [ $p -eq 3 ]
  123. then
  124. if [ $c -eq 0 ]
  125. then
  126. cmd=$(printf "0x86,0x%02X,0x02,0x41" $c)
  127. fi
  128. if [ $c -eq 1 ]
  129. then
  130. cmd=$(printf "0x86,0x%02X,0x02,0x41" $c)
  131. fi
  132. if [ $c -eq 2 ]
  133. then
  134. cmd=$(printf "0x86,0x%02X,0x02,0x41" $c)
  135. fi
  136. if [ $c -eq 3 ]
  137. then
  138. cmd=$(printf "0x86,0x%02X,0x02,0x41" $c)
  139. fi
  140. fi
  141. spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/
  142. cmd=$(printf "0x85,0x%02X,0,0" $c)
  143. spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/
  144. done
  145. # re-enable all cores
  146. i=0
  147. while [[ $i -lt 192 ]] ; do
  148. i2cset -y 2 0x2$p $i 1
  149. i=$((i+1))
  150. done
  151. spi_ena=$(( spi_ena | (1 << $p) ))
  152. done
  153. fi
  154. if [ -n "$bad_ports" ] ; then
  155. for p in $bad_ports ; do
  156. # Disable PLL
  157. i2cset -y 2 0x71 1 $((p+1))
  158. for c in 0 1 2 3 ; do
  159. cmd=$(printf "0x84,0x%02X,0,0" $c)
  160. spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/
  161. done
  162.  
  163. # disable all cores
  164. i=0
  165. while [[ $i -lt 192 ]] ; do
  166. i2cset -y 2 0x2$p $i 0
  167. i=$((i+1))
  168. done
  169. spi_ena=$(( spi_ena & ~(1 << $p) ))
  170. done
  171. fi
  172.  
  173. # Disable direct SPI
  174. i2cset -y 2 0x71 1 0
  175.  
  176. # Enable SPI poller
  177. i2cset -y 2 0x71 2 $spi_ena
  178.  
  179. MINING_SW=`ls -l /usr/bin/cgminer`
  180. if [ "`echo $MINING_SW | grep bfgminer`" != "" ] ; then
  181. export LD_LIBRARY_PATH=/usr/bfgminer/
  182. start-stop-daemon -b -S -x screen -- -S cgminer -t cgminer -m -d
  183. else
  184. start-stop-daemon -b -S -x screen -- -S cgminer -t cgminer -m -d
  185. fi
  186. }
  187.  
  188. do_stop() {
  189. killall -9 cgminer || true
  190. }
  191. case "$1" in
  192. start)
  193. echo -n "Starting $DESC: "
  194. do_start
  195. echo "$NAME."
  196. ;;
  197. stop)
  198. echo -n "Stopping $DESC: "
  199. do_stop
  200. echo "$NAME."
  201. ;;
  202. restart|force-reload)
  203. echo -n "Restarting $DESC: "
  204. do_stop
  205. do_start
  206. echo "$NAME."
  207. ;;
  208. *)
  209. N=/etc/init.d/$NAME
  210. echo "Usage: $N {start|stop|restart|force-reload}" >&2
  211. exit 1
  212. ;;
  213. esac
  214.  
  215. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement