From 8f7474d4f0c274e1a2c0d748b7dd9e22b4fb39d7 Mon Sep 17 00:00:00 2001 From: Mike Vink Date: Wed, 19 Jun 2024 00:03:54 +0200 Subject: should probably split xserver stuff --- machines/vm-aarch64.nix | 74 +++++++++++++++++++++++++++++++++++++++++++++++++ machines/work.nix | 1 + 2 files changed, 75 insertions(+) create mode 100644 machines/vm-aarch64.nix (limited to 'machines') diff --git a/machines/vm-aarch64.nix b/machines/vm-aarch64.nix new file mode 100644 index 0000000..ced1b86 --- /dev/null +++ b/machines/vm-aarch64.nix @@ -0,0 +1,74 @@ +# https://github.com/mitchellh/nixos-config/blob/main/machines/vm-aarch64-prl.nix +{ config, pkgs, lib, ... }: { + system.stateVersion = "24.05"; + services.openssh.enable = true; + services.openssh.settings.PasswordAuthentication = true; + services.openssh.settings.PermitRootLogin = "yes"; + + # Setup qemu so we can run x86_64 binaries + boot.binfmt.emulatedSystems = ["x86_64-linux"]; + + # Disable the default module and import our override. We have + # customizations to make this work on aarch64. + disabledModules = [ "virtualisation/vmware-guest.nix" ]; + + # Interface is this on M1 + networking.interfaces.ens160.useDHCP = true; + + # Lots of stuff that uses aarch64 that claims doesn't work, but actually works. + nixpkgs.config.allowUnfree = true; + nixpkgs.config.allowUnsupportedSystem = true; + + # This works through our custom module imported above + # virtualisation.vmware.guest.enable = true; + + # Share our host filesystem + # fileSystems."/host" = { + # fsType = "fuse./run/current-system/sw/bin/vmhgfs-fuse"; + # device = ".host:/"; + # options = [ + # "umask=22" + # "uid=1000" + # "gid=1000" + # "allow_other" + # "auto_unmount" + # "defaults" + # ]; + # }; + + # Use the systemd-boot EFI boot loader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + # VMware, Parallels both only support this being 0 otherwise you see + # "error switching console mode" on boot. + boot.loader.systemd-boot.consoleMode = "0"; + + # Hardware + boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "sr_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-label/nixos"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-label/boot"; + fsType = "vfat"; + options = [ "fmask=0022" "dmask=0022" ]; + }; + + swapDevices = [ ]; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.ens160.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux"; +} diff --git a/machines/work.nix b/machines/work.nix index 4ee0814..e7aa250 100644 --- a/machines/work.nix +++ b/machines/work.nix @@ -46,6 +46,7 @@ pkgs.act pkgs.yubikey-manager pkgs.gomplate + pkgs.just ]; hm = { home = { -- cgit v1.2.3