42 lines
1.3 KiB
Nix
42 lines
1.3 KiB
Nix
{
|
|
pkgs,
|
|
...
|
|
}:
|
|
{
|
|
systemd = {
|
|
services = {
|
|
plex_permission = {
|
|
description = "maintains /zfs/storage/plex permissions";
|
|
serviceConfig = {
|
|
Type = "oneshot";
|
|
ExecStart = "${pkgs.bash}/bin/bash ${../scripts/plex_permission.sh}";
|
|
};
|
|
};
|
|
# The unused onboard i350 port hangs ~90s after every boot ("PCIe
|
|
# link lost", MMIO reads return all-Fs) even with pcie_aspm=off.
|
|
# Remove it from the PCI bus so nothing (hwmon temperature polls,
|
|
# networkd) touches the dead hardware. Reversible via
|
|
# `echo 1 > /sys/bus/pci/rescan`.
|
|
remove_dead_igb_port = {
|
|
wantedBy = [ "multi-user.target" ];
|
|
description = "removes hung i350 port 0000:61:00.0 from the PCI bus";
|
|
unitConfig.ConditionPathExists = "/sys/bus/pci/devices/0000:61:00.0/remove";
|
|
serviceConfig = {
|
|
Type = "oneshot";
|
|
ExecStart = "${pkgs.bash}/bin/bash -c 'echo 1 > /sys/bus/pci/devices/0000:61:00.0/remove'";
|
|
};
|
|
};
|
|
};
|
|
timers = {
|
|
plex_permission = {
|
|
wantedBy = [ "timers.target" ];
|
|
timerConfig = {
|
|
OnBootSec = "1h";
|
|
OnCalendar = "daily 03:00";
|
|
Unit = "plex_permission.service";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|