Advertisement
Guest User

Untitled

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