feat: add m4nix VM
Signed-off-by: Harald Hoyer <harald@hoyer.xyz>
This commit is contained in:
		
							parent
							
								
									9952dd74e3
								
							
						
					
					
						commit
						0eacb615af
					
				
					 5 changed files with 206 additions and 111 deletions
				
			
		| 
						 | 
				
			
			@ -38,39 +38,46 @@ in
 | 
			
		|||
      sessionVariables = {
 | 
			
		||||
        PATH = "$HOME/bin";
 | 
			
		||||
      };
 | 
			
		||||
      systemPackages = with pkgs; [
 | 
			
		||||
        age
 | 
			
		||||
        bash
 | 
			
		||||
        cifs-utils
 | 
			
		||||
        clevis
 | 
			
		||||
        delta
 | 
			
		||||
        efibootmgr
 | 
			
		||||
        git
 | 
			
		||||
        git-crypt
 | 
			
		||||
        git-delete-merged-branches
 | 
			
		||||
        home-manager
 | 
			
		||||
        htop
 | 
			
		||||
        mosh
 | 
			
		||||
        nixpkgs-fmt
 | 
			
		||||
        openssl
 | 
			
		||||
        restic
 | 
			
		||||
        rrsync
 | 
			
		||||
        sbctl
 | 
			
		||||
        sops
 | 
			
		||||
        strace
 | 
			
		||||
        tmux
 | 
			
		||||
        tpm2-pkcs11
 | 
			
		||||
        tpm2-pkcs11.out
 | 
			
		||||
        tpm2-tools
 | 
			
		||||
        vim
 | 
			
		||||
        virt-manager
 | 
			
		||||
        wget
 | 
			
		||||
        (pkgs.writeShellScriptBin "qemu-system-x86_64-uefi" ''
 | 
			
		||||
          qemu-system-x86_64 \
 | 
			
		||||
            -bios ${pkgs.OVMF.fd}/FV/OVMF.fd \
 | 
			
		||||
            "$@"
 | 
			
		||||
        '')
 | 
			
		||||
      ];
 | 
			
		||||
      systemPackages =
 | 
			
		||||
        with pkgs;
 | 
			
		||||
        [
 | 
			
		||||
          age
 | 
			
		||||
          bash
 | 
			
		||||
          cifs-utils
 | 
			
		||||
          clevis
 | 
			
		||||
          delta
 | 
			
		||||
          efibootmgr
 | 
			
		||||
          git
 | 
			
		||||
          git-crypt
 | 
			
		||||
          git-delete-merged-branches
 | 
			
		||||
          home-manager
 | 
			
		||||
          htop
 | 
			
		||||
          mosh
 | 
			
		||||
          nixpkgs-fmt
 | 
			
		||||
          openssl
 | 
			
		||||
          restic
 | 
			
		||||
          rrsync
 | 
			
		||||
          sbctl
 | 
			
		||||
          sops
 | 
			
		||||
          strace
 | 
			
		||||
          tmux
 | 
			
		||||
          vim
 | 
			
		||||
          virt-manager
 | 
			
		||||
          wget
 | 
			
		||||
          (pkgs.writeShellScriptBin "qemu-system-x86_64-uefi" ''
 | 
			
		||||
            qemu-system-x86_64 \
 | 
			
		||||
              -bios ${pkgs.OVMF.fd}/FV/OVMF.fd \
 | 
			
		||||
              "$@"
 | 
			
		||||
          '')
 | 
			
		||||
        ]
 | 
			
		||||
        ++ lib.optionals pkgs.stdenv.targetPlatform.isx86_64 (
 | 
			
		||||
          with pkgs;
 | 
			
		||||
          [
 | 
			
		||||
            tpm2-pkcs11
 | 
			
		||||
            tpm2-pkcs11.out
 | 
			
		||||
            tpm2-tools
 | 
			
		||||
          ]
 | 
			
		||||
        );
 | 
			
		||||
      shells = [
 | 
			
		||||
        pkgs.fish
 | 
			
		||||
        pkgs.bash
 | 
			
		||||
| 
						 | 
				
			
			@ -78,10 +85,12 @@ in
 | 
			
		|||
    };
 | 
			
		||||
 | 
			
		||||
    hardware = {
 | 
			
		||||
 | 
			
		||||
      cpu = {
 | 
			
		||||
        amd.updateMicrocode = lib.mkDefault true;
 | 
			
		||||
        intel.updateMicrocode = lib.mkDefault true;
 | 
			
		||||
        amd.updateMicrocode = pkgs.stdenv.targetPlatform.isx86_64;
 | 
			
		||||
        intel.updateMicrocode = pkgs.stdenv.targetPlatform.isx86_64;
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      enableRedistributableFirmware = lib.mkDefault true;
 | 
			
		||||
      enableAllFirmware = true;
 | 
			
		||||
    };
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -65,26 +65,36 @@ in
 | 
			
		|||
    hardware.graphics = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
 | 
			
		||||
      extraPackages = with pkgs; [
 | 
			
		||||
        vpl-gpu-rt
 | 
			
		||||
        intel-compute-runtime
 | 
			
		||||
        intel-media-driver # LIBVA_DRIVER_NAME=iHD
 | 
			
		||||
        #intel-vaapi-driver # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
 | 
			
		||||
        libvdpau-va-gl
 | 
			
		||||
        rocmPackages.clr.icd
 | 
			
		||||
        amdvlk
 | 
			
		||||
      ];
 | 
			
		||||
      extraPackages =
 | 
			
		||||
        [ ]
 | 
			
		||||
        ++ lib.optionals pkgs.stdenv.targetPlatform.isx86_64 (
 | 
			
		||||
          with pkgs;
 | 
			
		||||
          [
 | 
			
		||||
            vpl-gpu-rt
 | 
			
		||||
            intel-compute-runtime
 | 
			
		||||
            intel-media-driver # LIBVA_DRIVER_NAME=iHD
 | 
			
		||||
            #intel-vaapi-driver # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
 | 
			
		||||
            libvdpau-va-gl
 | 
			
		||||
            rocmPackages.clr.icd
 | 
			
		||||
            amdvlk
 | 
			
		||||
          ]
 | 
			
		||||
        );
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    systemd.tmpfiles.rules =
 | 
			
		||||
      let
 | 
			
		||||
        rocmEnv = pkgs.symlinkJoin {
 | 
			
		||||
          name = "rocm-combined";
 | 
			
		||||
          paths = with pkgs.rocmPackages; [
 | 
			
		||||
            rocblas
 | 
			
		||||
            hipblas
 | 
			
		||||
            clr
 | 
			
		||||
          ];
 | 
			
		||||
          paths =
 | 
			
		||||
            [ ]
 | 
			
		||||
            ++ lib.optionals pkgs.stdenv.targetPlatform.isx86_64 (
 | 
			
		||||
              with pkgs.rocmPackages;
 | 
			
		||||
              [
 | 
			
		||||
                rocblas
 | 
			
		||||
                hipblas
 | 
			
		||||
                clr
 | 
			
		||||
              ]
 | 
			
		||||
            );
 | 
			
		||||
        };
 | 
			
		||||
      in
 | 
			
		||||
      [ "L+    /opt/rocm   -    -    -     -    ${rocmEnv}" ];
 | 
			
		||||
| 
						 | 
				
			
			@ -104,54 +114,61 @@ in
 | 
			
		|||
      enableBrowserSocket = true;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    environment.systemPackages = with pkgs; [
 | 
			
		||||
      #pcsctools
 | 
			
		||||
      bat
 | 
			
		||||
      cardpeek
 | 
			
		||||
      ccache
 | 
			
		||||
      chromium
 | 
			
		||||
      clang
 | 
			
		||||
      dive
 | 
			
		||||
      file
 | 
			
		||||
      firefox
 | 
			
		||||
      gh
 | 
			
		||||
      gimp
 | 
			
		||||
      git
 | 
			
		||||
      gnome-browser-connector
 | 
			
		||||
      cheese
 | 
			
		||||
      gnome-software
 | 
			
		||||
      gnomeExtensions.appindicator
 | 
			
		||||
      gnomeExtensions.autohide-battery
 | 
			
		||||
      gnomeExtensions.dash-to-panel
 | 
			
		||||
      gnomeExtensions.hibernate-status-button
 | 
			
		||||
      gnomeExtensions.vitals
 | 
			
		||||
      gnupg
 | 
			
		||||
      go
 | 
			
		||||
      jetbrains-toolbox
 | 
			
		||||
      jq
 | 
			
		||||
      kbfs
 | 
			
		||||
      libu2f-host
 | 
			
		||||
      mosh
 | 
			
		||||
      mosh
 | 
			
		||||
      nixpkgs-fmt
 | 
			
		||||
      opensc
 | 
			
		||||
      pasystray
 | 
			
		||||
      pinentry-gnome3
 | 
			
		||||
      pkg-config
 | 
			
		||||
      pstree
 | 
			
		||||
      ripgrep
 | 
			
		||||
      rustup
 | 
			
		||||
      slack
 | 
			
		||||
      spotify
 | 
			
		||||
      statix
 | 
			
		||||
      thunderbird
 | 
			
		||||
      tmux
 | 
			
		||||
      vim
 | 
			
		||||
      wl-clipboard
 | 
			
		||||
      yubikey-manager-qt
 | 
			
		||||
      yubikey-personalization
 | 
			
		||||
      zellij
 | 
			
		||||
    ];
 | 
			
		||||
    environment.systemPackages =
 | 
			
		||||
      with pkgs;
 | 
			
		||||
      [
 | 
			
		||||
        #pcsctools
 | 
			
		||||
        bat
 | 
			
		||||
        cardpeek
 | 
			
		||||
        ccache
 | 
			
		||||
        chromium
 | 
			
		||||
        clang
 | 
			
		||||
        dive
 | 
			
		||||
        file
 | 
			
		||||
        firefox
 | 
			
		||||
        gh
 | 
			
		||||
        gimp
 | 
			
		||||
        git
 | 
			
		||||
        gnome-browser-connector
 | 
			
		||||
        cheese
 | 
			
		||||
        gnome-software
 | 
			
		||||
        gnomeExtensions.appindicator
 | 
			
		||||
        gnomeExtensions.autohide-battery
 | 
			
		||||
        gnomeExtensions.dash-to-panel
 | 
			
		||||
        gnomeExtensions.hibernate-status-button
 | 
			
		||||
        gnomeExtensions.vitals
 | 
			
		||||
        gnupg
 | 
			
		||||
        go
 | 
			
		||||
        jq
 | 
			
		||||
        kbfs
 | 
			
		||||
        libu2f-host
 | 
			
		||||
        mosh
 | 
			
		||||
        mosh
 | 
			
		||||
        nixpkgs-fmt
 | 
			
		||||
        opensc
 | 
			
		||||
        pasystray
 | 
			
		||||
        pinentry-gnome3
 | 
			
		||||
        pkg-config
 | 
			
		||||
        pstree
 | 
			
		||||
        ripgrep
 | 
			
		||||
        rustup
 | 
			
		||||
        statix
 | 
			
		||||
        thunderbird
 | 
			
		||||
        tmux
 | 
			
		||||
        vim
 | 
			
		||||
        wl-clipboard
 | 
			
		||||
        yubikey-manager-qt
 | 
			
		||||
        yubikey-personalization
 | 
			
		||||
        zellij
 | 
			
		||||
      ]
 | 
			
		||||
      ++ lib.optionals pkgs.stdenv.targetPlatform.isx86_64 (
 | 
			
		||||
        with pkgs;
 | 
			
		||||
        [
 | 
			
		||||
          slack
 | 
			
		||||
          spotify
 | 
			
		||||
          jetbrains-toolbox
 | 
			
		||||
        ]
 | 
			
		||||
      );
 | 
			
		||||
 | 
			
		||||
    #----=[ Fonts ]=----#
 | 
			
		||||
    fonts = {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue