main
 1{ lib, ... }:
 2{
 3  console.keyMap = lib.mkForce "us";
 4  boot.loader.grub.device = "/dev/vda";
 5  boot.loader.grub.enable = lib.mkForce true;
 6  boot.loader.systemd-boot.enable = lib.mkForce false;
 7  boot.initrd.systemd.enable = lib.mkForce false;
 8
 9  ## From qemu-quest.nix
10  boot.initrd.availableKernelModules = [
11    "virtio_net"
12    "virtio_pci"
13    "virtio_mmio"
14    "virtio_blk"
15    "virtio_scsi"
16    "9p"
17    "9pnet_virtio"
18  ];
19  boot.initrd.kernelModules = [
20    "virtio_balloon"
21    "virtio_console"
22    "virtio_rng"
23  ];
24
25  boot.initrd.postDeviceCommands = ''
26    # Set the system time from the hardware clock to work around a
27    # bug in qemu-kvm > 1.5.2 (where the VM clock is initialised
28    # to the *boot time* of the host).
29    hwclock -s
30  '';
31
32  # VPS optimization: No physical hardware, no firmware needed
33  hardware.enableRedistributableFirmware = lib.mkForce false;
34  hardware.enableAllFirmware = lib.mkForce false;
35
36  # VPS optimization: No firmware update service needed
37  services.fwupd.enable = lib.mkForce false;
38}