@@ -1,48 +1,6 @@
11#!/bin/bash
22
3−echo -e "${_GREEN}LOADING FUNCTIONS${_RESET}"
4−
5−function prompt_confirm() {
6− while true; do
7− read -r -n 1 -p "${1:-Continue?} [y/n]: " REPLY
8− case $REPLY in
9− [yY]) echo ; return 0 ;;
10− [nN]) echo ; return 1 ;;
11− *) printf " \033[31m %s \n\033[0m" "invalid input [y/n]"
12− esac
13− done
14−}
15−
16−function show_settings () {
17− echo "${_CYAN}Settings from loaded environment:${_RESET}"
18− echo "${_GREEN}Pool URL:${_RESET}: $_POOLS_URL"
19− echo "${_GREEN}Recieve Wallet:${_RESET}: $_POOLS_USER"
20− echo "${_GREEN}Email Address:${_RESET}: $_POOLS_PASS"
21−}
22−
23−function show_mysettings () {
24− if [ -f $_WORK_DIR/$_MYSETTINGS_FILE ]; then
25− load_mysettings
26− echo "${_CYAN}Settings from mysettings.sh:${_RESET}"
27− echo "${_GREEN}Pool URL:${_RESET}: $_POOLS_URL"
28− echo "${_GREEN}Recieve Wallet:${_RESET}: $_POOLS_USER"
29− echo "${_GREEN}Email Address:${_RESET}: $_POOLS_PASS"
30− fi
31−}
32−
33−function load_mysettings () {
34− if [ -f $_WORK_DIR/$_MYSETTINGS_FILE ]; then
35− . $_MYSETTINGS_FILE
36− fi
37−}
38−
39−function my_config_json () {
40−
41− _CONFIG_JSON=$(jo -p -B api=$(jo id=$_API_ID worker-id=$_API_WORKER_ID) autosave=$_AUTOSAVE background=$_BACKGROUND colors=$_COLORS cpu=$(jo enabled=$_CPU_ENABLED huge-pages=$_CPU_HUGE_PAGES hw-aes=$_CPU_HW_AES priority=$_CPU_PRIORITY asm=$_CPU_ASM cn=$(jo -a $_CPU_CN) cn/0=$_CPU_CN_0 cn-lite/0=$_CPU_CN_LITE_0) opencl=$(jo enabled=$_OPENCL_ENABLED cache=$_OPENCL_CACHE loader=$_OPENCL_LOADER platform=$_OPENCL_PLATFORM) donate-level=$_DONATE_LEVEL donate-over-proxy=$_DONATE_OVER_PROXY http=$(jo enabled=$_HTTP_ENABLED host=$_HTTP_HOST port=$_HTTP_PORT access-token=$_HTTP_ACCESS_TOKEN restricted=$_HTTP_RESTRICTED) log-file=$_LOG_FILE pools=$(jo -a $(jo algo=$_POOLS_ALGO url=$_POOLS_URL user=$_POOLS_USER pass=$_POOLS_PASS rig-id=$_POOLS_RIG_ID nicehash=$_POOLS_NICEHASH keepalive=$_POOLS_KEEPALIVE enabled=$_POOLS_ENABLED tls=$_POOLS_TLS tls-fingerprint=$_POOLS_TLS_FINDERPRINT daemon=$_POOLS_DAEMON)) print-time=$_PRINT_TIME retries=$_RETRIES retry-pause=$_RETRIES_PAUSE syslog=$_SYSLOG user-agent=$_USER_AGENT watch=$_WATCH)
42−
43−}
44−
45−function build_xmrig () {
3+build_xmrig () {
464 if [ -d $_XMRIG_BUILD_LOCATION ]; then
475 # Remove existing build directory
486 rm -rf $_XMRIG_BUILD_LOCATION
@@ -58,23 +16,23 @@ function build_xmrig () {
5816 cd $_XMRIG_BUILD_LOCATION
5917
6018 # Configure cmake scafolding
61− cmake ..
19+ cmake .. -DCMAKE_C_COMPILER=gcc-7 -DCMAKE_CXX_COMPILER=g++-7
6220
6321 # Compile the software
6422 make
6523}
6624
6725
68−function start_xmrig () {
26+start_xmrig () {
6927 screen -dmS $_XMRIG_SCREEN xmrig --config=$_XMRIG_CONFIG_LOCATION
7028}
7129
7230
73−function stop_xmrig () {
31+stop_xmrig () {
7432 screen -S $_XMRIG_SCREEN -X kill
7533}
7634
77−function check_cpu () {
35+check_cpu () {
7836 # Check if CPU supports AES-NI
7937 cpuid | grep -i aes > hw-aes.txt
8038 if grep -q true "hw-aes.txt"; then
@@ -91,35 +49,33 @@ function check_cpu () {
9149 _ENV_CORE_L3=$(getconf LEVEL3_CACHE_SIZE)
9250}
9351
94−function calc_threads () {
95− # Each thread needs 2048 byte (2 Megabyte)
96− # Calculate number of threads supported with L3 cache size
97−
98− _ENV_THREAD_QTY=$(( ($_ENV_CORE_L3/2048)/1000 ))
52+calc_threads () {
9953
10054 # Affine number of threads for _CPU_CN
101− _COUNTER="$(( $_ENV_THREAD_QTY-1 ))"
55+ _COUNTER="$(($_ENV_CORE_THREADS - 1))"
56+ _ENV_CPU_THREADS=()
10257
103− _ENV_CPU_THREAD_AFFINITY="$(seq -s " " 0 $_COUNTER)"
58+ for i in `seq 0 $_COUNTER`; do
59+ _ENV_CPU_THREADS+=("$i")
60+ done
10461
105−}
62+ _ENV_CPU_THREAD_AFFINITY="$_ENV_CPU_THREADS"
63+
64+ # Setting according to cpu cores but xmrig will not use all
65+ # change to make value use _ENV_CORE_THREADS
66+ # Check that hugepages set in /etc/sysctl.conf
67+
68+ _ENV_CHECK="nr_hugepages"
10669
107−function calc_hugepages () {
108− # Setting according to cpu cores but xmrig will not use all
109− # change to make value use _ENV_CORE_THREADS
110− # Check that hugepages set in /etc/sysctl.conf
111−
112− _ENV_CHECK="nr_hugepages"
113−
114− if sudo grep -q $_ENV_CHECK /etc/sysctl.conf; then
115− sudo sysctl -p
116− else
117− # Set value in current env
118− sudo sysctl -w vm.nr_hugepages="$_ENV_THREAD_QTY"
119− # Add value to sysctl
120− sudo sysctl -p
121− fi
70+ if sudo grep -q $_ENV_CHECK /etc/sysctl.conf; then
71+ sudo sysctl -p
72+ else
73+ # Set value in current env
74+ sudo sysctl -w vm.nr_hugepages="$_ENV_CORE"
75+ # Add value to sysctl
76+ sudo sysctl -p
77+ fi
12278
12379}
12480
125−echo -e "${_CYAN}FUNCTIONS LOADED${_RESET}"
81+echo -e "FUNCTIONS LOADED\n\n"