Skip to content

Commit

Permalink
xmr-stak module: init
Browse files Browse the repository at this point in the history
(cherry picked from commit 2754d1a)
  • Loading branch information
fpletz committed Dec 14, 2017
1 parent 3ea13a2 commit 427756c
Show file tree
Hide file tree
Showing 3 changed files with 77 additions and 1 deletion.
1 change: 1 addition & 0 deletions nixos/modules/module-list.nix
Expand Up @@ -347,6 +347,7 @@
./services/misc/synergy.nix
./services/misc/taskserver
./services/misc/uhub.nix
./services/misc/xmr-stak.nix
./services/misc/zookeeper.nix
./services/monitoring/apcupsd.nix
./services/monitoring/arbtt.nix
Expand Down
73 changes: 73 additions & 0 deletions nixos/modules/services/misc/xmr-stak.nix
@@ -0,0 +1,73 @@
{ lib, config, pkgs, ... }:

with lib;

let

cfg = config.services.xmr-stak;

pkg = pkgs.xmr-stak.override {
inherit (cfg) openclSupport cudaSupport;
};

xmrConfArg = optionalString (cfg.configText != "") ("-c " +
pkgs.writeText "xmr-stak-config.txt" cfg.configText);

in

{
options = {
services.xmr-stak = {
enable = mkEnableOption "xmr-stak miner";
openclSupport = mkEnableOption "support for OpenCL (AMD/ATI graphics cards)";
cudaSupport = mkEnableOption "support for CUDA (NVidia graphics cards)";

extraArgs = mkOption {
type = types.listOf types.str;
default = [];
example = [ "--noCPU" "--currency monero" ];
description = "List of parameters to pass to xmr-stak.";
};

configText = mkOption {
type = types.lines;
default = "";
example = ''
"currency" : "monero",
"pool_list" :
[ { "pool_address" : "pool.supportxmr.com:5555",
"wallet_address" : "<long-hash>",
"pool_password" : "minername",
"pool_weight" : 1,
},
],
'';
description = ''
Verbatim xmr-stak config.txt. If empty, the <literal>-c</literal>
parameter will not be added to the xmr-stak command.
'';
};
};
};

config = mkIf cfg.enable {
systemd.services.xmr-stak = {
wantedBy = [ "multi-user.target" ];
bindsTo = [ "network-online.target" ];
after = [ "network-online.target" ];
environment = mkIf cfg.cudaSupport {
LD_LIBRARY_PATH = "${pkgs.linuxPackages_latest.nvidia_x11}/lib";
};
script = ''
exec ${pkg}/bin/xmr-stak ${xmrConfArg} ${concatStringsSep " " cfg.extraArgs}
'';
serviceConfig = let rootRequired = cfg.openclSupport || cfg.cudaSupport; in {
# xmr-stak generates cpu and/or gpu configuration files
WorkingDirectory = "/tmp";
PrivateTmp = true;
DynamicUser = !rootRequired;
LimitMEMLOCK = toString (1024*1024);
};
};
};
}
4 changes: 3 additions & 1 deletion pkgs/top-level/all-packages.nix
Expand Up @@ -15421,7 +15421,9 @@ with pkgs;

monero = callPackage ../applications/misc/monero { };

xmr-stak = callPackage ../applications/misc/xmr-stak { };
xmr-stak = callPackage ../applications/misc/xmr-stak {
hwloc = hwloc-nox;
};

monkeysAudio = callPackage ../applications/audio/monkeys-audio { };

Expand Down

0 comments on commit 427756c

Please sign in to comment.