Bitcoin Forum
April 27, 2024, 01:06:48 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 ... 66 »
  Print  
Author Topic: Hacking The KNC Firmware: Overclocking  (Read 144308 times)
CYPER
Hero Member
*****
Offline Offline

Activity: 798
Merit: 502



View Profile
December 21, 2013, 03:00:49 PM
 #141

I'm trying to get into /etc/init.d but it won't let me.
Permissions are drwxr-xr-x (755) — Everyone can read the directory, but its contents can only be changed by the user.

I type su which gives me no error, and still I get this:

root@Jupiter-6:/etc# cd /init.d
sh: cd: can't cd to /init.d
root@Jupiter-6:/etc#

I am no Unix guru, so can you please tell me what is wrong?

This is an October 8VRM machine - I want to open the cgminer.sh file and see if it is the same as the one on October 4VRM.

Maybe I should install sudo?
1714223208
Hero Member
*
Offline Offline

Posts: 1714223208

View Profile Personal Message (Offline)

Ignore
1714223208
Reply with quote  #2

1714223208
Report to moderator
1714223208
Hero Member
*
Offline Offline

Posts: 1714223208

View Profile Personal Message (Offline)

Ignore
1714223208
Reply with quote  #2

1714223208
Report to moderator
The network tries to produce one block per 10 minutes. It does this by automatically adjusting how difficult it is to produce blocks.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714223208
Hero Member
*
Offline Offline

Posts: 1714223208

View Profile Personal Message (Offline)

Ignore
1714223208
Reply with quote  #2

1714223208
Report to moderator
1714223208
Hero Member
*
Offline Offline

Posts: 1714223208

View Profile Personal Message (Offline)

Ignore
1714223208
Reply with quote  #2

1714223208
Report to moderator
r1senfa17h
Full Member
***
Offline Offline

Activity: 226
Merit: 100



View Profile
December 21, 2013, 03:17:36 PM
 #142

So guys, is it riskier to try it on a 8VRM October Jupiter, or shall I try it first on a 4VRM October one?

From reading this thread no one has been able to get 8VRM boards to work?Huh?   Sad

I have an early 8VRM Saturn and I couldn't get it to work with an upgrade module either.  I also only get 264GH on it as each chip has some individual cores that are constantly flipping between enable/disable, but at least no DIE 0 issues...

I have 2 x 4-VRM modules and 4 x 8-VRM modules in my Jupiter and the 8-VRM modules actually overclock better for me. I get the lowest HW errors using 231, which is a huge increase.

Make sure you don't change anything in the advanced tab after restarting cgminer or else it will revert to stock clock speed.

1N3o5Kyvb4iECiJ3WKScKY8xTVXxf1hMvA
keyzersoze
Sr. Member
****
Offline Offline

Activity: 476
Merit: 266



View Profile
December 21, 2013, 03:46:07 PM
 #143

Is there a sed command that goes higher than 7%?

            ▄▄████▄▄
        ▄▄██████████████▄▄
      ███████████████████████▄▄
      ▀▀█████████████████████████
██▄▄       ▀▀█████████████████████
██████▄▄        ▀█████████████████
███████████▄▄       ▀▀████████████
███████████████▄▄        ▀████████
████████████████████▄▄       ▀▀███
 ▀▀██████████████████████▄▄
     ▀▀██████████████████████▄▄
▄▄        ▀██████████████████████▄
████▄▄        ▀▀██████████████████
█████████▄▄        ▀▀█████████████
█████████████▄▄        ▀▀█████████
██████████████████▄▄        ▀▀████
▀██████████████████████▄▄
  ▀▀████████████████████████
      ▀▀█████████████████▀▀
           ▀▀███████▀▀



.SEMUX
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
  Semux uses 100% original codebase
  Superfast with 30 seconds instant finality
  Tested 5000 tx per block on open network
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
CYPER
Hero Member
*****
Offline Offline

Activity: 798
Merit: 502



View Profile
December 21, 2013, 04:04:37 PM
 #144

Is there a sed command that goes higher than 7%?

No, because the next value in line is different: 201

It can probably be done with 2 sed commands or you can just edit the zzz.sh manually.
Line 61, find this string: cmd=$(printf "0x86,0x%02X,0x01,0xF1" $c)

800Mhz - cmd=$(printf "0x86,0x%02X,0x01,0xF1" $c)
825Mhz - cmd=$(printf "0x86,0x%02X,0x02,0x01" $c)
850Mhz - cmd=$(printf "0x86,0x%02X,0x02,0x11" $c)

Please use your own judgement as I cannot 100% guarantee this code is correct. Wait for someone to confirm.
CYPER
Hero Member
*****
Offline Offline

Activity: 798
Merit: 502



View Profile
December 21, 2013, 04:07:45 PM
 #145

Btw why I can't find the strings for tuning each chip/die individually in either cgminer.sh or zzz.sh?

This is all that is inside:

Code:
                done
        done

        for p in 0 1 2 3 4 5 ; do
                i2cset -y 2 0x71 1 $((p+1))
                good_flag=0
                ar="$(spi-test -s 50000 -OHC -D /dev/spidev1.0 0x80,3,0,0,0,0,0,0 | tail -c 13)"
                if [ "x$ar" = "x00 30 A0 01" ] ; then
                        good_flag=1
                fi
                ar="$(spi-test -s 50000 -OHC -D /dev/spidev1.0 0x80,2,0,0,0,0,0,0 | tail -c 13)"
                if [ "x$ar" = "x00 30 A0 01" ] ; then
                        good_flag=1
                fi
                ar="$(spi-test -s 50000 -OHC -D /dev/spidev1.0 0x80,1,0,0,0,0,0,0 | tail -c 13)"
                if [ "x$ar" = "x00 30 A0 01" ] ; then
                        good_flag=1
                fi
                ar="$(spi-test -s 50000 -OHC -D /dev/spidev1.0 0x80,0,0,0,0,0,0,0 | tail -c 13)"
                if [ "x$ar" = "x00 30 A0 01" ] ; then
                        good_flag=1
                fi

                if [ "$good_flag" = "1" ] ; then
                        good_ports=$good_ports" $p"
                else
                        bad_ports=$bad_ports" $p"
                fi
        done

        if [ -n "$good_ports" ] ; then
                for p in $good_ports ; do
                        # Re-enable PLL
                        i2cset -y 2 0x71 1 $((p+1))
                        for c in 0 1 2 3 ; do
                                cmd=$(printf "0x84,0x%02X,0,0" $c)
                                spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
                                cmd=$(printf "0x86,0x%02X,0x01,0xF1" $c)
                                spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
                                cmd=$(printf "0x85,0x%02X,0,0" $c)
                                spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
                        done

                        # re-enable all cores
                        i=0
                        while [[ $i -lt 192 ]] ; do
                                i2cset -y 2 0x2$p $i 1
                                i=$((i+1))
                        done
                        spi_ena=$(( spi_ena | (1 << $p) ))
                done
        fi
        if [ -n "$bad_ports" ] ; then
                for p in $bad_ports ; do
root@Jupiter-6:/config# /config/zzz.sh restart
Restarting Cgminer daemon: cgminer.
root@Jupiter-6:/config# screen -r
[detached]
root@Jupiter-6:/config# vi /etc/init.d/cgminer.sh
#!/bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/cgminer
NAME=cgminer
DESC="Cgminer daemon"

set -e

test -x "$DAEMON" || exit 0

do_start() {
        # Stop SPI poller
        spi_ena=0
        i2cset -y 2 0x71 2 $spi_ena

        good_ports=""
        bad_ports=""

        # CLear faults in megadlynx's
        for b in 3 4 5 6 7 8 ; do
                for d in 0 1 2 3 4 5 6 7 ; do
                        i2cset -y $b 0x1$d 3 >/dev/null 2>&1 || true
                done
        done

        for p in 0 1 2 3 4 5 ; do
                i2cset -y 2 0x71 1 $((p+1))
                good_flag=0
                ar="$(spi-test -s 50000 -OHC -D /dev/spidev1.0 0x80,3,0,0,0,0,0,0 | tail -c 13)"
                if [ "x$ar" = "x00 30 A0 01" ] ; then
                        good_flag=1
                fi
                ar="$(spi-test -s 50000 -OHC -D /dev/spidev1.0 0x80,2,0,0,0,0,0,0 | tail -c 13)"
                if [ "x$ar" = "x00 30 A0 01" ] ; then
                        good_flag=1
                fi
                ar="$(spi-test -s 50000 -OHC -D /dev/spidev1.0 0x80,1,0,0,0,0,0,0 | tail -c 13)"
                if [ "x$ar" = "x00 30 A0 01" ] ; then
                        good_flag=1
                fi
                ar="$(spi-test -s 50000 -OHC -D /dev/spidev1.0 0x80,0,0,0,0,0,0,0 | tail -c 13)"
                if [ "x$ar" = "x00 30 A0 01" ] ; then
                        good_flag=1
                fi

                if [ "$good_flag" = "1" ] ; then
                        good_ports=$good_ports" $p"
                else
                        bad_ports=$bad_ports" $p"
                fi
        done

        if [ -n "$good_ports" ] ; then
root@Jupiter-6:/config# screen -r
[detached]
root@Jupiter-6:/config# vi /config/zzz.sh
                fi
                ar="$(spi-test -s 50000 -OHC -D /dev/spidev1.0 0x80,2,0,0,0,0,0,0 | tail -c 13)"
                if [ "x$ar" = "x00 30 A0 01" ] ; then
                        good_flag=1
                fi
                ar="$(spi-test -s 50000 -OHC -D /dev/spidev1.0 0x80,1,0,0,0,0,0,0 | tail -c 13)"
                if [ "x$ar" = "x00 30 A0 01" ] ; then
                        good_flag=1
                fi
                ar="$(spi-test -s 50000 -OHC -D /dev/spidev1.0 0x80,0,0,0,0,0,0,0 | tail -c 13)"
                if [ "x$ar" = "x00 30 A0 01" ] ; then
                        good_flag=1
                fi

                if [ "$good_flag" = "1" ] ; then
                        good_ports=$good_ports" $p"
                else
                        bad_ports=$bad_ports" $p"
                fi
        done

        if [ -n "$good_ports" ] ; then
                for p in $good_ports ; do
                        # Re-enable PLL
                        i2cset -y 2 0x71 1 $((p+1))
                        for c in 0 1 2 3 ; do
                                cmd=$(printf "0x84,0x%02X,0,0" $c)
                                spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
                                cmd=$(printf "0x86,0x%02X,0x01,0xF1" $c)
                                spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
                                cmd=$(printf "0x85,0x%02X,0,0" $c)
                                spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
                        done

                        # re-enable all cores
                        i=0
                        while [[ $i -lt 192 ]] ; do
                                i2cset -y 2 0x2$p $i 1
                                i=$((i+1))
                        done
                        spi_ena=$(( spi_ena | (1 << $p) ))
                done
        fi
        if [ -n "$bad_ports" ] ; then
                for p in $bad_ports ; do
                        # Disable PLL
                        i2cset -y 2 0x71 1 $((p+1))
                        for c in 0 1 2 3 ; do
                                cmd=$(printf "0x84,0x%02X,0,0" $c)
                                spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
                        done

                        # disable all cores
                        i=0
- /config/zzz.sh 61/131 46%
the-skeptic
Member
**
Offline Offline

Activity: 91
Merit: 10


View Profile
December 21, 2013, 05:01:51 PM
 #146

OK, I get what each variable means and how to manipulate it, I'm just not sure the proper way to insert the code into cgminer.sh in order to implement it. Could you give us a sample of working code with a little more reference code on each end to help us newbs through this? I guess the correct term is syntax. I understand the code (kinda) I just need to know the proper syntax so that I can insert my own version into cgminer.sh.

Thanks!


A newer better code example is here

https://bitcointalk.org/index.php?topic=313978.msg4010530#msg4010530


What you quoted was from earlier in the process and only addresses one die.


Thanks a ton!

I was able to tune my two die-0 boards so that the other dies on those boards don't freak out. Before this nonsense I was getting 480Ghs at the pool, now I am seeing 590 Ghs. I suspect a Jupiter with 16 good dies should easily get to 635 Ghs.
the-skeptic
Member
**
Offline Offline

Activity: 91
Merit: 10


View Profile
December 21, 2013, 05:26:04 PM
 #147

See the code I inserted? (how could you miss it?!) that's how you change asic by asic, die by die. The code I inserted here will takes both slot 0 and slot 5 on the controller board and set adjust die-0 to below factory specs while running dies 1-2-3 at 211. The very first time you see the "x086" register, that sets the overall system clock. Inserting the sloppy code AFTER that line (up to four times, or six if you have six modules) will then modify different dies on different slots.

I have added two sections on my Jupiter cgminer.sh file, one for slot 0 ($p -eq 0) and a section for slot 5 ($p -eq 5) since those are my two die-0 boards and my other boards run fine without adjustment. Simply cut and paste the same code from below (insert each new next section of code after "fi <br> fi" for each ASIC board you need to adjust individually. 

Btw why I can't find the strings for tuning each chip/die individually in either cgminer.sh or zzz.sh?

This is all that is inside:

Code:
                done
        done

        for p in 0 1 2 3 4 5 ; do
                i2cset -y 2 0x71 1 $((p+1))
                good_flag=0
                ar="$(spi-test -s 50000 -OHC -D /dev/spidev1.0 0x80,3,0,0,0,0,0,0 | tail -c 13)"
                if [ "x$ar" = "x00 30 A0 01" ] ; then
                        good_flag=1
                fi
                ar="$(spi-test -s 50000 -OHC -D /dev/spidev1.0 0x80,2,0,0,0,0,0,0 | tail -c 13)"
                if [ "x$ar" = "x00 30 A0 01" ] ; then
                        good_flag=1
                fi
                ar="$(spi-test -s 50000 -OHC -D /dev/spidev1.0 0x80,1,0,0,0,0,0,0 | tail -c 13)"
                if [ "x$ar" = "x00 30 A0 01" ] ; then
                        good_flag=1
                fi
                ar="$(spi-test -s 50000 -OHC -D /dev/spidev1.0 0x80,0,0,0,0,0,0,0 | tail -c 13)"
                if [ "x$ar" = "x00 30 A0 01" ] ; then
                        good_flag=1
                fi

                if [ "$good_flag" = "1" ] ; then
                        good_ports=$good_ports" $p"
                else
                        bad_ports=$bad_ports" $p"
                fi
        done

        if [ -n "$good_ports" ] ; then
                for p in $good_ports ; do
                        # Re-enable PLL
                        i2cset -y 2 0x71 1 $((p+1))
                        for c in 0 1 2 3 ; do
                                cmd=$(printf "0x84,0x%02X,0,0" $c)
                                spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
                                cmd=$(printf "0x86,0x%02X,0x02,0x11" $c)
                               
if [ $p -eq 0 ]
then
       if [ $c -eq 0 ]
       then
               cmd=$(printf "0x86,0x%02X,0x01,0xB1" $c)
       fi
       if [ $c -eq 1 ]
       then
               cmd=$(printf "0x86,0x%02X,0x02,0x11" $c)
       fi
       if [ $c -eq 2 ]
       then
               cmd=$(printf "0x86,0x%02X,0x02,0x11" $c)
       fi
       if [ $c -eq 3 ]
       then
               cmd=$(printf "0x86,0x%02X,0x02,0x11" $c)
       fi
fi

if [ $p -eq 5 ]
then
       if [ $c -eq 0 ]
       then
               cmd=$(printf "0x86,0x%02X,0x01,0xB1" $c)
       fi
       if [ $c -eq 1 ]
       then
               cmd=$(printf "0x86,0x%02X,0x02,0x11" $c)
       fi
       if [ $c -eq 2 ]
       then
               cmd=$(printf "0x86,0x%02X,0x02,0x11" $c)
       fi
       if [ $c -eq 3 ]
       then
               cmd=$(printf "0x86,0x%02X,0x02,0x11" $c)
       fi
fi


                                spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
                                cmd=$(printf "0x85,0x%02X,0,0" $c)
                                spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
                        done

                        # re-enable all cores
                        i=0
                        while [[ $i -lt 192 ]] ; do
                                i2cset -y 2 0x2$p $i 1
                                i=$((i+1))
                        done
                        spi_ena=$(( spi_ena | (1 << $p) ))
                done
        fi
        if [ -n "$bad_ports" ] ; then
                for p in $bad_ports ; do
root@Jupiter-6:/config# /config/zzz.sh restart
Restarting Cgminer daemon: cgminer.
root@Jupiter-6:/config# screen -r
[detached]
root@Jupiter-6:/config# vi /etc/init.d/cgminer.sh
#!/bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/cgminer
NAME=cgminer
DESC="Cgminer daemon"

set -e

test -x "$DAEMON" || exit 0

do_start() {
        # Stop SPI poller
        spi_ena=0
        i2cset -y 2 0x71 2 $spi_ena

        good_ports=""
        bad_ports=""

        # CLear faults in megadlynx's
        for b in 3 4 5 6 7 8 ; do
                for d in 0 1 2 3 4 5 6 7 ; do
                        i2cset -y $b 0x1$d 3 >/dev/null 2>&1 || true
                done
        done

        for p in 0 1 2 3 4 5 ; do
                i2cset -y 2 0x71 1 $((p+1))
                good_flag=0
                ar="$(spi-test -s 50000 -OHC -D /dev/spidev1.0 0x80,3,0,0,0,0,0,0 | tail -c 13)"
                if [ "x$ar" = "x00 30 A0 01" ] ; then
                        good_flag=1
                fi
                ar="$(spi-test -s 50000 -OHC -D /dev/spidev1.0 0x80,2,0,0,0,0,0,0 | tail -c 13)"
                if [ "x$ar" = "x00 30 A0 01" ] ; then
                        good_flag=1
                fi
                ar="$(spi-test -s 50000 -OHC -D /dev/spidev1.0 0x80,1,0,0,0,0,0,0 | tail -c 13)"
                if [ "x$ar" = "x00 30 A0 01" ] ; then
                        good_flag=1
                fi
                ar="$(spi-test -s 50000 -OHC -D /dev/spidev1.0 0x80,0,0,0,0,0,0,0 | tail -c 13)"
                if [ "x$ar" = "x00 30 A0 01" ] ; then
                        good_flag=1
                fi

                if [ "$good_flag" = "1" ] ; then
                        good_ports=$good_ports" $p"
                else
                        bad_ports=$bad_ports" $p"
                fi
        done

        if [ -n "$good_ports" ] ; then
root@Jupiter-6:/config# screen -r
[detached]
root@Jupiter-6:/config# vi /config/zzz.sh
                fi
                ar="$(spi-test -s 50000 -OHC -D /dev/spidev1.0 0x80,2,0,0,0,0,0,0 | tail -c 13)"
                if [ "x$ar" = "x00 30 A0 01" ] ; then
                        good_flag=1
                fi
                ar="$(spi-test -s 50000 -OHC -D /dev/spidev1.0 0x80,1,0,0,0,0,0,0 | tail -c 13)"
                if [ "x$ar" = "x00 30 A0 01" ] ; then
                        good_flag=1
                fi
                ar="$(spi-test -s 50000 -OHC -D /dev/spidev1.0 0x80,0,0,0,0,0,0,0 | tail -c 13)"
                if [ "x$ar" = "x00 30 A0 01" ] ; then
                        good_flag=1
                fi

                if [ "$good_flag" = "1" ] ; then
                        good_ports=$good_ports" $p"
                else
                        bad_ports=$bad_ports" $p"
                fi
        done

        if [ -n "$good_ports" ] ; then
                for p in $good_ports ; do
                        # Re-enable PLL
                        i2cset -y 2 0x71 1 $((p+1))
                        for c in 0 1 2 3 ; do
                                cmd=$(printf "0x84,0x%02X,0,0" $c)
                                spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
                                cmd=$(printf "0x86,0x%02X,0x01,0xF1" $c)
                                spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
                                cmd=$(printf "0x85,0x%02X,0,0" $c)
                                spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
                        done

                        # re-enable all cores
                        i=0
                        while [[ $i -lt 192 ]] ; do
                                i2cset -y 2 0x2$p $i 1
                                i=$((i+1))
                        done
                        spi_ena=$(( spi_ena | (1 << $p) ))
                done
        fi
        if [ -n "$bad_ports" ] ; then
                for p in $bad_ports ; do
                        # Disable PLL
                        i2cset -y 2 0x71 1 $((p+1))
                        for c in 0 1 2 3 ; do
                                cmd=$(printf "0x84,0x%02X,0,0" $c)
                                spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
                        done

                        # disable all cores
                        i=0
- /config/zzz.sh 61/131 46%
CYPER
Hero Member
*****
Offline Offline

Activity: 798
Merit: 502



View Profile
December 21, 2013, 06:05:28 PM
 #148

I think I managed to make it work. Please have a look at my code and tell me if it is OK:

This code is for overclocking each individual die on each board to 850Mhz, so 16 total individual settings for boards at position 0, 1, 2, 3: http://pastebin.com/dSWrP4jF

It works, so I assume it is all good.

I think I understand it better now, so I will probably write a very detailed tutorial tomorrow for people who are not sure what they are doing. But first I will try to switch to BFGMiner to better fine tuning.

the-skeptic
Member
**
Offline Offline

Activity: 91
Merit: 10


View Profile
December 21, 2013, 06:56:34 PM
 #149

I think I managed to make it work. Please have a look at my code and tell me if it is OK:

This code is for overclocking each individual die on each board to 850Mhz, so 16 total individual settings for boards at position 0, 1, 2, 3: http://pastebin.com/dSWrP4jF

It works, so I assume it is all good.

I think I understand it better now, so I will probably write a very detailed tutorial tomorrow for people who are not sure what they are doing. But first I will try to switch to BFGMiner to better fine tuning.



Looks good. But please, don't help add a couple hundred THs to the network by being the hero and writing an overclocking tutorial!

Anyway, you can change each individual die to whatever clock speed you want with your code. It's great for people who have issues with bad boards, but simply changing the preceeding 0x86 register will cover 95% of the people who have no bad dies without over complicating things:

Quote
if [ -n "$good_ports" ] ; then
                for p in $good_ports ; do
                        # Re-enable PLL
                        i2cset -y 2 0x71 1 $((p+1))
                        for c in 0 1 2 3 ; do
                                cmd=$(printf "0x84,0x%02X,0,0" $c)
                                spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
                                cmd=$(printf "0x86,0x%02X,0x02,0x11" $c)

CYPER
Hero Member
*****
Offline Offline

Activity: 798
Merit: 502



View Profile
December 21, 2013, 07:12:06 PM
 #150

I think I managed to make it work. Please have a look at my code and tell me if it is OK:

This code is for overclocking each individual die on each board to 850Mhz, so 16 total individual settings for boards at position 0, 1, 2, 3: http://pastebin.com/dSWrP4jF

It works, so I assume it is all good.

I think I understand it better now, so I will probably write a very detailed tutorial tomorrow for people who are not sure what they are doing. But first I will try to switch to BFGMiner to better fine tuning.



Looks good. But please, don't help add a couple hundred THs to the network by being the hero and writing an overclocking tutorial!

Anyway, you can change each individual die to whatever clock speed you want with your code. It's great for people who have issues with bad boards, but simply changing the preceeding 0x86 register will cover 95% of the people who have no bad dies without over complicating things:

Quote
if [ -n "$good_ports" ] ; then
                for p in $good_ports ; do
                        # Re-enable PLL
                        i2cset -y 2 0x71 1 $((p+1))
                        for c in 0 1 2 3 ; do
                                cmd=$(printf "0x84,0x%02X,0,0" $c)
                                spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
                                cmd=$(printf "0x86,0x%02X,0x02,0x11" $c)



True that. I will refrain from making it easy for the average joe then.

Btw what are your observations in regards to unhappy dies?
One of my miners clocked with 201 is showing this: https://i.imgur.com/NSl59Iz.png

Shall I increase the voltage at the Advanced tab, then /config/zzz.sh restart or try first with more/less OC?


the-skeptic
Member
**
Offline Offline

Activity: 91
Merit: 10


View Profile
December 21, 2013, 07:30:58 PM
Last edit: December 21, 2013, 09:23:14 PM by the-skeptic
 #151

201 isn't that fast. The only time I've seen cgminer spit out errors like that was with voltage problems. I leave the SPI voltage at 1.95v and all the dies at -.1121v then fine tune the dies by turning the clock speeds down below factory on the bad dies and cranking them up on the good dies using cgminer.sh.

I leave my advanced tab untouched, with 1.95v and all the stock settings. I have been doing all tuning through the cgminer.sh clock speeds and having great results. CGminer 3.8.2 says I am getting 100GHs+ over factory, with about 125W extra consumed. Not terribly efficient (tell that to BFL!), but it pays for itself handsomely. What would I pay for a 100GHs miner on fleecebay right now? $4000 if I were lucky?

"Hey Mom, I just found $4000 worth of hashing!," I exclaimed.

"I thought I told you to stop smoking that stuff in the house!" she scolded me.
ElGabo
Hero Member
*****
Offline Offline

Activity: 635
Merit: 500


View Profile
December 22, 2013, 10:48:02 AM
 #152




Looks good. But please, don't help add a couple hundred THs to the network by being the hero and writing an overclocking tutorial!

Anyway, you can change each individual die to whatever clock speed you want with your code. It's great for people who have issues with bad boards, but simply changing the preceeding 0x86 register will cover 95% of the people who have no bad dies without over complicating things:

Quote
if [ -n "$good_ports" ] ; then
                for p in $good_ports ; do
                        # Re-enable PLL
                        i2cset -y 2 0x71 1 $((p+1))
                        for c in 0 1 2 3 ; do
                                cmd=$(printf "0x84,0x%02X,0,0" $c)
                                spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
                                cmd=$(printf "0x86,0x%02X,0x02,0x11" $c)



Sorry but a bit off topic

Skeptic

I think we're not enemies here. We're the small guys with a few machines trying to make some profit. We could help each other. This waht is this forum for.

Our enemies are Asicminer and this shit now in Iceland and all the big mining farms.

End off topic

" I'm waiting for my punishment, I know it's on my way
  So cut, cut, cut me up and fuck, fuck, fuck me up"
the-skeptic
Member
**
Offline Offline

Activity: 91
Merit: 10


View Profile
December 22, 2013, 04:24:27 PM
 #153


And the guy in Iceland isn't going to overclock his rigs? </snark>

I've never been impressed with big farms. They do extremely well for a short period of time, but then difficulty and technology catch up quickly. ASICMiner went from being the big dog in the room to being a drop in the bucket. Big farms mean big money investors who don't want to hear about having to re-invest in more equipment, or learn about difficulty increases and exchange rates, they want more money each week, and every week.

"What do you mean the difficulty went from 900 Million to 1.2 Billion and the exchange dropped from $1200 to $650?!?! Where's my damn money?!"

You and I can much more easily absorb the week to week changes of bitcoin, where large farms have angry investors that want more money, not less money each week.

As far as helping people overclock their KNC rigs, it's probably a wash. So few people have the skills to follow really simple command line instructions, I figure an overclocking guide will brick as many machines as it overclocks! What percentage of the average public has ever used a non-gui based text editor? Try to explain vi to them!

Next, throw some cryptic pseudo-MS-DOS (I know it's the other way around) shit like manually copying files and changing directories. Did you know the slashes / \ go the opposite directions in windows and unix? And in Unix directories can have a . in the middle of it's name? Holy crap, that alone is gonna screw half the people right there.

So you changed my mind, PLEASE WRITE AN OVERCLOCKING GUIDE. Gonna fuck some shit up, yes we are.

-Dana
isimme
Member
**
Offline Offline

Activity: 78
Merit: 10


View Profile
December 22, 2013, 05:28:46 PM
 #154

I highly appreciate the efforts of tolip_wen
and beyond words sent some BTC to his address:
13362fxFAdrhagmCvSmFy4WoHrNRPG2V57
I encourage all to contribute something as tolip_wen
has sacrificed mining time developing these tweaks
and the least we can do is give back some of our oc bonus we have because of him.





If I was able to help you in anyway, tips are appreciated:
1A1RcqRKdApT4ViLmZcdDBES8rov3zjMYp
isimme
Member
**
Offline Offline

Activity: 78
Merit: 10


View Profile
December 22, 2013, 05:48:59 PM
 #155

I think I managed to make it work. Please have a look at my code and tell me if it is OK:

This code is for overclocking each individual die on each board to 850Mhz, so 16 total individual settings for boards at position 0, 1, 2, 3: http://pastebin.com/dSWrP4jF

It works, so I assume it is all good.

I think I understand it better now, so I will probably write a very detailed tutorial tomorrow for people who are not sure what they are doing. But first I will try to switch to BFGMiner to better fine tuning.



Looks good. But please, don't help add a couple hundred THs to the network by being the hero and writing an overclocking tutorial!

Anyway, you can change each individual die to whatever clock speed you want with your code. It's great for people who have issues with bad boards, but simply changing the preceeding 0x86 register will cover 95% of the people who have no bad dies without over complicating things:

Quote
if [ -n "$good_ports" ] ; then
                for p in $good_ports ; do
                        # Re-enable PLL
                        i2cset -y 2 0x71 1 $((p+1))
                        for c in 0 1 2 3 ; do
                                cmd=$(printf "0x84,0x%02X,0,0" $c)
                                spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
                                cmd=$(printf "0x86,0x%02X,0x02,0x11" $c)



True that. I will refrain from making it easy for the average joe then.

Btw what are your observations in regards to unhappy dies?
One of my miners clocked with 201 is showing this: https://i.imgur.com/NSl59Iz.png

Shall I increase the voltage at the Advanced tab, then /config/zzz.sh restart or try first with more/less OC?



@CYPER
Please DO write a very detailed tutorial for people who are not sure what they are doing?
I made a contribution to tolip_wen for his shared work
and will do the same for you and as well encourage others to as well.
None of us would be here without some help from someone else at some point.
Thanks

If I was able to help you in anyway, tips are appreciated:
1A1RcqRKdApT4ViLmZcdDBES8rov3zjMYp
CYPER
Hero Member
*****
Offline Offline

Activity: 798
Merit: 502



View Profile
December 22, 2013, 06:06:55 PM
 #156

I think I managed to make it work. Please have a look at my code and tell me if it is OK:

This code is for overclocking each individual die on each board to 850Mhz, so 16 total individual settings for boards at position 0, 1, 2, 3: http://pastebin.com/dSWrP4jF

It works, so I assume it is all good.

I think I understand it better now, so I will probably write a very detailed tutorial tomorrow for people who are not sure what they are doing. But first I will try to switch to BFGMiner to better fine tuning.



Looks good. But please, don't help add a couple hundred THs to the network by being the hero and writing an overclocking tutorial!

Anyway, you can change each individual die to whatever clock speed you want with your code. It's great for people who have issues with bad boards, but simply changing the preceeding 0x86 register will cover 95% of the people who have no bad dies without over complicating things:

Quote
if [ -n "$good_ports" ] ; then
                for p in $good_ports ; do
                        # Re-enable PLL
                        i2cset -y 2 0x71 1 $((p+1))
                        for c in 0 1 2 3 ; do
                                cmd=$(printf "0x84,0x%02X,0,0" $c)
                                spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
                                cmd=$(printf "0x86,0x%02X,0x02,0x11" $c)



True that. I will refrain from making it easy for the average joe then.

Btw what are your observations in regards to unhappy dies?
One of my miners clocked with 201 is showing this: https://i.imgur.com/NSl59Iz.png

Shall I increase the voltage at the Advanced tab, then /config/zzz.sh restart or try first with more/less OC?



@CYPER
Please DO write a very detailed tutorial for people who are not sure what they are doing?
I made a contribution to tolip_wen for his shared work
and will do the same for you and as well encourage others to as well.
None of us would be here without some help from someone else at some point.
Thanks

I would rather help individual people in person like ElGabo did, than write a tutorial Smiley
Find me on Skype and I can help when I am free.
CYPER
Hero Member
*****
Offline Offline

Activity: 798
Merit: 502



View Profile
December 22, 2013, 06:48:19 PM
 #157


As far as helping people overclock their KNC rigs, it's probably a wash. So few people have the skills to follow really simple command line instructions, I figure an overclocking guide will brick as many machines as it overclocks! What percentage of the average public has ever used a non-gui based text editor? Try to explain vi to them!

Next, throw some cryptic pseudo-MS-DOS (I know it's the other way around) shit like manually copying files and changing directories. Did you know the slashes / \ go the opposite directions in windows and unix? And in Unix directories can have a . in the middle of it's name? Holy crap, that alone is gonna screw half the people right there.

So you changed my mind, PLEASE WRITE AN OVERCLOCKING GUIDE. Gonna fuck some shit up, yes we are.

-Dana

Good points.
I am no Linux guru, but back in 2011 when I was GPU mining I managed to run a headless Ubuntu rig with no prior unix experience. Most of it is having good computer skills in general and using Google.
Until today I've never used vi, but again using Google I got all the required information: hint use xxdd to delete a specific number of lines - example 85dd to delete 85 lines.
merv77
Hero Member
*****
Offline Offline

Activity: 574
Merit: 500


1.21 GIGA WATTS


View Profile
December 22, 2013, 07:35:11 PM
 #158

here's an idea.

if someone with the knowledge could backup/dump the firmware on a working miner (or use downloadable firmware version) to see if you can successfully revive/restore a bricked miner.  Then write a detailed (dumb proof) tutorial on how to restore the bricked miner (really it's restoring a beaglebone, not a miner).

then a detailed tutorial on overclocking can be written and used by anyone willing to take the risk to try.

Who's has the knowledge and is up for the task? 

I'm sure there be a few of us happy to donate if this were to happen.  no?  I would  Wink


the-skeptic
Member
**
Offline Offline

Activity: 91
Merit: 10


View Profile
December 22, 2013, 07:39:08 PM
 #159


Good points.
I am no Linux guru, but back in 2011 when I was GPU mining I managed to run a headless Ubuntu rig with no prior unix experience. Most of it is having good computer skills in general and using Google.
Until today I've never used vi, but again using Google I got all the required information: hint use xxdd to delete a specific number of lines - example 85dd to delete 85 lines.


Until you gotta explain:
"Oh, actually, hit escape, then type : , Then type 85dd"

You're dealing with a ton of people who have never done any gpu or cpu mining, when it comes to KNC owners. The promise of the plug-n-play 400GHs miner lured plenty of newbs into the mix.

I think you're smart to help people one-on-one, since each person is going to be running a different desktop OS to access the miner, and that can have a huge impact on how you do things. A one-size-fits-all overclocking system is gonna lead to a lot of people wishing they had never learned what SSH was.

On another topic: What's the rumor mill say about Jupiters opening up for sale again? I got some more BTC I wanna spend.
complang
Newbie
*
Offline Offline

Activity: 32
Merit: 0


View Profile
December 22, 2013, 09:57:10 PM
 #160

I've labbed around with this modification and a 8VRM November Saturn - 99-E FW.
It did not blew up and it certenly had an impact on the hashrate.

I tried differend combos, everyone resulting in a lower hashrate than OEM config.
This is the OEM conf:
Quote
        if [ -n "$good_ports" ] ; then
                for p in $good_ports ; do
                        # re-enable all cores
                        i=0
                        while [[ $i -lt 192 ]] ; do
                                i2cset -y 2 0x2$p $i 1
                                i=$((i+1))
                        done
                        spi_ena=$(( spi_ena | (1 << $p) ))
                done
        fi
And this is cgminer screen from OE conf: (340+ Gh/s)
https://dl.dropboxusercontent.com/u/39955703/bc/OEM_cgminer.PNG

This is the changes:
Quote
        if [ -n "$good_ports" ] ; then
                for p in $good_ports ; do
 # Re-enable PLL
                        i2cset -y 2 0x71 1 $((p+1))
                        for c in 0 1 2 3 ; do
                                cmd=$(printf "0x84,0x%02X,0,0" $c)
                                spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
                                cmd=$(printf "0x86,0x%02X,0x02,0x11" $c)

if [ $p -eq 0 ]
then
       if [ $c -eq 0 ]
       then
               cmd=$(printf "0x86,0x%02X,0x02,0x11" $c)
       fi
       if [ $c -eq 1 ]
       then
               cmd=$(printf "0x86,0x%02X,0x02,0x11" $c)
       fi
       if [ $c -eq 2 ]
       then
               cmd=$(printf "0x86,0x%02X,0x02,0x11" $c)
       fi
       if [ $c -eq 3 ]
       then
               cmd=$(printf "0x86,0x%02X,0x02,0x11" $c)
       fi
fi

if [ $p -eq 4 ]
then
       if [ $c -eq 0 ]
       then
               cmd=$(printf "0x86,0x%02X,0x01,0xF1" $c)
       fi
       if [ $c -eq 1 ]
       then
               cmd=$(printf "0x86,0x%02X,0x02,0x11" $c)
       fi
       if [ $c -eq 2 ]
       then
               cmd=$(printf "0x86,0x%02X,0x02,0x11" $c)
       fi
       if [ $c -eq 3 ]
       then
               cmd=$(printf "0x86,0x%02X,0x02,0x11" $c)
       fi
fi

                                spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
                                cmd=$(printf "0x85,0x%02X,0,0" $c)
                                spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
                        done
                        # re-enable all cores
                        i=0
                        while [[ $i -lt 192 ]] ; do
                                i2cset -y 2 0x2$p $i 1
                                i=$((i+1))
                        done
                        spi_ena=$(( spi_ena | (1 << $p) ))
                done
        fi
The best combo I've come up with is:
All cores on p0 = 211
+
cores on p4 = 231
This settings go more or less straight to 333Gh/s and stays ULTRA stable there. Not seen anything like this before. Just som HWs in the beginning, and some singles after that.
https://dl.dropboxusercontent.com/u/39955703/bc/211%2B231.PNG
It affects power usage very little, if anything at all. Temps are the same.

If using 211 is will go to 300Gh/s

Looked through the thread and it seems like someone was using 1F1, what does this corresponds to?

Don't wanna try more right now, loosing to much hash rate when labbing around with this Sad
Pages: « 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 ... 66 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!