at 15.09-beta 910 B view raw
1{ config, lib, pkgs, ... }: 2 3with lib; 4 5{ 6 ###### interface 7 8 options = { 9 10 powerManagement.scsiLinkPolicy = mkOption { 11 default = ""; 12 example = "min_power"; 13 type = types.str; 14 description = '' 15 Configure the SCSI link power management policy. By default, 16 the kernel configures "max_performance". 17 ''; 18 }; 19 20 }; 21 22 23 ###### implementation 24 25 config = mkIf (config.powerManagement.scsiLinkPolicy != "") { 26 27 jobs."scsi-link-pm" = 28 { description = "SCSI Link Power Management Policy"; 29 30 startOn = "stopped udevtrigger"; 31 32 task = true; 33 34 unitConfig.ConditionPathIsReadWrite = "/sys/class/scsi_host"; 35 36 script = '' 37 shopt -s nullglob 38 for x in /sys/class/scsi_host/host*/link_power_management_policy; do 39 echo ${config.powerManagement.scsiLinkPolicy} > $x 40 done 41 ''; 42 }; 43 44 }; 45 46}