Post
Topic
Board Mining support
Re: Hacking The KNC Firmware: Overclocking
by
joeventura
on 19/12/2013, 03:02:08 UTC
I second that.  I'm getting between 575 and 625 on my day 1 shipment miner (which arrived on day 5) .  The Beaglebone board went south on mine the second week I had it and I lost 2 weeks due to incompetence by KNC.  This is truly amazing and I thank you so very much for sharing the info.  Still wish I had my 2 weeks back when the difficulty was still 86,933,018, but this takes a little pain away from the wound and I salute you for it.  Curious if any of you guys bit on the new miner?  If so I look forward to seeing what you can accomplish.  I didn't bite on that one myself after getting burned the first time... but will be watching.  Many thanks!


- .m.w. -


and all you did was issue this:

sed sBD1BF1B /config/zzz.sh ; /config/zzz.sh restart

??

The sed command changes one register and gives you a mild 7% boost in speed. In order to see the fastest speeds you need to read though the hieroglyphics on this thread and figure out what they are saying. when I figured it out, I am getting almost 15% over factory speeds.

The main thing you need to do is ssh into your miner and use a text editor to edit /etc/init.d/cgminer.sh

try:
vi /etc/init.d/cgminer.sh


Use the cursor keys on your keyboard to scroll down till you see this code, the important parts you will change are in bold:

Quote
                                                           
                                if [ $p -eq 2 ]                                            
                                then                                                      
                                        cmd=$(printf "0x86,0x%02X,0x01,0xF1" $c)          
                                        if [ $c -eq 1 ]                                    
                                        then                                              
                                                cmd=$(printf "0x86,0x%02X,0x03,0xE2" $c)  
                                        fi                                                

When you see someone say "Try 201" (which gives about 12% speed increase) you would edit the code to look like:

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

Hit escape when finished. Then hit the : key, then x to save.

relaunch cgminer with the command line:
/etc/init.d/cgminer.sh restart

Don't blame me if shit blows up. I'm just one newbie helping another.


I personally use 211, but have extra fans inside the case for extra cooling, just to be safe. A list of codes and corresponding speeds are listed several times in this thread, I suggest trying several until you find one that gives you a good boost in speed without going over 40-42watts per die, since they are rated at 40W per VRM.

Good luck.


My problem is I cant find that exact code in my file

Quote
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,0xD1" $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
                        while [[ $i -lt 192 ]] ; do
                                i2cset -y 2 0x2$p $i 0


Thats what miine looks like (4 VRM)

What should I change? The bolded line?