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