nixos/powerManagement: add "med_power_with_dipm" scsiLinkPolicy
This commit is contained in:
parent
7873fe2669
commit
19445fa145
1 changed files with 24 additions and 2 deletions
|
@ -2,7 +2,20 @@
|
|||
|
||||
with lib;
|
||||
|
||||
let cfg = config.powerManagement.scsiLinkPolicy; in
|
||||
let
|
||||
|
||||
cfg = config.powerManagement.scsiLinkPolicy;
|
||||
|
||||
kernel = config.boot.kernelPackages.kernel;
|
||||
|
||||
allowedValues = [
|
||||
"min_power"
|
||||
"max_performance"
|
||||
"medium_power"
|
||||
"med_power_with_dipm"
|
||||
];
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
###### interface
|
||||
|
@ -11,10 +24,13 @@ let cfg = config.powerManagement.scsiLinkPolicy; in
|
|||
|
||||
powerManagement.scsiLinkPolicy = mkOption {
|
||||
default = null;
|
||||
type = types.nullOr (types.enum [ "min_power" "max_performance" "medium_power" ]);
|
||||
type = types.nullOr (types.enum allowedValues);
|
||||
description = ''
|
||||
SCSI link power management policy. The kernel default is
|
||||
"max_performance".
|
||||
</para><para>
|
||||
"med_power_with_dipm" is supported by kernel versions
|
||||
4.15 and newer.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -24,6 +40,12 @@ let cfg = config.powerManagement.scsiLinkPolicy; in
|
|||
###### implementation
|
||||
|
||||
config = mkIf (cfg != null) {
|
||||
|
||||
assertions = singleton {
|
||||
assertion = (cfg == "med_power_with_dipm") -> versionAtLeast kernel.version "4.15";
|
||||
message = "med_power_with_dipm is not supported for kernels older than 4.15";
|
||||
};
|
||||
|
||||
services.udev.extraRules = ''
|
||||
SUBSYSTEM=="scsi_host", ACTION=="add", KERNEL=="host*", ATTR{link_power_management_policy}="${cfg}"
|
||||
'';
|
||||
|
|
Loading…
Reference in a new issue