From 2eeeac6b46e002ed62044c37ef7788354c3002c3 Mon Sep 17 00:00:00 2001 From: fireice-uk Date: Wed, 12 Jul 2017 19:52:32 +0100 Subject: [PATCH 1/2] AES override feature --- config.txt | 10 ++++++++++ jconf.cpp | 16 ++++++++++------ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/config.txt b/config.txt index 98675a2..cb15fb9 100644 --- a/config.txt +++ b/config.txt @@ -76,6 +76,16 @@ null, */ "nicehash_nonce" : false, +/* + * Manual hardware AES override + * + * Some VMs don't report AES capability correctly. You can set this value to true to make the miner use hardware + * AES or to false to make it use software AES. + * + * WARNING: setting this to true on a CPU that doesn't support hardware AES will crash the miner. + */ +"aes_override" : null, + /* * TLS Settings * If you need real security, make sure tls_secure_algo is enabled (otherwise MITM attack can downgrade encryption diff --git a/jconf.cpp b/jconf.cpp index 3457ed9..4ac4c13 100644 --- a/jconf.cpp +++ b/jconf.cpp @@ -45,7 +45,7 @@ using namespace rapidjson; /* * This enum needs to match index in oConfigValues, otherwise we will get a runtime error */ -enum configEnum { aCpuThreadsConf, sUseSlowMem, bNiceHashMode, +enum configEnum { aCpuThreadsConf, sUseSlowMem, bNiceHashMode, bAesOverride, bTlsMode, bTlsSecureAlgo, sTlsFingerprint, sPoolAddr, sWalletAddr, sPoolPwd, iCallTimeout, iNetRetry, iGiveUpLimit, iVerboseLevel, iAutohashTime, bDaemonMode, sOutputFile, iHttpdPort, bPreferIpv4 }; @@ -62,6 +62,7 @@ configVal oConfigValues[] = { { aCpuThreadsConf, "cpu_threads_conf", kNullType }, { sUseSlowMem, "use_slow_memory", kStringType }, { bNiceHashMode, "nicehash_nonce", kTrueType }, + { bAesOverride, "aes_override", kNullType }, { bTlsMode, "use_tls", kTrueType }, { bTlsSecureAlgo, "tls_secure_algo", kTrueType }, { sTlsFingerprint, "tls_fingerprint", kStringType }, @@ -453,11 +454,14 @@ bool jconf::parse_config(const char* sFilename) printer::inst()->set_verbose_level(prv->configValues[iVerboseLevel]->GetUint64()); - if(!NeedsAutoconf()) - { - if(!bHaveAes) - printer::inst()->print_msg(L0, "Your CPU doesn't support hardware AES. Don't expect high hashrates."); - } + if(NeedsAutoconf()) + return true; + + if(prv->configValues[bAesOverride]->IsBool()) + bHaveAes = prv->configValues[bAesOverride]->GetBool(); + + if(!bHaveAes) + printer::inst()->print_msg(L0, "Your CPU doesn't support hardware AES. Don't expect high hashrates."); return true; } From d04f9d3803b1d37b93505aad406bedfcd39be6ba Mon Sep 17 00:00:00 2001 From: fireice-uk Date: Wed, 12 Jul 2017 23:17:57 +0100 Subject: [PATCH 2/2] Make the config comments clearer --- config.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config.txt b/config.txt index cb15fb9..78df0c0 100644 --- a/config.txt +++ b/config.txt @@ -79,8 +79,8 @@ null, /* * Manual hardware AES override * - * Some VMs don't report AES capability correctly. You can set this value to true to make the miner use hardware - * AES or to false to make it use software AES. + * Some VMs don't report AES capability correctly. You can set this value to true to enforce hardware AES or + * to false to force disable AES or null to let the miner decide if AES is used. * * WARNING: setting this to true on a CPU that doesn't support hardware AES will crash the miner. */