forked from mirrors/nixpkgs
xmr-stak module: init
This commit is contained in:
parent
e520a8cc0d
commit
2754d1a8c3
|
@ -354,6 +354,7 @@
|
|||
./services/misc/taskserver
|
||||
./services/misc/tzupdate.nix
|
||||
./services/misc/uhub.nix
|
||||
./services/misc/xmr-stak.nix
|
||||
./services/misc/zookeeper.nix
|
||||
./services/monitoring/apcupsd.nix
|
||||
./services/monitoring/arbtt.nix
|
||||
|
|
73
nixos/modules/services/misc/xmr-stak.nix
Normal file
73
nixos/modules/services/misc/xmr-stak.nix
Normal file
|
@ -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);
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -15816,7 +15816,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 { };
|
||||
|
||||
|
|
Loading…
Reference in a new issue