add hardware-notes module for documentation

Fixes #3
This commit is contained in:
Emery Hemingway 2016-02-23 18:32:53 +01:00 committed by Emery
parent 6fe0bd9d01
commit 8bf98661f4
2 changed files with 62 additions and 3 deletions

45
lib/hardware-notes.nix Normal file
View file

@ -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;
};
}

View file

@ -6,11 +6,25 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
imports = [ ../lib/hardware-notes.nix ];
environment.systemPackages = [ pkgs.ipmitool ]; environment.systemPackages = [ pkgs.ipmitool ];
boot.kernelModules = [ "ipmi_devintf" "ipmi_si" ]; 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"; 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.
'';
}
];
} }