Advertisement
Guest User

zzz.sh

a guest
Mar 1st, 2014
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.35 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,0 | tail -c 13)"
  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,0 | tail -c 13)"
  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,0 | tail -c 13)"
  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,0 | tail -c 13)"
  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 >/dev/null
  61. ##### CHANGE THIS SETTING, Currently at 211
  62. cmd=$(printf "0x86,0x%02X,0x02,0x11" $c)
  63. spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
  64. cmd=$(printf "0x85,0x%02X,0,0" $c)
  65. spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
  66. done
  67.  
  68. # re-enable all cores
  69. i=0
  70. while [[ $i -lt 192 ]] ; do
  71. i2cset -y 2 0x2$p $i 1
  72. i=$((i+1))
  73. done
  74. spi_ena=$(( spi_ena | (1 << $p) ))
  75. done
  76. fi
  77. if [ -n "$bad_ports" ] ; then
  78. for p in $bad_ports ; do
  79. # Disable PLL
  80. i2cset -y 2 0x71 1 $((p+1))
  81. for c in 0 1 2 3 ; do
  82. cmd=$(printf "0x84,0x%02X,0,0" $c)
  83. spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
  84. done
  85.  
  86. # disable all cores
  87. i=0
  88. while [[ $i -lt 192 ]] ; do
  89. i2cset -y 2 0x2$p $i 0
  90. i=$((i+1))
  91. done
  92. spi_ena=$(( spi_ena & ~(1 << $p) ))
  93. done
  94. fi
  95.  
  96. # Disable direct SPI
  97. i2cset -y 2 0x71 1 0
  98.  
  99. # Enable SPI poller
  100. i2cset -y 2 0x71 2 $spi_ena
  101.  
  102. MINING_SW=`ls -l /usr/bin/cgminer`
  103. if [ "`echo $MINING_SW | grep bfgminer`" != "" ] ; then
  104. export LD_LIBRARY_PATH=/usr/bfgminer/
  105. start-stop-daemon -b -S -x screen -- -S cgminer -t cgminer -m -d "$DAEMON" -c /config/cgminer.conf -S knc:auto
  106. else
  107. start-stop-daemon -b -S -x screen -- -S cgminer -t cgminer -m -d "$DAEMON" --default-config /config/cgminer.conf
  108. fi
  109. }
  110.  
  111. do_stop() {
  112. killall -9 cgminer || true
  113. }
  114. case "$1" in
  115. start)
  116. echo -n "Starting $DESC: "
  117. do_start
  118. echo "$NAME."
  119. ;;
  120. stop)
  121. echo -n "Stopping $DESC: "
  122. do_stop
  123. echo "$NAME."
  124. ;;
  125. restart|force-reload)
  126. echo -n "Restarting $DESC: "
  127. do_stop
  128. do_start
  129. echo "$NAME."
  130. ;;
  131. *)
  132. N=/etc/init.d/$NAME
  133. echo "Usage: $N {start|stop|restart|force-reload}" >&2
  134. exit 1
  135. ;;
  136. esac
  137.  
  138. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement