dotfiles/hosts/linux/spotlights-macbook-air/configuration.nix
Spotlight 0a3891ad4f
spotlights-macbook-air: Enable SMBIOS generation in U-Boot
libvirtd would otherwise fail attempting to execute dmidecode. That's an issue in itself, but it's far easier to just simply enable SMBIOS support than maintain patches against libvirtd.
2025-02-09 03:09:46 -06:00

92 lines
2.3 KiB
Nix

# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ config, lib, pkgs, ... }:
{
imports = [
./hardware-configuration.nix
../shared.nix
];
# Use the systemd-boot EFI boot loader.
boot.loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = false;
};
# Asahi Linux support
hardware.asahi = {
peripheralFirmwareDirectory = /boot/asahi;
# GPU enablement
useExperimentalGPUDriver = true;
experimentalGPUInstallMode = "replace";
withRust = true;
};
networking = {
hostName = "spotlights-macbook-air";
wireless.iwd = {
enable = true;
settings.General.EnableNetworkConfiguration = true;
};
};
nixpkgs.overlays = [
# We need SMBIOS generation enabled for libvirtd,
# as it otherwise stumbles over executing dmidecode.
(final: prev: {
uboot-asahi = prev.uboot-asahi.overrideAttrs (old: {
# TODO(spotlightishere): It'd be far more ideal to actually override.
# However, somehow overriding extraConfig seems to coerce things into a string.
# We wholly override it here, and thus should monitor to see if it changes upstream.
extraConfig = ''
# Upstream
CONFIG_IDENT_STRING=" ${old.version}"
CONFIG_VIDEO_FONT_4X6=n
CONFIG_VIDEO_FONT_8X16=n
CONFIG_VIDEO_FONT_SUN12X22=n
CONFIG_VIDEO_FONT_16X32=y
CONFIG_CMD_BOOTMENU=y
# Custom modifications
CONFIG_SMBIOS=y
CONFIG_GENERATE_SMBIOS_TABLE=y
'';
});
})
];
# As recommended in https://nixos.wiki/wiki/Libvirt#Setup
virtualisation.libvirtd = {
enable = true;
qemu = {
package = pkgs.qemu_kvm;
runAsRoot = true;
swtpm.enable = true;
ovmf = {
enable = true;
packages = [
(pkgs.OVMF.override {
secureBoot = true;
tpmSupport = true;
}).fd
];
};
};
};
environment.systemPackages = with pkgs; [
legcord
vscode
];
# :(
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
"vscode"
];
system.stateVersion = "24.05";
}