daily pastebin goal
70%
SHARE
TWEET

Untitled

a guest Mar 2nd, 2014 162 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top