daily pastebin goal
7%
SHARE
TWEET

zzz.sh

a guest Mar 1st, 2014 192 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. 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
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