@@ -1,130 +1,143 @@
1−#!/bin/bash
1+#!/usr/bin/env bash
22
3−echo -e "${_GREEN}LOADING DEFAULT SETTINGS${_RESET}"
3+echo "#################################"
4+echo " LOADING SETTINGS "
5+echo "#################################"
46
5−_EMAIL="spam@iko.soy"
7+_EMAIL="miners@prepaidmeters.com"
68
7−_RECEIVE_WALLET="44FADBDhNRvjJszF5mLS4VCwZ71mY7ftfUErEisPoT724hb5eYuvuFqWthniY8dGPBTcWuBoeLrLJVkxLHCb1Lsd4DdbZzZ"
9+_RECEIVE_WALLET="854sqm2Cm4TB2XgPHWqSPSbnFAe3SMzdEDzZHpukQ8NHBPFropbnkFmEKiZPgwjMFC9PTjaFscR2UU6ZwFCqJzGMUiZVbTM"
810
9−_POOL_SERVER_URL="xmrpool.eu"
10−_POOL_SERVER_PORT="5555"
11+_POOL_SERVER_URL="192.168.4.5"
12+_POOL_SERVER_PORT="3333"
1113
12−# Call function
13−show_settings
14+#####################################################################
1415
15−#######################################################################
16−# DO NOT CHANGE AFTER THIS POINT UNLESS YOU KNOW WHAT YOU ARE DOING #
17−#######################################################################
16+# DO NOT CHANGE AFTER THIS POINT UNLESS YOU KNOW WHAT YOU ARE DOING
1817
19−_API_ID='null'
20−_API_WORKER_ID="$HOSTNAME"
21−
22−_AUTOSAVE="true"
23−
24−_BACKGROUND="false"
25−
26−_COLORS="true"
27−
28−# call check_cpu
29−check_cpu
30−
31−# call calc_threads
32−calc_threads
33−
34−_CPU_ENABLED="true"
35−_CPU_HUGE_PAGES="true"
36−_CPU_HW_AES="$_AES_NI"
37−_CPU_PRIORITY='null'
38−_CPU_ASM="true"
39−_CPU_CN="$_ENV_CPU_THREAD_AFFINITY"
40−
41−_CPU_CN_0="false"
42−_CPU_CN_LITE_0="false"
43−
44−_OPENCL_ENABLED="false"
45−_OPENCL_CACHE="true"
46−_OPENCL_LOADER='null'
47−_OPENCL_PLATFORM="AMD"
48−
49−_DONATE_LEVEL="0"
50−
51−_DONATE_OVER_PROXY="1"
52−
53−_HTTP_ENABLED="true"
54−_HTTP_HOST=$(hostname --all-ip-addresses | awk '{print $1}')
55−_HTTP_PORT="8080"
56−_HTTP_ACCESS_TOKEN='null'
57−_HTTP_RESTRICTED="false"
58−
59−_LOG_FILE='null'
60−
61−_POOLS_ALGO="cn/r"
62−_POOLS_URL="$_POOL_SERVER_URL:$_POOL_SERVER_PORT"
63−_POOLS_USER="$_RECEIVE_WALLET"
64−_POOLS_PASS="$HOSTNAME:$_EMAIL"
65−_POOLS_RIG_ID="$HOSTNAME"
66−_POOLS_NICEHASH="true"
67−_POOLS_KEEPALIVE="true"
68−_POOLS_ENABLED="true"
69−_POOLS_TLS='null'
70−_POOLS_TLS_FINDERPRINT='null'
71−_POOLS_DAEMON="false"
72−
73−_PRINT_TIME="30"
74−
75−_RETRIES="5"
76−_RETRIES_PAUSE="5"
77−
78−_SYSLOG="false"
79−
80−_USER_AGENT='null'
81−
82−_WATCH="true"
18+#####################################################################
8319
8420# Set working directory
8521_WORK_DIR="$(pwd)"
8622cd $_WORK_DIR
23+echo -e "Working directory: $_WORK_DIR\n"
8724
8825# Set repository from which to get the source
8926_XMRIG_REPO="https://github.com/xmrig/xmrig.git"
27+echo -e "Git source repo: $_XMRIG_REPO\n"
9028
9129# Set name of folder to create when cloning from REPO
9230_XMRIG_CLONE="xmrig-cpu"
31+echo -e "Source folder name: $_XMRIG_CLONE\n"
9332
9433# Set clone directory path
9534_XMRIG_CLONE_LOCATION="$_WORK_DIR/$_XMRIG_CLONE"
35+echo -e "Source folder location: $_XMRIG_CLONE_LOCATION\n"
9636
9737# Set branch from which to build
98−_XMRIG_BRANCH="master"
38+_XMRIG_BRANCH="beta"
39+echo -e "Build branch: $_XMRIG_BRANCH\n"
9940
10041# Set build directory
10142_XMRIG_BUILD="build"
43+echo -e "Build directory: $_XMRIG_BUILD\n"
10244
10345# Set build directory location
10446_XMRIG_BUILD_LOCATION="$_XMRIG_CLONE_LOCATION/$_XMRIG_BUILD"
47+echo -e "Build directory location: $_XMRIG_BUILD_LOCATION\n"
10548
10649# Set where to install binary
10750_XMRIG_TARGET_LOCATION="/usr/bin/"
108−
109−# Set mysettings file
110−_MYSETTINGS_FILE="mysettings.sh"
111−
112−# Set mysettings file location
113−_MYSETTINGS_FILE_LOCATION="$_WORK_DIR/$_MYSETTINGS_FILE"
51+echo -e "Install path: $_XMRIG_TARGET_LOCATION\n"
11452
11553# Set the config file name
11654_XMRIG_CONFIG="config.json"
55+echo -e "Config file: $_XMRIG_CONFIG\n"
11756
11857# Set config location
11958_XMRIG_CONFIG_LOCATION="$_WORK_DIR/$_XMRIG_CONFIG"
59+echo -e "Config file location: $_XMRIG_CONFIG_LOCATION\n"
12060
12161# Set values for crontab
122−_USER_CRONSTART="17"
123−_USER_CRONSTOP="8"
62+_USER_CRONSTART="18"
63+_USER_CRONSTOP="6"
12464_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"
12568
12669# Set the name of the screen created by start script
12770_XMRIG_SCREEN="xmrig-cpu"
71+echo -e "Screen session name: $_XMRIG_SCREEN\n"
72+
73+# Set that user passwdless sudo
74+#sudo grep $USER /etc/sudoers.d/README
75+
76+if sudo grep -q $USER /etc/sudoers.d/README; then
77+ echo -e "User $USER found in /etc/sudoers.d/README. All good!!\n"
78+else
79+ echo -e "$USER does not have passwdles sudo. Fixing that!!\n"
80+ echo "$USER ALL=(ALL) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/README
81+fi
82+
83+
84+# Check if CPU supports AES-NI
85+cpuid | grep -i aes > hw-aes.txt
86+if grep -q true "hw-aes.txt"; then
87+ _AES_NI=true
88+else
89+ _AES_NI=false
90+fi
91+rm hw-aes.txt
92+
93+# Get number of available CPU Cores
94+_ENV_CORE=$(nproc --all)
95+echo -e "CPU Cores: $_ENV_CORE\n"
96+
97+# Get CPU L3 cache value
98+_ENV_CORE_L3=$(getconf LEVEL3_CACHE_SIZE)
99+echo -e "L3 Cache in byte: $_ENV_CORE_L3\n"
100+
101+# Determine number of threads possible
102+_ENV_CORE_L3_MB="$(($_ENV_CORE_L3 / 1000000))"
103+echo -e "L3 cache in Megabyte: $_ENV_CORE_L3_MB\n"
104+
105+# Determine number of threads possible
106+_ENV_CORE_THREADS="$(($_ENV_CORE_L3_MB / 2))"
107+echo "Each thread requires 2 MB of cache"
108+echo -e "Number of threads possible is: $_ENV_CORE_THREADS\n"
109+
110+# Affine number of threads for _CPU_CN
111+_COUNTER="$(($_ENV_CORE_THREADS - 1))"
112+_ENV_CPU_THREADS=()
113+
114+for i in `seq 0 $_COUNTER`; do
115+ _ENV_CPU_THREADS+=("$i")
116+done
117+
118+echo "Thread CPU Affinity: ${_ENV_CPU_THREADS[@]}"
119+
120+_ENV_CPU_THREAD_AFFINITY="${_ENV_CPU_THREADS[@]}"
121+
122+
123+# Setting according to cpu cores but xmrig will not use all
124+# change to make value use _ENV_CORE_THREADS
125+# Check that hugepages set in /etc/sysctl.conf
126+_ENV_CHECK="nr_hugepages"
127+
128+if sudo grep -q $_ENV_CHECK /etc/sysctl.conf; then
129+ echo "Found nr_hugepages in /etc/sysctl.conf. All good!!"
130+ echo -e "Refreshing sysctl configuration just to be sure.\n"
131+ sudo sysctl -p
132+else
133+ # Set value in current env
134+ echo -e "Did not find nr_hugepages in /etc/sysctl.conf. Fixing that!!\n"
135+ sudo sysctl -w vm.nr_hugepages="$_ENV_CORE"
136+ sudo sysctl -p
137+
138+ # Add value to sysctl
139+ echo "vm.nr_hugepages=$_ENV_CORE" | sudo tee -a /etc/sysctl.conf
140+fi
128141
129142# Run apt maintenance
130143# 1 = yes 0 = no
@@ -134,6 +147,7 @@ _APT_MAINETANCE="1"
134147# 1 = yes 0 = no
135148_APT_DEPENDS="1"
136149
137−
138−echo -e "${_CYAN}DEFAULT SETTINGS LOADED${_RESET}"
150+echo "#################################"
151+echo " SETTINGS LOADED"
152+echo "#################################"
139153