{ config, lib, pkgs, ... }: let cfg = config.greg.linode; in with lib; { options.greg.linode = { enable = mkEnableOption "Set sensible defaults for a Linode host"; bootTimeout = mkOption { type = types.int; default = 15; description = "Set bootloader timeout in seconds."; }; }; config = mkIf cfg.enable { # Enables connection over Linode consoles boot.kernelParams = [ "console=ttyS0,19200n8" ]; boot.loader.grub = { device = "nodev"; extraConfig = '' serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1; terminal_input serial; terminal_output serial; ''; }; # Tells grub to ignore partion-free device warnings, since we are on Linode boot.loader.timeout = 15; networking.usePredictableInterfaceNames = false; # Use old style eth0 names networking.useDHCP = false; networking.interfaces.eth0.useDHCP = true; # Suggested diagnostic tools environment.systemPackages = with pkgs; [ inetutils mtr sysstat ]; }; }