about summary refs log tree commit diff
path: root/nixos/modules/hardware/usb-storage.nix
blob: 9c1b7a125fd18ce9ebe1ac70cc14b538eac2318b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{ config, lib, pkgs, ... }:
with lib;

{
  options.hardware.usbStorage.manageStartStop = mkOption {
    type = types.bool;
    default = true;
    description = lib.mdDoc ''
      Enable this option to gracefully spin-down external storage during shutdown.
      If you suspect improper head parking after poweroff, install `smartmontools` and check
      for the `Power-Off_Retract_Count` field for an increment.
    '';
  };

  config = mkIf config.hardware.usbStorage.manageStartStop {
    services.udev.extraRules = ''
      ACTION=="add|change", SUBSYSTEM=="scsi_disk", DRIVERS=="usb-storage", ATTR{manage_start_stop}="1"
    '';
  };
}