Advertisement
Guest User

cgminer.sh

a guest
Dec 27th, 2013
297
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 10.57 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.  
  62.                                 # overclock each core for each module
  63.                                 if [ $p -eq 0 ]
  64.                                 then
  65.                                         if [ $c -eq 0 ]
  66.                                         then
  67.                                                 cmd=$(printf "0x86,0x%02X,0x02,0x11" $c)
  68.                                         fi
  69.                                         if [ $c -eq 1 ]
  70.                                         then
  71.                                                 cmd=$(printf "0x86,0x%02X,0x01,0xF1" $c)
  72.                                         fi
  73.                                         if [ $c -eq 2 ]
  74.                                         then
  75.                                                 cmd=$(printf "0x86,0x%02X,0x01,0xF1" $c)
  76.                                         fi
  77.                                         if [ $c -eq 3 ]
  78.                                         then
  79.                                                 cmd=$(printf "0x86,0x%02X,0x01,0xF1" $c)
  80.                                         fi
  81.                                 fi
  82.  
  83.                                 if [ $p -eq 1 ]
  84.                                 then
  85.                                         if [ $c -eq 0 ]
  86.                                         then
  87.                                                 cmd=$(printf "0x86,0x%02X,0x02,0x31" $c)
  88.                                         fi
  89.                                         if [ $c -eq 1 ]
  90.                                         then
  91.                                                 cmd=$(printf "0x86,0x%02X,0x02,0x31" $c)
  92.                                         fi
  93.                                         if [ $c -eq 2 ]
  94.                                         then
  95.                                                 cmd=$(printf "0x86,0x%02X,0x02,0x31" $c)
  96.                                         fi
  97.                                         if [ $c -eq 3 ]
  98.                                         then
  99.                                                 cmd=$(printf "0x86,0x%02X,0x02,0x31" $c)
  100.                                         fi
  101.                                 fi
  102.  
  103.                                 if [ $p -eq 2 ]
  104.                                 then
  105.                                         if [ $c -eq 0 ]
  106.                                         then
  107.                                                 cmd=$(printf "0x86,0x%02X,0x02,0x31" $c)
  108.                                         fi
  109.                                         if [ $c -eq 1 ]
  110.                                         then
  111.                                                 cmd=$(printf "0x86,0x%02X,0x02,0x31" $c)
  112.                                         fi
  113.                                         if [ $c -eq 2 ]
  114.                                         then
  115.                                                 cmd=$(printf "0x86,0x%02X,0x02,0x31" $c)
  116.                                         fi
  117.                                         if [ $c -eq 3 ]
  118.                                         then
  119.                                                 cmd=$(printf "0x86,0x%02X,0x02,0x31" $c)
  120.                                         fi
  121.                                 fi
  122.  
  123.                                 if [ $p -eq 3 ]
  124.                                 then
  125.                                         if [ $c -eq 0 ]
  126.                                         then
  127.                                                 cmd=$(printf "0x86,0x%02X,0x02,0x31" $c)
  128.                                         fi
  129.                                         if [ $c -eq 1 ]
  130.                                         then
  131.                                                 cmd=$(printf "0x86,0x%02X,0x02,0x31" $c)
  132.                                         fi
  133.                                         if [ $c -eq 2 ]
  134.                                         then
  135.                                                 cmd=$(printf "0x86,0x%02X,0x02,0x31" $c)
  136.                                         fi
  137.                                         if [ $c -eq 3 ]
  138.                                         then
  139.                                                 cmd=$(printf "0x86,0x%02X,0x02,0x31" $c)
  140.                                         fi
  141.                                 fi
  142.  
  143.                                 if [ $p -eq 4 ]
  144.                                 then
  145.                                         if [ $c -eq 0 ]
  146.                                         then
  147.                                                 cmd=$(printf "0x86,0x%02X,0x02,0x31" $c)
  148.                                         fi
  149.                                         if [ $c -eq 1 ]
  150.                                         then
  151.                                                 cmd=$(printf "0x86,0x%02X,0x02,0x31" $c)
  152.                                         fi
  153.                                         if [ $c -eq 2 ]
  154.                                         then
  155.                                                 cmd=$(printf "0x86,0x%02X,0x02,0x31" $c)
  156.                                         fi
  157.                                         if [ $c -eq 3 ]
  158.                                         then
  159.                                                 cmd=$(printf "0x86,0x%02X,0x02,0x31" $c)
  160.                                         fi
  161.                                 fi
  162.  
  163.                                 if [ $p -eq 5 ]
  164.                                 then
  165.                                         if [ $c -eq 0 ]
  166.                                         then
  167.                                                 cmd=$(printf "0x86,0x%02X,0x01,0xE1" $c)
  168.                                         fi
  169.                                         if [ $c -eq 1 ]
  170.                                         then
  171.                                                 cmd=$(printf "0x86,0x%02X,0x01,0xF1" $c)
  172.                                         fi
  173.                                         if [ $c -eq 2 ]
  174.                                         then
  175.                                                 cmd=$(printf "0x86,0x%02X,0x01,0xE1" $c)
  176.                                         fi
  177.                                         if [ $c -eq 3 ]
  178.                                         then
  179.                                                 cmd=$(printf "0x86,0x%02X,0x01,0xC1" $c)
  180.                                         fi
  181.                                 fi
  182.  
  183.                                 spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
  184.                                 cmd=$(printf "0x85,0x%02X,0,0" $c)
  185.                                 spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
  186.                         done
  187.  
  188.                         # re-enable all cores
  189.                         i=0
  190.                         while [[ $i -lt 192 ]] ; do
  191.                                 i2cset -y 2 0x2$p $i 1
  192.                                 i=$((i+1))
  193.                         done
  194.                         spi_ena=$(( spi_ena | (1 << $p) ))
  195.                 done
  196.         fi
  197.         if [ -n "$bad_ports" ] ; then
  198.                 for p in $bad_ports ; do
  199.                         # Disable PLL
  200.                         i2cset -y 2 0x71 1 $((p+1))
  201.                         for c in 0 1 2 3 ; do
  202.                                 cmd=$(printf "0x84,0x%02X,0,0" $c)
  203.                                 spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
  204.                         done
  205.  
  206.                         # disable all cores
  207.                         i=0
  208.                         while [[ $i -lt 192 ]] ; do
  209.                                 i2cset -y 2 0x2$p $i 0
  210.                                 i=$((i+1))
  211.                         done
  212.                         spi_ena=$(( spi_ena & ~(1 << $p) ))
  213.                 done
  214.         fi
  215.  
  216.         # Disable direct SPI
  217.         i2cset -y 2 0x71 1 0
  218.  
  219.         # Enable SPI poller
  220.         i2cset -y 2 0x71 2 $spi_ena
  221.  
  222.         start-stop-daemon -b -S -x screen -- -S cgminer -t cgminer -m -d "$DAEMON" --api-listen --default-config /config/cgminer.conf
  223. }
  224.  
  225. do_stop() {
  226.         killall -9 cgminer || true
  227. }
  228. case "$1" in
  229.   start)
  230.         echo -n "Starting $DESC: "
  231.         do_start
  232.         echo "$NAME."
  233.         ;;
  234.   stop)
  235.         echo -n "Stopping $DESC: "
  236.         do_stop
  237.         echo "$NAME."
  238.         ;;
  239.   restart|force-reload)
  240.         echo -n "Restarting $DESC: "
  241.         do_stop
  242.         do_start
  243.         echo "$NAME."
  244.         ;;
  245.   *)
  246.         N=/etc/init.d/$NAME
  247.         echo "Usage: $N {start|stop|restart|force-reload}" >&2
  248.         exit 1
  249.         ;;
  250. esac
  251.  
  252. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement