Created
October 18, 2024 14:15
-
-
Save WGrav01/ffad07588d7ddac6ae8d2181d5ce6698 to your computer and use it in GitHub Desktop.
NixOS configuration for Asus Rog Zephyrus G14
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| inputs, | |
| lib, | |
| config, | |
| pkgs, | |
| ... | |
| }: | |
| # Run the nvidia-offload command to run a program with gpu | |
| let | |
| nvidia-offload = pkgs.writeShellScriptBin "nvidia-offload" '' | |
| export __NV_PRIME_RENDER_OFFLOAD=1 | |
| export __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0 | |
| export __GLX_VENDOR_LIBRARY_NAME=nvidia | |
| export __VK_LAYER_NV_optimus=NVIDIA_only | |
| exec "$@" | |
| ''; | |
| in { | |
| services.asusd = { | |
| enable = true; | |
| enableUserService = true; | |
| }; | |
| # Supergfxd (command: supergfxctl) helps manage switching from the descrete and integrated gpus. | |
| services.supergfxd = { | |
| enable = true; | |
| settings = { | |
| vfio_enable = true; | |
| vfio_save = false; | |
| always_reboot = false; | |
| no_logind = false; | |
| logout_timeout_s = 20; | |
| hotplug_type = "Asus"; | |
| }; | |
| }; | |
| boot.kernelPackages = pkgs.linuxPackages_zen; | |
| systemd.services.supergfxd.path = [pkgs.kmod pkgs.pciutils]; | |
| # Even if you use Wayland, this is still requirered or else the driver won't install | |
| services.udev.packages = with pkgs; [linuxPackages.nvidia_x11]; | |
| services.xserver.videoDrivers = ["nvidia" "amdgpu"]; | |
| boot.kernel.sysctl."vm.max_map_count" = 2147483642; | |
| boot.initrd.kernelModules = ["amdgpu" "nvidia" "nvidia-drm" "nvidia-modeset"]; | |
| services.power-profiles-daemon.enable = true; | |
| services.acpid.enable = true; | |
| boot.kernelParams = ["nvidia-drm.modeset=1" "mem_sleep_default=deep" "amdgpu.dcdebugmask=0x10"]; | |
| services.fwupd.enable = true; | |
| boot.extraModulePackages = [config.boot.kernelPackages.nvidia_x11]; | |
| boot.blacklistedKernelModules = ["noveau"]; | |
| programs.corectrl.enable = true; | |
| services.upower.enable = true; | |
| environment.systemPackages = [nvidia-offload]; | |
| programs.rog-control-center.enable = true; | |
| services.logind.killUserProcesses = true; | |
| hardware.amdgpu.initrd.enable = lib.mkDefault true; | |
| hardware.nvidia = { | |
| package = config.boot.kernelPackages.nvidiaPackages.stable; | |
| open = false; | |
| modesetting.enable = true; | |
| nvidiaPersistenced = true; | |
| forceFullCompositionPipeline = true; | |
| powerManagement = { | |
| enable = true; | |
| finegrained = true; | |
| }; | |
| nvidiaSettings = true; | |
| prime = { | |
| offload = { | |
| enable = true; | |
| enableOffloadCmd = true; | |
| }; | |
| sync.enable = false; | |
| amdgpuBusId = "PCI:75:00:0"; | |
| nvidiaBusId = "PCI:01:00:0"; | |
| }; | |
| }; | |
| hardware.graphics = { | |
| enable = true; | |
| enable32Bit = true; | |
| extraPackages = with pkgs; [ | |
| rocm-opencl-icd | |
| rocm-opencl-runtime | |
| ]; | |
| extraPackages32 = with pkgs; [ | |
| ]; | |
| }; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment