@@ -1,132 +1,122 @@
1−#!/usr/bin/env bash
1+#!/bin/bash
3−echo "#################################"
4−echo " LOADING SETTINGS "
5−echo "#################################"
7_EMAIL="miners@prepaidmeters.com"
3_EMAIL="miners@prepaidmeters.com"
9_RECEIVE_WALLET="854sqm2Cm4TB2XgPHWqSPSbnFAe3SMzdEDzZHpukQ8NHBPFropbnkFmEKiZPgwjMFC9PTjaFscR2UU6ZwFCqJzGMUiZVbTM"
5_RECEIVE_WALLET="854sqm2Cm4TB2XgPHWqSPSbnFAe3SMzdEDzZHpukQ8NHBPFropbnkFmEKiZPgwjMFC9PTjaFscR2UU6ZwFCqJzGMUiZVbTM"
11−_POOL_SERVER_URL="192.168.4.5"
7+_POOL_SERVER_URL="pool.supportxmr.com"
12_POOL_SERVER_PORT="3333"
8_POOL_SERVER_PORT="3333"
14−#####################################################################
10+#######################################################################
11+# DO NOT CHANGE AFTER THIS POINT UNLESS YOU KNOW WHAT YOU ARE DOING #
12+#######################################################################
15+_API_WORKER_ID="$HOSTNAME"
30+_CPU_HUGE_PAGES="true"
31+_CPU_HW_AES="$_AES_NI"
34+_CPU_CN="$_ENV_CPU_THREAD_AFFINITY"
37+_CPU_CN_LITE_0="false"
41+_DONATE_OVER_PROXY="1"
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}')
46+_HTTP_ACCESS_TOKEN="null"
47+_HTTP_RESTRICTED="false"
18−#####################################################################
49+_LOG_FILE="null"
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"
60+_POOLS_TLS_FINDERPRINT="null"
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)
20# Set working directory
76# Set working directory
21_WORK_DIR="$(pwd)"
77_WORK_DIR="$(pwd)"
22cd $_WORK_DIR
78cd $_WORK_DIR
23−echo -e "Working directory: $_WORK_DIR\n"
25# Set repository from which to get the source
80# Set repository from which to get the source
26_XMRIG_REPO="https://github.com/xmrig/xmrig.git"
81_XMRIG_REPO="https://github.com/xmrig/xmrig.git"
27−echo -e "Git source repo: $_XMRIG_REPO\n"
29# Set name of folder to create when cloning from REPO
83# Set name of folder to create when cloning from REPO
30_XMRIG_CLONE="xmrig-cpu"
84_XMRIG_CLONE="xmrig-cpu"
31−echo -e "Source folder name: $_XMRIG_CLONE\n"
33# Set clone directory path
86# Set clone directory path
34_XMRIG_CLONE_LOCATION="$_WORK_DIR/$_XMRIG_CLONE"
87_XMRIG_CLONE_LOCATION="$_WORK_DIR/$_XMRIG_CLONE"
35−echo -e "Source folder location: $_XMRIG_CLONE_LOCATION\n"
37# Set branch from which to build
89# Set branch from which to build
38_XMRIG_BRANCH="beta"
90_XMRIG_BRANCH="beta"
39−echo -e "Build branch: $_XMRIG_BRANCH\n"
41# Set build directory
92# Set build directory
42_XMRIG_BUILD="build"
93_XMRIG_BUILD="build"
43−echo -e "Build directory: $_XMRIG_BUILD\n"
45# Set build directory location
95# Set build directory location
46_XMRIG_BUILD_LOCATION="$_XMRIG_CLONE_LOCATION/$_XMRIG_BUILD"
96_XMRIG_BUILD_LOCATION="$_XMRIG_CLONE_LOCATION/$_XMRIG_BUILD"
47−echo -e "Build directory location: $_XMRIG_BUILD_LOCATION\n"
49# Set where to install binary
98# Set where to install binary
50_XMRIG_TARGET_LOCATION="/usr/bin/"
99_XMRIG_TARGET_LOCATION="/usr/bin/"
51−echo -e "Install path: $_XMRIG_TARGET_LOCATION\n"
100+
101+# Set mysettings file
102+_MYSETTINGS_FILE="mysettings.sh"
104+# Set mysettings file location
105+_MYSETTINGS_FILE_LOCATION="$_WORK_DIR/$_MYSETTINGS_FILE"
53# Set the config file name
107# Set the config file name
54_XMRIG_CONFIG="config.json"
108_XMRIG_CONFIG="config.json"
55−echo -e "Config file: $_XMRIG_CONFIG\n"
57# Set config location
110# Set config location
58_XMRIG_CONFIG_LOCATION="$_WORK_DIR/$_XMRIG_CONFIG"
111_XMRIG_CONFIG_LOCATION="$_WORK_DIR/$_XMRIG_CONFIG"
59−echo -e "Config file location: $_XMRIG_CONFIG_LOCATION\n"
61# Set values for crontab
113# Set values for crontab
62_USER_CRONSTART="18"
114_USER_CRONSTART="18"
63_USER_CRONSTOP="6"
115_USER_CRONSTOP="6"
64_USER_CRONDAYS="1-5"
116_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"
69# Set the name of the screen created by start script
118# Set the name of the screen created by start script
70_XMRIG_SCREEN="xmrig-cpu"
119_XMRIG_SCREEN="xmrig-cpu"
71−echo -e "Screen session name: $_XMRIG_SCREEN\n"
73−# Check if CPU supports AES-NI
74−cpuid | grep -i aes > hw-aes.txt
75−if grep -q true "hw-aes.txt"; then
82−# Get number of available CPU Cores
83−_ENV_CORE=$(nproc --all)
84−echo -e "CPU Cores: $_ENV_CORE\n"
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"
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"
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"
99−# Affine number of threads for _CPU_CN
100−_COUNTER="$(($_ENV_CORE_THREADS - 1))"
103−for i in `seq 0 $_COUNTER`; do
104− _ENV_CPU_THREADS+=("$i")
107−echo "Thread CPU Affinity: ${_ENV_CPU_THREADS[@]}"
109−_ENV_CPU_THREAD_AFFINITY="${_ENV_CPU_THREADS[@]}"
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"
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"
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"
127− # Add value to sysctl
128− echo "vm.nr_hugepages=$_ENV_CORE" | sudo tee -a /etc/sysctl.conf
131# Run apt maintenance
121# Run apt maintenance
132# 1 = yes 0 = no
122# 1 = yes 0 = no
@@ -136,7 +126,13 @@ _APT_MAINETANCE="1"
136# 1 = yes 0 = no
126# 1 = yes 0 = no
137_APT_DEPENDS="1"
127_APT_DEPENDS="1"
139−echo "#################################"
129+# Colors
130+_GREEN=`tput setaf 2`
131+_YELLOW=`tput setaf 3`
133+_MAGENTA=`tput setaf 5`
140−echo " SETTINGS LOADED"
137+echo -e "${_GREEN}SETTINGS LOADED${_RESET}"
141−echo "#################################"