summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmery Hemingway <emery@vfemail.net>2016-02-23 18:32:53 +0100
committerEmery <emery@v36.space>2016-02-23 19:20:28 +0100
commit8bf98661f4bdf63568ecf27afd205c6d8fe4602b (patch)
tree8a33db652119e86c1290986b406d846a2e3e7c52
parent6fe0bd9d014a202fad36135e7ef5c656d67fcc03 (diff)
add hardware-notes module for documentation
Fixes #3
-rw-r--r--lib/hardware-notes.nix45
-rw-r--r--supermicro/a1sri-2758f.nix20
2 files changed, 62 insertions, 3 deletions
diff --git a/lib/hardware-notes.nix b/lib/hardware-notes.nix
new file mode 100644
index 0000000..4414ea3
--- /dev/null
+++ b/lib/hardware-notes.nix
@@ -0,0 +1,45 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+ # use tail recursion to prevent whitespace padding
+ mkLog = list:
+ let
+ head = builtins.head list;
+ tail = builtins.tail list;
+ in
+ ''
+ # ${head.title}
+ ${head.text}${if tail == [] then "" else "\n\n${mkLog tail}"}
+ '';
+in
+
+{
+
+ options = {
+ hardwareNotes = mkOption {
+ internal = true;
+ type = types.listOf types.optionSet;
+ options = {
+ title = mkOption {
+ type = types.str;
+ example = "Thunkpad-2000: increase self-destruct timeout";
+ };
+ text = mkOption {
+ type = types.str;
+ example =
+ ''
+ Increase security timeout at boot using platform managment
+ tool to prevent premature data loss.
+ '';
+ };
+ };
+ };
+ };
+
+ config = {
+ environment.etc."hardware-notes".text = mkLog config.hardwareNotes;
+ };
+
+}
diff --git a/supermicro/a1sri-2758f.nix b/supermicro/a1sri-2758f.nix
index 3471704..b199bf1 100644
--- a/supermicro/a1sri-2758f.nix
+++ b/supermicro/a1sri-2758f.nix
@@ -6,11 +6,25 @@
{ pkgs, ... }:
{
+ imports = [ ../lib/hardware-notes.nix ];
+
environment.systemPackages = [ pkgs.ipmitool ];
boot.kernelModules = [ "ipmi_devintf" "ipmi_si" ];
- # The Linux NIC driver seems to have faulty link state reporting
- # that causes dhcpcd to release every few seconds, which is
- # more annoying than not releasing when a cable is unplugged.
networking.dhcpcd.extraConfig = "nolink";
+
+ hardwareNotes =
+ [ { title = "IPMI";
+ text = "Load IPMI kernel modules and ipmitool to system environment.";
+ }
+ { title = "Nolink";
+ text =
+ ''
+ Interface link state detection is disabled in dhcpcd because
+ the Linux driver seems to send erronous loss of link messages
+ that cause dhcpcd to release every few seconds, which is
+ more annoying than not releasing when a cable is unplugged.
+ '';
+ }
+ ];
}