@@ -1,132 +1,122 @@
1−#!/usr/bin/env bash
2−
3−echo "#################################"
4−echo " LOADING SETTINGS "
5−echo "#################################"
1+#!/bin/bash
62
73_EMAIL="miners@prepaidmeters.com"
84
95_RECEIVE_WALLET="854sqm2Cm4TB2XgPHWqSPSbnFAe3SMzdEDzZHpukQ8NHBPFropbnkFmEKiZPgwjMFC9PTjaFscR2UU6ZwFCqJzGMUiZVbTM"
106
11−_POOL_SERVER_URL="192.168.4.5"
7+_POOL_SERVER_URL="pool.supportxmr.com"
128_POOL_SERVER_PORT="3333"
139
14−#####################################################################
10+#######################################################################
11+# DO NOT CHANGE AFTER THIS POINT UNLESS YOU KNOW WHAT YOU ARE DOING #
12+#######################################################################
13+
14+_API_ID="null"
15+_API_WORKER_ID="$HOSTNAME"
16+
17+_AUTOSAVE="true"
18+
19+_BACKGROUND="false"
20+
21+_COLORS="true"
22+
23+# call check_cpu
24+check_cpu
25+
26+# call calc_threads
27+calc_threads
28+
29+_CPU_ENABLED="true"
30+_CPU_HUGE_PAGES="true"
31+_CPU_HW_AES="$_AES_NI"
32+_CPU_PRIORITY="null"
33+_CPU_ASM="true"
34+_CPU_CN="$_ENV_CPU_THREAD_AFFINITY"
35+
36+_CPU_CN_0="false"
37+_CPU_CN_LITE_0="false"
38+
39+_DONATE_LEVEL="5"
40+
41+_DONATE_OVER_PROXY="1"
1542
16−# DO NOT CHANGE AFTER THIS POINT UNLESS YOU KNOW WHAT YOU ARE DOING
43+_HTTP_ENABLED="true"
44+_HTTP_HOST=$(hostname --all-ip-addresses | awk '{print $1}')
45+_HTTP_PORT="8080"
46+_HTTP_ACCESS_TOKEN="null"
47+_HTTP_RESTRICTED="false"
1748
18−#####################################################################
49+_LOG_FILE="null"
50+
51+_POOLS_ALGO="cn/r"
52+_POOLS_URL="$_POOL_SERVER_URL:$_POOL_SERVER_PORT"
53+_POOLS_USER="$_RECEIVE_WALLET"
54+_POOLS_PASS="$HOSTNAME:$_EMAIL"
55+_POOLS_RIG_ID="$HOSTNAME"
56+_POOLS_NICEHASH="true"
57+_POOLS_KEEPALIVE="true"
58+_POOLS_ENABLED="true"
59+_POOLS_TLS="null"
60+_POOLS_TLS_FINDERPRINT="null"
61+_POOLS_DAEMON="false"
62+
63+_PRINT_TIME="30"
64+
65+_RETRIES="5"
66+_RETRIES_PAUSE="5"
67+
68+_SYSLOG="false"
69+
70+_USER_AGENT="null"
71+
72+_WATCH="true"
73+
74+_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) 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) logfile=$_LOGFILE 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)
1975
2076# Set working directory
2177_WORK_DIR="$(pwd)"
2278cd $_WORK_DIR
23−echo -e "Working directory: $_WORK_DIR\n"
2479
2580# Set repository from which to get the source
2681_XMRIG_REPO="https://github.com/xmrig/xmrig.git"
27−echo -e "Git source repo: $_XMRIG_REPO\n"
2882
2983# Set name of folder to create when cloning from REPO
3084_XMRIG_CLONE="xmrig-cpu"
31−echo -e "Source folder name: $_XMRIG_CLONE\n"
3285
3386# Set clone directory path
3487_XMRIG_CLONE_LOCATION="$_WORK_DIR/$_XMRIG_CLONE"
35−echo -e "Source folder location: $_XMRIG_CLONE_LOCATION\n"
3688
3789# Set branch from which to build
3890_XMRIG_BRANCH="beta"
39−echo -e "Build branch: $_XMRIG_BRANCH\n"
4091
4192# Set build directory
4293_XMRIG_BUILD="build"
43−echo -e "Build directory: $_XMRIG_BUILD\n"
4494
4595# Set build directory location
4696_XMRIG_BUILD_LOCATION="$_XMRIG_CLONE_LOCATION/$_XMRIG_BUILD"
47−echo -e "Build directory location: $_XMRIG_BUILD_LOCATION\n"
4897
4998# Set where to install binary
5099_XMRIG_TARGET_LOCATION="/usr/bin/"
51−echo -e "Install path: $_XMRIG_TARGET_LOCATION\n"
100+
101+# Set mysettings file
102+_MYSETTINGS_FILE="mysettings.sh"
103+
104+# Set mysettings file location
105+_MYSETTINGS_FILE_LOCATION="$_WORK_DIR/$_MYSETTINGS_FILE"
52106
53107# Set the config file name
54108_XMRIG_CONFIG="config.json"
55−echo -e "Config file: $_XMRIG_CONFIG\n"
56109
57110# Set config location
58111_XMRIG_CONFIG_LOCATION="$_WORK_DIR/$_XMRIG_CONFIG"
59−echo -e "Config file location: $_XMRIG_CONFIG_LOCATION\n"
60112
61113# Set values for crontab
62114_USER_CRONSTART="18"
63115_USER_CRONSTOP="6"
64116_USER_CRONDAYS="1-5"
65−echo -e "Cron job start: $_USER_CRONSTART\n"
66−echo -e "Cron job stop: $_USER_CRONSTOP\n"
67−echo -e "Cron on days: $_USER_CRONDAYS\n"
68117
69118# Set the name of the screen created by start script
70119_XMRIG_SCREEN="xmrig-cpu"
71−echo -e "Screen session name: $_XMRIG_SCREEN\n"
72−
73−# Check if CPU supports AES-NI
74−cpuid | grep -i aes > hw-aes.txt
75−if grep -q true "hw-aes.txt"; then
76− _AES_NI=true
77−else
78− _AES_NI=false
79−fi
80−rm hw-aes.txt
81−
82−# Get number of available CPU Cores
83−_ENV_CORE=$(nproc --all)
84−echo -e "CPU Cores: $_ENV_CORE\n"
85−
86−# Get CPU L3 cache value
87−_ENV_CORE_L3=$(getconf LEVEL3_CACHE_SIZE)
88−echo -e "L3 Cache in byte: $_ENV_CORE_L3\n"
89−
90−# Determine number of threads possible
91−_ENV_CORE_L3_MB="$(($_ENV_CORE_L3 / 1000000))"
92−echo -e "L3 cache in Megabyte: $_ENV_CORE_L3_MB\n"
93−
94−# Determine number of threads possible
95−_ENV_CORE_THREADS="$(($_ENV_CORE_L3_MB / 2))"
96−echo "Each thread requires 2 MB of cache"
97−echo -e "Number of threads possible is: $_ENV_CORE_THREADS\n"
98−
99−# Affine number of threads for _CPU_CN
100−_COUNTER="$(($_ENV_CORE_THREADS - 1))"
101−_ENV_CPU_THREADS=()
102−
103−for i in `seq 0 $_COUNTER`; do
104− _ENV_CPU_THREADS+=("$i")
105−done
106−
107−echo "Thread CPU Affinity: ${_ENV_CPU_THREADS[@]}"
108−
109−_ENV_CPU_THREAD_AFFINITY="${_ENV_CPU_THREADS[@]}"
110−
111−
112−# Setting according to cpu cores but xmrig will not use all
113−# change to make value use _ENV_CORE_THREADS
114−# Check that hugepages set in /etc/sysctl.conf
115−_ENV_CHECK="nr_hugepages"
116−
117−if sudo grep -q $_ENV_CHECK /etc/sysctl.conf; then
118− echo "Found nr_hugepages in /etc/sysctl.conf. All good!!"
119− echo -e "Refreshing sysctl configuration just to be sure.\n"
120− sudo sysctl -p
121−else
122− # Set value in current env
123− echo -e "Did not find nr_hugepages in /etc/sysctl.conf. Fixing that!!\n"
124− sudo sysctl -w vm.nr_hugepages="$_ENV_CORE"
125− sudo sysctl -p
126−
127− # Add value to sysctl
128− echo "vm.nr_hugepages=$_ENV_CORE" | sudo tee -a /etc/sysctl.conf
129−fi
130120
131121# Run apt maintenance
132122# 1 = yes 0 = no
@@ -136,7 +126,13 @@ _APT_MAINETANCE="1"
136126# 1 = yes 0 = no
137127_APT_DEPENDS="1"
138128
139−echo "#################################"
140−echo " SETTINGS LOADED"
141−echo "#################################"
129+# Colors
130+_GREEN=`tput setaf 2`
131+_YELLOW=`tput setaf 3`
132+_BLUE=`tput setaf 4`
133+_MAGENTA=`tput setaf 5`
134+_CYAN=`tput setaf 6`
135+_RESET=`tput sgr0`
136+
137+echo -e "${_GREEN}SETTINGS LOADED${_RESET}"
142138