The bin file is loaded via the upgrade tab in miner administration just like you would upload a firmware. On reboot the modification will be gone again and bin file will have to be uploaded again in order to apply oc setting.
The bin file contains a folder with two files:
runme.sh
#!/bin/sh
cp cgminer.sh /etc/init.d/cgminer.sh
echo "900MHz OC setting copied! Please go back to Miner Settings page and Restart Miner without rebooting by clicking here."
cgminer.sh
#!/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
use_bfgminer=
if [ -f /config/miner.conf ]; then
. /config/miner.conf
fi
if [ "$use_bfgminer" = true ] ; then
DAEMON=/usr/bin/bfgminer
NAME=bfgminer
DESC="BFGMiner daemon"
EXTRA_OPT="-S knc:auto"
else
DAEMON=/usr/bin/cgminer
NAME=cgminer
DESC="Cgminer daemon"
EXTRA_OPT=
fi
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
for p in $good_ports ; do
# Re-enable PLL START MOD FW 1.01
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,0x01" $c)
# cmd=$(printf "0x86,0x%02X,0x02,0x11" $c)
# cmd=$(printf "0x86,0x%02X,0x02,0x21" $c)
cmd=$(printf "0x86,0x%02X,0x02,0x31" $c)
# cmd=$(printf "0x86,0x%02X,0x02,0x41" $c)
# cmd=$(printf "0x86,0x%02X,0x02,0x51" $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
# END MOD FW 1.01
# 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 START MOD FW 1.01
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
# END MOD FW 1.01
# disable all cores
i=0
while [[ $i -lt 192 ]] ; do
i2cset -y 2 0x2$p $i 0
i=$((i+1))
done
spi_ena=$(( spi_ena & ~(1 << $p) ))
done
fi
# Disable direct SPI
i2cset -y 2 0x71 1 0
# Enable SPI poller
i2cset -y 2 0x71 2 $spi_ena
start-stop-daemon -b -S -x screen -- -S cgminer -t cgminer -m -d "$DAEMON" --api-listen -c /config/cgminer.conf $EXTRA_OPT
}
do_stop() {
killall -9 bfgminer cgminer 2>/dev/null || true
}
case "$1" in
start)
echo -n "Starting $DESC: "
do_start
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
do_stop
echo "$NAME."
;;
restart|force-reload)
echo -n "Restarting $DESC: "
do_stop
do_start
echo "$NAME."
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
runme.sh will copy a modified version of cgminer.sh set for 900MHz to /etc/init.d/ overwriting the original cgminer.sh
After uploading the bin file, you need to go to the mining tab in administration and pick Restart Miner in order to apply setting.
Content of bin file can be examined and modified using e.g. 7zip
Other oc settings are listed in the modified cgminer.sh like:
# cmd=$(printf "0x86,0x%02X,0x02,0x01" $c)
# cmd=$(printf "0x86,0x%02X,0x02,0x11" $c)
# cmd=$(printf "0x86,0x%02X,0x02,0x21" $c)
cmd=$(printf "0x86,0x%02X,0x02,0x31" $c)
# cmd=$(printf "0x86,0x%02X,0x02,0x41" $c)
# cmd=$(printf "0x86,0x%02X,0x02,0x51" $c)
# are disabled settings
Active setting is 231 which corresponds to 900MHz:
cmd=$(printf "0x86,0x%02X,0x02,0x31" $c)
Lowest disabled setting is 201 which corresponds to 825MHz:
# cmd=$(printf "0x86,0x%02X,0x02,0x01" $c)
Highest disabled setting is 251 which corresponds to 950MHz:
# cmd=$(printf "0x86,0x%02X,0x02,0x51" $c)
If you wish to go beyond these ranges, then look up the list of settings posted in various threads here.
Applying any other setting than the active 231 setting require that you modify the cgminer.sh in the bin file.
I take no responsibility for any damage due to oc if such should occur. The 231 setting is quite safe if you have proper cooling, but you will probably need to adjust die voltages to match the higher asic frequency.
Any changes made to voltages in Advanced Settings, will reset frequency to stock default setting and you will have to pick Restart Miner in the Mining tab in order to reapply oc settings.
Download available here:
https://www.dropbox.com/s/8w4dacsp8r1u9eu/1.01.900MHz.bin
Thanks to all those who shared their findings in this great thread.